Gaa na ọdịnaya
Back na Nymbot

Isi ihe ọmụma Ndị na-arụ ọrụ

Chat, Ngwọta na Messages

Three ways to ask a model something, na atọ formats ndị ahịa na-ekwu, niile na-agba ọsọ na otu ụdị na-akwụ ụgwọ na otu ụzọ.

Chat Nkọwa

The OpenAI chat format, na otu ihe fọrọ nke nta ọ bụla ngwá ọrụ na-akwado. Tinye nkwurịta okwu n'oge a na-enweta ozi ọzọ.

POST https://nymbot.ai/api/v1/chat/completions Ị chọrọ a API Key.

naanị model na messages A sampling parameter na a chọpụtara model na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị na-adịghị. supported_parametersỌ bụ ihe ndị a na-atụ aro ma ọ bụ ihe ndị a na-atụ aro bụ ihe ndị a na-adịghị ike ịmepụta ihe ọ bụla: photos for a model that cannot see, tools for a model that cannot call them.

ỌnọdụụdịNlekọtaNkọwa
modelỌnwaEenymbot/auto (Ọ bụ auto) maka Nymbot routing on the standard balance, ma ọ bụ a catalog model id dị ka anthropic/claude-sonnet-5 na Pro ego. A na-akwụ ụgwọ akaụntụ na akaụntụ akaụntụ nke ngwa. I nwere ike na-akwụ ụgwọ na Ọnụ.
messagesỌnọdụEeNdị na-ekwu, ọrụ system, developer (Nyocha dị ka usoro), user, assistant na toolContent bụ a string ma ọ bụ a text na image_url Parts; images naanị n'ime user posts. input_audio na akụkụ faịlụ na-atụ aro.
streamỌchịchịỌ dịghịGỤKWUO: GỤKWUO: GỤKWUO: Ịntanetị.
stream_optionsObereỌ dịghị{"include_usage": true} na-agụnye a ikpeazụ akụkụ na token akụkụ na ego.
max_tokens
max_completion_tokens
NtuziakaỌ dịghịỌtụtụ tokens na-egosi. Na-eme ka ihe kachasị nke nlereanya ma ọ bụ elu. Ọ na-egosi ihe ọ bụla na-egosi site na ego gị, otú a obere nọmba chọrọ obere ego iji malitere.
temperature
top_p
nọmbaỌ dịghịNchọpụta sample: temperature site na 0 na 2, top_p 0 ka 1
stopstring ma ọ bụ arrayỌ dịghịText na-akwụ ụgwọ: a string ma ọ bụ ihe karịrị 4 string, onye ọ bụla karịa 256 characters. nymbot/auto.
seedNtuziakaỌ dịghịN'ihi na ịmepụta sample, ebe ụdị na-akwado ya.
presence_penalty
frequency_penalty
nọmbaỌ dịghịỌgwụgwụ Controls, onye ọ bụla site na -2 ka 2.
response_formatObereỌ dịghị{"type": "json_object"} ọ {"type": "json_schema", "json_schema": {…}}, ebe ụdị na-akwado ya. Ọ dịghị iji nymbot/auto.
tools
tool_choice
parallel_tool_calls
array, string ma ọ bụ ihe, booleanỌ dịghịỌrụ na-akpọ. See Ngwá Ọrụ Callsa na web_search Ngwá Ọrụ Turns On Web nchọpụtaNa ihe karịrị 128 ngwá ọrụ na 512 KB nke nchịkọta, gburugburu ihe karịrị 64 ogo; ihe karịrị a 400.
reasoning_effort
reasoning
obere, obereỌ dịghị"minimal", "low", "medium" ọ "high"Ọ bụ {"effort": "high"}. "none" ọ {"enabled": false} Na-agba ọsọ. See nkwado.
pluginsỌnọdụỌ dịghị[{"id": "web", "max_results": 5}] na-agba ọsọ searches the web first. Up to 10 results.
nNtuziakaỌ dịghịỌ bụ naanị 1. ihe ọ bụla ọzọ na-atụ anya 400.
logit_bias
user
metadata
ihe, string, iheỌ dịghịỌ na-enweta na na-adịghị na-enweta. logit_bias maps na ihe karịrị 300 token ids ka nọmba site na -100 ka 100; user Ọnụ ọsọ 256 characters; metadata nwere ihe karịrị 16 string values, keys karịa 64 characters na ihe karịa 512.

Ntuziaka a na-atụ anya chat.completionN'agbanyeghị ọnụahịa na usage.cost (na dollar) na na nymbot Obere model Ọ bụrụ na a na-agụnye ụdị id, otú a obere aha na-aga n'ụzọ zuru ezu. Ọ bụrụ na a na-agụnye ụdị tupu na-ekwu, ya na-agụnye na message.reasoning_contentdị iche iche site na ntụziaka.

nzọụkwụ

{
  "id": "chatcmpl-5f1c0a9e27d84b3c",
  "object": "chat.completion",
  "created": 1790726400,
  "model": "anthropic/claude-sonnet-5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "A Lightning invoice is a one-time payment request..."
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1240,
    "completion_tokens": 380,
    "total_tokens": 1620,
    "prompt_tokens_details": { "cached_tokens": 0 },
    "completion_tokens_details": { "reasoning_tokens": 0 },
    "cost": 0.01895
  },
  "nymbot": {
    "balance": "pro",
    "charged_credits": 0.162,
    "charged_sats": 16.2,
    "balance_credits": 412.425,
    "balance_sats": 41242.5
  }
}

finish_reason na-arụ ọrụ site na ihe mere, n'ihi na ndị ọrụ na-ekwu, ọ na-akpọ ya dị iche iche: tool_calls Ọ bụrụ na ụdị na-atụ aro maka ngwá ọrụ, length Ọ bụrụ na a na-eji ọ bụla token ahaziri (ma ọ bụ a na-eji ha niile na-eme na-enweghị nsogbu), content_filter Ọ bụrụ na onye na-agba ọsọ, na stop Ọ dịghị. usage.completion_tokens_details.reasoning_tokens Ọ bụ mgbe niile 0: akpali akpali akpali akpali akpali akpali akpali akpali akpali akpali completion_tokens.

ọnọdụmgbe
400Ọ dịghị model ọ messages (missing_required_parameter); audio ma ọ bụ faịlụ akụkụ, ma ọ bụ images maka ụdị na-enweghị ike ịhụ ha (unsupported_content); ihe karịrị 20 foto (too_many_images); sample parameter nke na-abụghị ụdị ma ọ bụ na-abụghị n'obosara (invalid_value); a foto njikọ na-enweghị akụkọ (invalid_image_url); ngwá ọrụ na model na-enweghị ike na-akpọ ha (unsupported_tool); n Ọ dịghị 1; a :thinking n'ihi na a model na-enweghị mmasị (model_not_found); ma ọ bụ onye na-agba ọsọ ọsọ (upstream_rejected).
402The ego na model na-eji na-enweghị ike na-ekpuchi akụkụ.
403The worst case doesn't fit the key's cap (key_limit_reached) Ọnụ ọkụ max_tokens ma ọ bụ na-emepụta cap.
404Ọ dịghị ụdị nke a aha (model_not_found).
429Ọnụ ọnụ ọgụgụ nke key, ma ọ bụ nke provider (upstream_rate_limited).
502, 503Ndị ọrụ na-adịghị mma (upstream_error) ma ọ bụ na-agba ọsọupstream_overloadedN'ihi na Retry-After). Ọ dịghị ihe ọ bụla na-akwụ ụgwọ ma ọ bụrụ na ndị ọrụ na-akwụ ụgwọ maka mmetụta.

The status codes onye ọ bụla endpoint akụ na-egosi n'okpuru nzọụkwụ.

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "messages": [
      {"role": "system", "content": "Answer in one short paragraph."},
      {"role": "user", "content": "What is a Lightning invoice?"}
    ],
    "max_tokens": 400
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

reply = client.chat.completions.create(
    model="anthropic/claude-sonnet-5",
    messages=[
        {"role": "system", "content": "Answer in one short paragraph."},
        {"role": "user", "content": "What is a Lightning invoice?"},
    ],
    max_tokens=400,
)
print(reply.choices[0].message.content)
print(reply.usage.cost)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const reply = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5",
  messages: [
    { role: "system", content: "Answer in one short paragraph." },
    { role: "user", content: "What is a Lightning invoice?" },
  ],
  max_tokens: 400,
});
console.log(reply.choices[0].message.content);
console.log(reply.usage.cost);

Ịntanetị

na "stream": true The mkpuchi na-abịa dị ka ihe na-esonụ site na ndị na-esonụ na ihe na-esonụ ya. Onye ọ bụla ihe chat.completion.chunk a na data: akara, na akara na-agba data: [DONE]Ntuziaka na-abịa na delta.reasoning_contentỌnụ ọgụgụ na delta.content.

Stream ihe ọ bụla nwere ike na-eme ka ihe karịrị banyere 100 sekọnd, dị ka a ogologo nsogbu, a nnukwu max_tokens ma ọ bụ a nkwado nlereanya. A na-adịghị na-agba ọsọ na-enweta ihe ọ bụla n'agbanyeghị n'agbanyeghị, na netwọk n'etiti gị na Nymbot nwere ike na-agba ọsọ a na-agba ọsọ njikọ mgbe banyere 100 sekọnd; a nlereanya na-agba ọsọ na ihe ọ na-egwu eji na-akwụ ụgwọ, ma a na-agba ọsọ na-agba ọsọ. A na-agba ọsọ na-enweta na-agba ọsọ, otú ọ na-agba ọsọ mgbe a nlereanya na-agba ọsọ.

Ọnwa

data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null}]}

data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[{"index":0,"delta":{"content":"A Lightning invoice"},"finish_reason":null}]}

: keep-alive

data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[],"usage":{"prompt_tokens":1240,"completion_tokens":380,"total_tokens":1620,"cost":0.01895},"nymbot":{"balance":"pro","charged_credits":0.162,"charged_sats":16.2,"balance_credits":412.425,"balance_sats":41242.5}}

data: [DONE]
  • Lines na-amalite na : na-agba ọsọ comments, na-esonụ ọ bụla 15 nkeji n'oge ụdị na-egwu. SSE ndị ahịa na-egwu ha.
  • ajụjụ "stream_options": {"include_usage": true} iji nweta ihe na-esote n'elu, na a n'èzí choices, token na-ekwu, ego na nymbot Obere
  • Ọ bụrụ na ị na-agba ọsọ njikọ na-agba ọsọ, model na-adịghị na-agba ọsọ: Nymbot na-agba ọsọ ndị ọzọ nke provider na-agba ọsọ, n'elu 25 nkeji, iji nweta ya token nọmba, na ị na-enye ihe na provider na-ekwu. Ọ dịghị nke na-agba ọsọ na-agba ọsọ na-agba ọsọ site na gị input na ihe e guzobere, na-agba ọsọ n'ụzọ zuru ezu maka a model na ihe atụ.
  • A na-adịghị mma tupu mbụ chunk, dị ka 401 ọ 402, na-abịa dị ka JSON dị iche iche na koodu ya, na-abịa dị ka akara. A error mgbe akara na-amalite na-abịa dị ka a na-amalite akara. data: {"error": {…}} ihe, na akara na-agba ọsọ [DONE].
  • Usoro na ngwá ọrụ, na ụdị na OpenAI's Responses transport, na-adịghị na-agba ọsọ site na ndị na-enye. Ha na-agba ọsọ na-agba ọsọ na-agba ọsọ, na-esonụ mgbe nzọụkwụ bụ zuru ezu.

cURL

curl -N https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nymbot/auto",
    "stream": true,
    "stream_options": {"include_usage": true},
    "messages": [{"role": "user", "content": "Write a haiku about sats."}]
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

stream = client.chat.completions.create(
    model="nymbot/auto",
    stream=True,
    stream_options={"include_usage": True},
    messages=[{"role": "user", "content": "Write a haiku about sats."}],
)
for chunk in stream:
    if chunk.choices:
        print(chunk.choices[0].delta.content or "", end="", flush=True)
    elif chunk.usage:
        print("\ncost:", chunk.usage.cost)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const stream = await client.chat.completions.create({
  model: "nymbot/auto",
  stream: true,
  stream_options: { include_usage: true },
  messages: [{ role: "user", content: "Write a haiku about sats." }],
});
for await (const chunk of stream) {
  if (chunk.choices.length) process.stdout.write(chunk.choices[0].delta.content || "");
  else if (chunk.usage) console.log("\ncost:", chunk.usage.cost);
}

Ngwá Ọrụ Calls

Na-egosi ọrụ na tools na ụdị nwere ike ịchọrọ onye na-akpọ ma ọ bụ na-akpọ. Ị na-agba ọsọ ọrụ, na-agba ọsọ ya dị ka tool Nkọwa nke otu tool_call_idNymbot na-agba ọsọ ọrụ gị; ọ na-agba ọsọ chọrọ nke model gị.

tool_choice Ọnwa "auto", "none", "required" ọ {"type": "function", "function": {"name": "…"}}.The model list na-egosi na ụdị nwere ike na-akpọ ngwaọrụ (capabilities.tools) Ngwá ọrụ na-adịghị 400 unsupported_tool ọ nymbot/auto na na ole na ole na ole na ole na ole na ole na ole na ole na ole na ole na ole na ole na ole na ole na ole.

na "stream": true, ajụjụ na ngwá ọrụ na-agba ọsọ n'ime otu akpa na-esonụ dị ka a normal chunk usoro: ọrụ, otu chunk na-agba ọsọ onye ọ bụla ngwá ọrụ na ya index, id, aha na arguments, na na-agba ọsọ. Ndị ahịa na-agba ọsọ na-agba ọsọ ngwá ọrụ na-agba ọsọ ya dị ka obi.

Ntuziaka, akụkụ

"choices": [
  {
    "index": 0,
    "message": {
      "role": "assistant",
      "content": null,
      "tool_calls": [
        {
          "id": "call_7d2e",
          "type": "function",
          "function": { "name": "get_invoice_status", "arguments": "{\"invoice_id\":\"a41f\"}" }
        }
      ]
    },
    "finish_reason": "tool_calls"
  }
]

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "messages": [{"role": "user", "content": "Has invoice a41f been paid?"}],
    "tools": [{
      "type": "function",
      "function": {
        "name": "get_invoice_status",
        "description": "Look up whether an invoice is paid.",
        "parameters": {
          "type": "object",
          "properties": {"invoice_id": {"type": "string"}},
          "required": ["invoice_id"]
        }
      }
    }]
  }'

Python

import json, os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

tools = [{
    "type": "function",
    "function": {
        "name": "get_invoice_status",
        "description": "Look up whether an invoice is paid.",
        "parameters": {
            "type": "object",
            "properties": {"invoice_id": {"type": "string"}},
            "required": ["invoice_id"],
        },
    },
}]
messages = [{"role": "user", "content": "Has invoice a41f been paid?"}]

reply = client.chat.completions.create(model="anthropic/claude-sonnet-5", messages=messages, tools=tools)
call = reply.choices[0].message.tool_calls[0]
args = json.loads(call.function.arguments)

messages.append(reply.choices[0].message)
messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps({"paid": True})})

final = client.chat.completions.create(model="anthropic/claude-sonnet-5", messages=messages, tools=tools)
print(final.choices[0].message.content)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const tools = [{
  type: "function",
  function: {
    name: "get_invoice_status",
    description: "Look up whether an invoice is paid.",
    parameters: {
      type: "object",
      properties: { invoice_id: { type: "string" } },
      required: ["invoice_id"],
    },
  },
}];
const messages = [{ role: "user", content: "Has invoice a41f been paid?" }];

const reply = await client.chat.completions.create({ model: "anthropic/claude-sonnet-5", messages, tools });
const call = reply.choices[0].message.tool_calls[0];
const args = JSON.parse(call.function.arguments);

messages.push(reply.choices[0].message);
messages.push({ role: "tool", tool_call_id: call.id, content: JSON.stringify({ paid: true }) });

const final = await client.chat.completions.create({ model: "anthropic/claude-sonnet-5", messages, tools });
console.log(final.choices[0].message.content);

Foto na a chọrọ

Ụdị na capabilities.vision Ị nwere ike ịhụ ihe. Tinye a image_url Part to a user message, na ma ọ bụ na a public https:// Link ma ọ bụ a data:image/…;base64, URL. Ọbụna 20 images per request. SVG images na-atụ aro, na ya bụ njikọ ihe karịrị 4,096 akara ma ọ bụ otu na aha nchịkọta ma ọ bụ password na ya (400 invalid_image_url) Ọnọdụ optional detail Ọ bụ auto, low ọ high.

na nymbot/auto, a request na a image n'ime ya na-agbanwe na a standard model na nwere ike ịhụ. A catalog model na-enweghị capabilities.vision Keduzi foto na 400 unsupported_content. Pictures nwere ike ịbụ naanị n'ime ọrụ ozi. A njikọ ga-egosi na a nkwurịta ụka; Nymbot na-agba ọsọ foto na nkwurịta ụka nkwurịta ụka nkwurịta ụka nkwurịta ụka.

A image na-akwụ ụgwọ dị ka input tokens na provider na-akwụ ụgwọ maka ya, dị ka ndị ọzọ nke chọrọ.

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "What is in this picture?"},
        {"type": "image_url", "image_url": {"url": "https://example.com/receipt.jpg"}}
      ]
    }]
  }'

Python

import base64, os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

with open("receipt.jpg", "rb") as f:
    data_url = "data:image/jpeg;base64," + base64.b64encode(f.read()).decode()

reply = client.chat.completions.create(
    model="anthropic/claude-sonnet-5",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "What is in this picture?"},
            {"type": "image_url", "image_url": {"url": data_url}},
        ],
    }],
)
print(reply.choices[0].message.content)

JavaScript

import { readFile } from "node:fs/promises";
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const dataUrl = "data:image/jpeg;base64," + (await readFile("receipt.jpg")).toString("base64");

const reply = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5",
  messages: [{
    role: "user",
    content: [
      { type: "text", text: "What is in this picture?" },
      { type: "image_url", image_url: { url: dataUrl } },
    ],
  }],
});
console.log(reply.choices[0].message.content);

nkwado

Ụdị na capabilities.reasoning Ị nwere ike ịmụta ya tupu ha na-ekwu. Kpọmkwem ma ọ bụ obere reasoning_effort ("minimal", "low", "medium" ọ "high") ma ọ "reasoning": {"effort": "high"}ma ọ bụ ajụjụ :thinking na model aha, nke na-ekwe omume elu. Na a model na-adịghị na-akpali akpali akpali akpali. Na nymbot/auto, :thinking na-agba ọsọ ọsọ na-agba ọsọ na-agba ọsọ.

Na Anthropic ihe omume na-eme ka a na-achọpụta ego nke banyere 1,000, 2,000, 8,000 ma ọ bụ 16,000 tokens, ọ dịghị ihe karịrị max_tokens na-ekwe omume. Na-agba ọsọ mgbe tool_choice Ọ na-eme ka ọ na-eme ka ọ na-eme ka ọ na-eme ka ọ na-eme ka ọ na-eme ka ọ na-eme ka ọ na-eme ka ọ na-eme ka ọ.

Ntuziaka na-abịa n'ime message.reasoning_contentỌ bụ delta.reasoning_content mgbe ọ na-agba ọsọ, mgbe ọ na-agba ọsọ na-agba ọsọ na-agba ọsọ na-agba ọsọ na-agba ọsọ na-agba ọsọ completion_tokensỤfọdụ ndị na-arụ ọrụ na-adịghị na-aga n'ụzọ zuru ezu, na ọ na-agba ọsọ.

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "reasoning_effort": "high",
    "messages": [{"role": "user", "content": "Is 2^61 - 1 prime? Show why."}]
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

reply = client.chat.completions.create(
    model="anthropic/claude-sonnet-5",
    reasoning_effort="high",
    messages=[{"role": "user", "content": "Is 2^61 - 1 prime? Show why."}],
)
message = reply.choices[0].message
print(getattr(message, "reasoning_content", None))
print(message.content)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const reply = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5",
  reasoning_effort: "high",
  messages: [{ role: "user", content: "Is 2^61 - 1 prime? Show why." }],
});
console.log(reply.choices[0].message.reasoning_content);
console.log(reply.choices[0].message.content);

Ọnụ ọgụgụ

A na-agba ọsọ na ụdị aha na-eme ka ọ bụrụ na a na-agba ọsọ, na-enweghị ihe ọzọ. Ha na-arụ ọrụ na full ids na short names otu, dị ka na anthropic/claude-sonnet-5:online.

Ọnụmmetụta
:onlineNa-achọ site na web mbụ, dị ka plugins: [{"id": "web"}]Nyocha Web nchọpụta.
:thinkingỌnụ ọgụgụ dị elu; on nymbot/autoN'ihi na ihe na-adịghị mma, na ihe na-adịghị mma, 400 model_not_found na “enweghị ihe ọ bụla na-enweta ”.
:nitro, :floor, :exacto, :extendedOnye ọ bụla catalogue nlereanya nwere otu ụzọ, ya mere, ọ dịghị ọ bụla ngwa ngwa, obere ma ọ bụ ogologo iji nhọrọ; ndị na-agba ọsọ na-agba ọsọ maka ụdị aha kopied si ndị ọzọ ọrụ na-arụ ọrụ.

Ọ bụla ọzọ n'akụkụ na-egbochi. The zuru aha na-agba ọsọ mbụ, otú a nlereanya nke na id na-egbochi a colon na-arụ ọrụ; ọ dịghị nke a, n'akụkụ na-egbochi n'akụkụ otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n'otu n' 400 invalid_value.

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5:thinking",
    "messages": [{"role": "user", "content": "Plan a three-day trip to Lisbon."}]
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

reply = client.chat.completions.create(
    model="anthropic/claude-sonnet-5:thinking",
    messages=[{"role": "user", "content": "Plan a three-day trip to Lisbon."}],
)
print(reply.choices[0].message.content)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const reply = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5:thinking",
  messages: [{ role: "user", content: "Plan a three-day trip to Lisbon." }],
});
console.log(reply.choices[0].message.content);

Onye ọ bụla nkwado nlereanya nwere ike ikwu site na live web. Nymbot na-achọ ihe na-esonụ ọrụ ozi (na ya mbụ 2,000 akara), na-akpọ ndị kasị mma akụkọ na-enye ha na nlereanya na ajụjụ, na-akpọ n'ihi na ihe ndị ọzọ na nlereanya na-abụghị na-enweta ọmụma. E nwere abụọ usoro:

  • ikpeazụ search: "plugins": [{"id": "web", "max_results": 5}]ọ bụ a :online N'ihi na n'ihi na model.
  • Search mgbe ọ na-enyere: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}]Ọzọkwa kwadoro dị ka web_search_preview ọ openrouter:web_searchNymbot na-agba ọsọ naanị mgbe ajụjụ dị ka ọ chọrọ ozi ugbu a, nke a na-eji ngwa ahụ.

max_results bụ 5 n'ụzọ zuru ezu na n'elu 10. The isi na-aga na nymbot.web_search.sourcesOnye ọ bụla nwere a title, snippet na urlna as url_citation nkọwa na ozi.

Onye ọ bụla search na-agba ọsọ $ 0,008, na-agba ọsọ na sats, n'elu nke tokens, na ọ bụ akụkụ nke na-agba ọsọ. The peeji nke ọ na-agba ọsọ na-agba ọsọ bụ input tokens, otú a mkpọchi site na web na-agba ọsọ karịa otu ajụjụ na-agba ọsọ, ọbụna ọtụtụ oge karịa.

Ntuziaka, akụkụ

"nymbot": {
  "balance": "pro",
  "charged_credits": 0.431,
  "charged_sats": 43.1,
  "balance_credits": 411.994,
  "balance_sats": 41199.4,
  "web_search": {
    "sources": [
      { "title": "Lightning Network - Wikipedia", "snippet": "The Lightning Network is a payment protocol...", "url": "https://en.wikipedia.org/wiki/Lightning_Network" }
    ]
  }
}

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "plugins": [{"id": "web", "max_results": 5}],
    "messages": [{"role": "user", "content": "What changed in the latest Bitcoin Core release?"}]
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

reply = client.chat.completions.create(
    model="anthropic/claude-sonnet-5",
    messages=[{"role": "user", "content": "What changed in the latest Bitcoin Core release?"}],
    extra_body={"plugins": [{"id": "web", "max_results": 5}]},
)
print(reply.choices[0].message.content)
for source in reply.model_extra["nymbot"]["web_search"]["sources"]:
    print(source["url"])

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const reply = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5",
  plugins: [{ id: "web", max_results: 5 }],
  messages: [{ role: "user", content: "What changed in the latest Bitcoin Core release?" }],
});
console.log(reply.choices[0].message.content);
for (const source of reply.nymbot.web_search.sources) console.log(source.url);

Ngwọta API

OpenAI bụ format nke ọhụrụ, nke a na-eji site na OpenAI Agents SDK na site na Codex. Ọ na-agba ọsọ na ụdị, ịkwụ ụgwọ na atụmatụ dị ka Chat Completions.

POST https://nymbot.ai/api/v1/responses Ị chọrọ a API Key.

ỌnọdụụdịNlekọtaNkọwa
modelỌnwaEeN'ihi na Chat NkọwaN'ihi na suffixes gụnyere.
inputstring ma ọ bụ arrayEeA string, ma ọ bụ a nkọwa nke ihe: ozi (ụdị ọrụ) user, assistant, system, developer) na input_text, input_image na output_text akụkụ, na function_call na function_call_output ihe maka ngwá ọrụ. input_image na-eme image_url njikọ ma ọ bụ data URL, ọ bụghị faịlụ id. reasoning na web_search_call ihe ndị na-atụ aro; item_reference Ọ dịghị.
instructionsỌnwaỌ dịghịNgwa usoro.
max_output_tokensNtuziakaỌ dịghịThe kasị tokens na-egosi.
temperature
top_p
nọmbaỌ dịghịSampling akara, ebe ụdị na-eme ha.
tools
tool_choice
parallel_tool_calls
array, string ma ọ bụ ihe, booleanỌ dịghịỌrụ ngwá ọrụ, na usoro nchịkọta ({"type": "function", "name": …, "parameters": …}) a web_search ọ web_search_preview Ngwá Ọrụ Turns On Web nchọpụta mgbe ọ na-enyere. Ndị ọzọ na-ebipụta ngwá ọrụ na-adịghị.
reasoningObereỌ dịghị{"effort": "minimal" | "low" | "medium" | "high"}. xhigh na max Ọnụ high; none Kpọọ ya.
text.format
response_format
ObereỌ dịghịStructured output, dị ka a JSON usoro ma ọ bụ json_object.
metadataObereỌ dịghịGbanwere na-adịghị agbanwe na ntụziaka. Na ihe karịrị 16 akara, akara karịa 64 akara na ihe karịa karịa 512.
streamỌchịchịỌ dịghịStream ihe dị ka n'okpuru.
storeỌchịchịỌ dịghịIgnored. Ọ dịghị ihe ọ bụla na-achịkwa, na mkpọsa mgbe niile na-ekwu "store": false.
previous_response_id
conversation
background
obere, obere, obereỌ dịghịỌ dịghị nkwado: 400 unsupported_parameterN'ụzọ zuru ezu, na-enweta n'ụzọ zuru ezu input ọ bụla oge.

nzọụkwụ

{
  "id": "resp_8c1e4b0f9a2d4e61",
  "object": "response",
  "created_at": 1790726400,
  "status": "completed",
  "model": "anthropic/claude-sonnet-5",
  "output": [
    {
      "type": "message",
      "id": "msg_2b7f",
      "role": "assistant",
      "status": "completed",
      "content": [{ "type": "output_text", "text": "A Lightning invoice is...", "annotations": [] }]
    }
  ],
  "output_text": "A Lightning invoice is...",
  "usage": {
    "input_tokens": 1240,
    "input_tokens_details": { "cached_tokens": 0 },
    "output_tokens": 380,
    "output_tokens_details": { "reasoning_tokens": 0 },
    "total_tokens": 1620
  },
  "incomplete_details": null,
  "error": null,
  "instructions": null,
  "store": false,
  "previous_response_id": null,
  "metadata": {},
  "nymbot": { "balance": "pro", "charged_credits": 0.162, "charged_sats": 16.2, "balance_credits": 412.425, "balance_sats": 41242.5 }
}

A tool request na-egosi na output dị ka a function_call Ihe na call_id, name na arguments; Gbanwee ihe ọ bụla dị ka a function_call_output item na otu call_idNtuziaka, mgbe ụdị na-ere ya, bụ a reasoning Ihe na reasoning_text Content, na-egosi na mbụ. status Ọ bụ incomplete Ọ bụrụ na mmasị mmasị max_output_tokens ma ọ bụ onye na-agba ọsọ, incomplete_details.reason Tinye na max_output_tokens ọ content_filterThe mkparịta ụka na-egosi na nchịkọta nke nchịkọta (temperature, ngwá ọrụ, ngwá ọrụ nhọrọ, wdg) dị ka OpenAI na-eme, na-eme ka nymbot Ọnụahịa Object

Streamed, ọ bụla event bụ a event: Line na a data: Line na a sequence_numberna usoro a: response.created, response.in_progress, response.output_item.added, response.content_part.addedỌ bụla nọmba response.output_text.delta, response.output_text.done, response.content_part.done, response.output_item.doneNa-ekwu response.completed na-eji na ego. A nzọụkwụ na-agba ọsọ response.incomplete n'ezie, na a na-adịghị mma mgbe stream na-amalite na response.failed.Nyocha streams dị ka ihe onwe ya na response.reasoning_text.delta na .doneNgwa ngwá ọrụ na-abịa mgbe ozi, onye ọ bụla dị ka ihe na response.function_call_arguments.delta na .done.

ọnọdụmgbe
400Ọ dịghị model ọ input; previous_response_id, conversation, background ma ọ bụ item_reference (unsupported_parameter); a na-adịghị na-akwado ngwá ọrụ ma ọ bụ content ụdị.
402, 403, 404, 429, 502, 503N'ihi na Chat Complements.

cURL

curl https://nymbot.ai/api/v1/responses \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "instructions": "Answer in one short paragraph.",
    "input": "What is a Lightning invoice?"
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

response = client.responses.create(
    model="anthropic/claude-sonnet-5",
    instructions="Answer in one short paragraph.",
    input="What is a Lightning invoice?",
)
print(response.output_text)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const response = await client.responses.create({
  model: "anthropic/claude-sonnet-5",
  instructions: "Answer in one short paragraph.",
  input: "What is a Lightning invoice?",
});
console.log(response.output_text);

Anthropic ozi

The format nke Anthropic, maka Anthropic SDKs na Claude Code. Ọ na-arụ ọrụ na ọ bụla nlereanya na catalogue, ọ bụghị naanị Claude: njikọ na-ekwu, na-agba ọsọ site na otu pipeline, na-ekwu.

POST https://nymbot.ai/api/v1/messages — mkpa a API key, dị ka x-api-key ọ Authorization: Bearer.

The anthropic-version na anthropic-beta Anthropic ụdị aha na-ekwu na catalog, otú Claude Code na SDKs na-arụ ọrụ na aha ha na-eji:

  • A na-akpọ Catalogue, dị ka claude-sonnet-5 ọ anthropic/claude-opus-5Ọ na-eji ya dị ka ọ bụ.
  • Ọnụ ọgụgụ (-20260514), -latest, a version tag dị ka -v1, a bracketed tag dị ka [1m] na a anthropic/ ọ anthropic. prefix na-agba ọsọ, na dots na dashes na version na-agba ọsọ ụzọ (claude-haiku-4-5 ịhụ claude-haiku-4.5).
  • Ọ bụrụ na nke a na-enweghị ihe ọ bụla, a na-eji ụlọ (Opus, Sonnet ma ọ bụ Haiku) ma ọ bụrụ na version nke catalog bụ otu ma ọ bụ ọhụrụ karịa nke a chọrọ.
  • A aha nke na-enweghị ihe ọ bụla na-atụle 404 not_found_error.
ỌnọdụụdịNlekọtaNkọwa
modelỌnwaEeA catalog model id, ma ọ bụ a Anthropic model aha.
max_tokensNtuziakaEeThe kasị tokens na-egosi.
messagesỌnọdụEeuser na assistant ịgbado ọkụ, na text, image (base64 ma ọ bụ isi URL), tool_use na tool_result nkwado thinking Blocks si gara aga turns na-akwụ ụgwọ na-atụ aro.
systemstring ma ọ bụ arrayỌ dịghịSystem prompt, dị ka a string ma ọ bụ text blocks.
temperature
top_p
nọmbaỌ dịghịSampling akara, ebe ụdị na-eme ha. top_k Ọ na-enweta na na-abụ.
stop_sequencesỌdịdị nke StringsỌ dịghịText nke na-akwụ ụgwọ. Ọ dịkarịa na 4 string, ọ dịkarịa na ọ dịkarịa na 256 characters.
tools
tool_choice
obere, obereỌ dịghịNgwá Ọrụ na name, description na input_schemaa na web_search Server Tool na-agba ọsọ Web nchọpụta; Ngwá ọrụ ndị ọzọ nke Anthropic (bash, ederede ederede, iji kọmputa) na-adịghị unsupported_tool. tool_choice Ọnwa auto, any, tool ọ nonena disable_parallel_tool_use.
thinkingObereỌ dịghị{"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} ọ {"type": "disabled"}The ego na-agba ọsọ: n'okpuru 2.048 dị ala, site na 2.048 dị ala, site na 8.192 dị ala, site na 16.384 dị elu. Adaptive uses output_config.effortma ọ bụ elu.
streamỌchịchịỌ dịghịStream na Anthropic ihe omume format.
metadataObereỌ dịghịỌ bụrụ na ị na-enweta ma na-egosi.

nzọụkwụ

{
  "id": "msg_01c7a2f93e5b4d08",
  "type": "message",
  "role": "assistant",
  "model": "anthropic/claude-sonnet-5",
  "content": [{ "type": "text", "text": "A Lightning invoice is..." }],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 1240,
    "output_tokens": 380,
    "cache_read_input_tokens": 0,
    "cache_creation_input_tokens": 0
  },
  "nymbot": { "balance": "pro", "charged_credits": 0.162, "charged_sats": 16.2, "balance_credits": 412.425, "balance_sats": 41242.5 }
}

content Ọzọkwa nwere ike ịdabere tool_use Blocks na a thinking Blocks, nke signature Ọ bụ n'èzí stop_reason Ọ bụ end_turn, max_tokens, tool_use ọ refusalna-arụ ọrụ na otu ụzọ dị ka finish_reason ọ Chat Nkọwa; stop_sequence Ọ bụ mgbe null, ọbụna mgbe a stop usoro na-akwụ ụgwọ. input_tokens na-egosi naanị ọhụrụ input; cache input bụ na abụọ cache fields. The price bụ na nymbot Object na ihe X-Nymbot-Cost-Sats Ọnọdụ

Streamed, ihe omume bụ Anthropic's: message_start, content_block_start, ping, content_block_delta (text_delta, input_json_delta ọ thinking_delta), content_block_stop, message_delta na-agba ọsọ ọsọ, iji na nymbot obere ego, na message_stopa na ping na-esonụ ọ bụla 15 nkeji n'oge ụdị na-arụ ọrụ. Ngwa ngwá ọrụ na-abịa mgbe ederede, tool_use block na ya nile input na otu input_json_delta.

Errors on this endpoint use Anthropic's format: {"type": "error", "error": {"type": "not_found_error", "message": "…"}}Ọnụ ọgụgụ dị obere 402 billing_errorA na-agba ọsọ ndị na-enye 503 overloaded_errorA na-adịghị mma mgbe stream na-amalite na-esonụ dị ka a error Ọnọdụ

cURL

curl https://nymbot.ai/api/v1/messages \
  -H "x-api-key: $NYMBOT_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "What is a Lightning invoice?"}]
  }'

Python

import os
import anthropic

client = anthropic.Anthropic(base_url="https://nymbot.ai/api", api_key=os.environ["NYMBOT_API_KEY"])

message = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "What is a Lightning invoice?"}],
)
print(message.content[0].text)

JavaScript

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({ baseURL: "https://nymbot.ai/api", apiKey: process.env.NYMBOT_API_KEY });

const message = await client.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "What is a Lightning invoice?" }],
});
console.log(message.content[0].text);

Tinye tokens

Ọnụ ọgụgụ nke ọtụtụ input tokens a Messages request ga-eji, otú a client nwere ike ịzụta tupu ya na-esonụ. Ọ bụ free, ma ọ dị mkpa a key.

POST https://nymbot.ai/api/v1/messages/count_tokens — mkpa a API key. Free.

The ahụ bụ otu dị ka nkwadoỌ dịghị max_tokens; model aha ga-ekpuchi. The akara bụ a akara: ndị akara nke usoro akara, ozi, ngwa ngwa na ngwa akara na-agụmakwụkwọ na-agba ọsọ, plus 1,600 maka onye ọ bụla image. Ọ bụghị tokenizer onwe ya, ya mere na akara ahụ nwere ike ịbụ dị iche. A akara na-ewe ka ya cap nwere ike na-eji ya.

nzọụkwụ

{ "input_tokens": 318 }

cURL

curl https://nymbot.ai/api/v1/messages/count_tokens \
  -H "x-api-key: $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "What is a Lightning invoice?"}]
  }'

Python

import os
import anthropic

client = anthropic.Anthropic(base_url="https://nymbot.ai/api", api_key=os.environ["NYMBOT_API_KEY"])

count = client.messages.count_tokens(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": "What is a Lightning invoice?"}],
)
print(count.input_tokens)

JavaScript

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({ baseURL: "https://nymbot.ai/api", apiKey: process.env.NYMBOT_API_KEY });

const count = await client.messages.countTokens({
  model: "claude-sonnet-5",
  messages: [{ role: "user", content: "What is a Lightning invoice?" }],
});
console.log(count.input_tokens);

Ọnụ ọgụgụ

Onye ọ bụla nlereanya na generator na API na-enweta, na ihe ọ bụla ọ ga-eri. The ndepụta na-akpọ site na otu live catalog dị ka picker nke ngwa, otú ahụ bụ mgbe niile nke na-arụ ọrụ na-arụ ọrụ.

GET https://nymbot.ai/api/v1/models — na-adịghị mkpa key. Mmadụ maka 5 nkeji.

GET /api/v1/models/{id} Otu n'ime 1 entry

ỌnọdụụdịNlekọtaNkọwa
typeọkọlọtọ (Query)Ọ dịghịchat (Ọ na-adịghị mma) image, video, audio, embedding ọ allỌ bụrụ na ị nwere ike ịnweta ọtụtụ, dị ka image,video.

Prices bụ ihe ị na-enye, na ụgwọ na margins na-enweta, na dollars na in sats na ugbu a Bitcoin price. balance na-ekwu na nke ụdị na-eji. nymbot_key bụ aha ntanetị nke ụdị na ngwa. created bụ mgbe niile 0, n'ihi na catalog na-adịghị na-egosi mgbe a nlereanya e jiri. A nlereanya na-enweghị a na-ekpebi token price per_request kama.

nymbot/auto Ọ bụ mgbe niile mbụ, price as variablena a routes Listing na-enye ọnụ ọgụgụ nke onye ọ bụla nkọwa ụzọ. Ọ na-esonụ vision na akụkọ ihe mere eme, ma ọ bụghị ngwá ọrụ.

GET /api/v1/models/{id} na-enweta otu aha na alias dị ka ajụjụ, na-ekpuchi nkọwa maka ụdị ha na-ekpuchi.

nzọụkwụ

{
  "object": "list",
  "data": [
    {
      "id": "anthropic/claude-sonnet-5",
      "object": "model",
      "type": "chat",
      "owned_by": "anthropic",
      "name": "Claude Sonnet 5",
      "created": 0,
      "context_length": 1000000,
      "max_output_tokens": 64000,
      "architecture": { "input_modalities": ["text", "image"], "output_modalities": ["text"] },
      "supported_parameters": ["max_tokens", "temperature", "tools", "tool_choice", "reasoning", "response_format", "stop"],
      "capabilities": { "vision": true, "video": false, "tools": true, "reasoning": true, "web_search": true },
      "balance": "pro",
      "pricing": {
        "type": "per_token",
        "currency": "USD",
        "input_per_1M_tokens": 4.725,
        "output_per_1M_tokens": 23.625,
        "cache_read_per_1M_tokens": 0.4725,
        "sats_input_per_1M_tokens": 4038,
        "sats_output_per_1M_tokens": 20192
      },
      "description": "...",
      "nymbot_key": "claude-sonnet"
    }
  ]
}

Ndị ọzọ:

  • Ngwaahịa entries nwere capabilities (accepts_image_url, requires_image_url, edit) na a price per_generation.
  • Ngwaahịa entries nwere max_duration_seconds na resolutionsna a price per_second n'ihi na ihe ọ bụla.
  • ekwentị entries nwere audio_type speech ọ transcriptionỌnụahịa per_1k_chars ọ per_minute.
  • Ngwuputa entries nwere dimensions, context_length, max_inputs na a price per million input tokens.

Ụdị price "estimated": true bụ ihe na-ekwu nke ngwa maka generator nke price a na-adịghị na-ekwu. A unknown type ịkwụ ụgwọ 400.

cURL

curl "https://nymbot.ai/api/v1/models?type=chat"

Python

import requests

models = requests.get("https://nymbot.ai/api/v1/models", params={"type": "chat"}).json()["data"]
for m in models:
    print(m["id"], m["balance"], m["pricing"].get("input_per_1M_tokens"))

JavaScript

const res = await fetch("https://nymbot.ai/api/v1/models?type=chat");
const { data } = await res.json();
for (const m of data) console.log(m.id, m.balance, m.pricing.input_per_1M_tokens);