Tsibela kumxholo
Ukuguqulwa kweNymbot

Okubelelwe elwazini Iimveliso

I-Chat, Imibuzo kunye ne-Messages

Iintlobo ezintathu ukufumana iimodeli into, kwiintlobo ezintathu iinkcukacha kubathengi ziye zixazulule, zonke ziye zithunyelwa kwiimodeli efanayo kwaye zithunyelwe ngexesha elifanayo.

Ukugqibela Chat

I-OpenAI i-chat format, kunye neyile enokuxhomekeke kwi-tool. Send the conversation so far and get the next message back.

POST https://nymbot.ai/api/v1/chat/completions - kufuneka i-API key.

Ukucinga model kwaye messages A sampling parameter the chosen model does not take is dropped without an error, ngoko umzimba isicelo isebenza kwiimodeli. I-model list inikeza imodeli yeenkcukacha supported_parametersYintoni i-refused kunokuba i-drop-down iyiphi na ingxaki ye-model: iifoto ye-model eyenza, izixhobo ze-model eyenza ukufumana.

UkucaciswaUhloboUkucingaUkucaciswa
modelUkucingaEwenymbot/auto (Ukuba auto) ukusuka kwi-Nymbot kwi-standard balance, okanye i-catalogue model id efana ne-Nymbot anthropic/claude-sonnet-5 kwi-Balance Pro. Iimpawu ezincinane kunye ne-aliases ze-app ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye ziye zibe Ukucinga.
messagesUkucingaEweIingxoxo. Iingxoxo system, developer (Setyenziswa njenge System), user, assistant kwaye toolI-Content yi-string okanye i-list of text kwaye image_url iindawo; iifoto kuphela kwiingxelo ze-user. input_audio iifayile iifayile iifayile zeefayile.
streamUkucingaNgabaThumela impendulo njengoko ilaphi. Shiya Ukucinga.
stream_optionsUkucingaNgaba{"include_usage": true} inikeza ingxubevange lokugqibela kunye ne-token count kunye ne-cost.
max_tokens
max_completion_tokens
UkucingaNgabaI-Token ezininzi yokubhaliweyo. Ukunciphisa kwi-maximum ye-model ukuba aphezulu. Kwakhona ibekwe i-mali esithathwe kwi-balance yakho, ngoko inani elincinci kufuneka i-credit engaphansi ekuqaleni.
temperature
top_p
InomboloNgabaUkulawula isampula: temperature ukusuka 0 ukuya 2 top_p ukusuka 0 ukuya 1.
stopString okanye arrayNgabaUmxholo owodwa: umnxeba okanye ubuninzi we-4 umnxeba, ngalinye ubuninzi we-256 amaxabiso. Amasetyenziswa nymbot/auto.
seedUkucingaNgabaUkusetyenziswa kwama-sampling, apho i-model ibonelela.
presence_penalty
frequency_penalty
InomboloNgabaIingcingo ze-repetition, zonke kwi-2 ukuya kwi-2.
response_formatUkucingaNgaba{"type": "json_object"} okanye {"type": "json_schema", "json_schema": {…}}, apho imodeli ibonelela. Akukho kusetyenziswa nymbot/auto.
tools
tool_choice
parallel_tool_calls
i-array, i-string okanye i-object, booleanNgabaFunction yokuzonwabisa. See Izixhobo Callsi-A web_search Izixhobo zihlala Ukucinga web. Kwakhona 128 izixhobo kunye 512 KB imibuzo, zihlanganisa kwakhona 64 amazinga ububanzi; ngaphezulu 400.
reasoning_effort
reasoning
umnxeba, umnxebaNgaba"minimal", "low", "medium" okanye "high"okanye {"effort": "high"}. "none" okanye {"enabled": false} Ukusuka kwakhona. See Ukucinga.
pluginsUkucingaNgaba[{"id": "web", "max_results": 5}] Zonke iziphumo ziquka kwi-web yokuqala. Up to 10 results.
nUkucingaNgabaI-1 kuphela: Yonke into eyahlukileyo 400.
logit_bias
user
metadata
Object, String, IsixhoboNgabaUkusetyenziswa kunye nokulandwa. logit_bias iinkcukacha kwi 300 ids token ukuya kwinombolo -100 ukuya ku-100; user ubungakanani obungaphezulu kwe-256 iimpawu; metadata inqaku ukuya ku-16 iingxaki, iingxaki ukuya ku-64 iingxaki kunye neengxaki ukuya ku-512.

Ukusabela ngokuvamile chat.completionNgexabiso kwi usage.cost (kwimali) kwaye kwi nymbot Iimpawu model umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo umzekelo message.reasoning_contentUkusuka ukusuka ku-response.

Qhagamshelana

{
  "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 Ukusetyenziswa kwimveliso, njengoko abaphakeli zithunyelwe ngokufanayo: tool_calls Xa umzila wabhala izixhobo, length Xa isibuyekezo usebenzisa zonke i-token efunyenwe (okanye i-model usetyenzise zonke iingxaki kwaye ayifunda isibuyekezo), content_filter Xa umncedisi waya, kwaye stop Ngaphandle usage.completion_tokens_details.reasoning_tokens i-always is 0: i-token ye-reasoning ebonakalayo ibekwe, kwaye ibekwe, completion_tokens.

UmgangathoNgaba
400Ngaba model okanye messages (missing_required_parameter); i-audio okanye ifayile i-part, okanye iifoto ye-model enokukwazi ukubona (unsupported_content); ngaphezu kwe-20 iifoto (too_many_images); i-sampling i-parameter ye-type efanelekileyo okanye ngaphandle kwe-range (invalid_value); umfanekiso okuzenzakalelayo okuzenzakalelayo (invalid_image_url); izixhobo kwi-model okuyinto ayikho (unsupported_tool); n Ngaphandle kwe-1; A :thinking I-Supplement on a Model That Can't Realize (model_not_found); okanye umthengisi wafumana isicelo (upstream_rejected).
402I-Balance eyenziwa kwimodeli ayikwazi ukufumana i-hold.
403Ixesha lokugqibela (key_limit_reached(Imininingwane ezantsi) max_tokens okanye ukwandisa i-cap.
404(Khona isibonelo esithile esithile)model_not_found).
429I-key's rate limit, okanye i-provider's (upstream_rate_limited).
502, 503Umthengisi wahlala (upstream_error) okanye i-overload (upstream_overloadedUkutya Retry-After). Akukho ingxelo ngaphandle kwe-provider ifayile ngenxa yokusabela.

I-state codes zonke i-endpoint shares ziquka phantsi Ukucinga.

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);

Ukucinga

Ukucinga "stream": true Ukusabela umxokozelo umxokozelo umxokozelo umxokozelo umxokozelo umxokozelo umxokozelo umxokozelo umxokozelo umxokozelo umxokozelo umxokozelo chat.completion.chunk i-A data: line, kwaye umlilo ukugcina nge data: [DONE]I-Reasoning ifumaneka ku delta.reasoning_contentUkusabela kwi delta.content.

Stream into engaphezulu kweeminyaka engaphezulu kwe-100 iiveki, njenge-response elide, max_tokens okanye iimodeli yokuzonwabisa. Isicelo esithathwa ayithumela engaphi ngexesha lokuphendula impendulo, kwaye inethiwekhi phakathi kwakhona kunye neNymbot inokugqiba ukuxhumanisa ukuxhumanisa emva kweeyure ezili-100; iimodeli ibekwe kwaye into esithathwe ibekwe, kodwa impendulo ibekwe. Iimodeli ibekwe i-ke-ke-alive, ngoko ibekwe ebekwe ngexesha elide xa iimodeli ibekwe.

Ukucinga

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]
  • Iinkcukacha ezidlulileyo nge : iingcebiso ze-ke-ke-living, zithunyelwa ngexesha le-15 ngexesha xa i-model isithembisa. Iingcebiso ze-SSE zihlale.
  • Nceda "stream_options": {"include_usage": true} ukufumana i-ultimate chunk phezulu, kunye ne-empty choices, i-token ibala, i-cost kunye ne- nymbot Iimpawu
  • I-charge ifumaneka emva kokugqiba kwe-stream. Ukuba uqhagamshelane ngexesha elandelayo, i-model ayizange: I-Nymbot ibonisa i-stream ye-providers, ngexesha elide ka-25 iiveki, ukuze ufumane i-token count yayo, kwaye uxokelela ukuba i-providers ibhalisele. Ngaphandle kwakhona, i-charge ibhaliswe kwi-input yakho kunye ne-written, kunye ne-output allowance epheleleyo ye-model yaye izizathu.
  • I-error phambi kwe-chunk yokuqala, njenge 401 okanye 402, kuza njenge-JSON epheleleyo kunye ne-status code yayo, ayikho njenge-stream. I-error emva kokufumana i-stream ifumaneka njenge-stream epheleleyo data: {"error": {…}} umdla, kwaye umdla ivuliwe ngaphandle [DONE].
  • Iingcebiso kunye nezixhobo, kunye neengcebiso kwi-OpenAI's Responses transport, ayinxalenye kwi-providers. Zizibophelela kunye ne-flow efanelekileyo, ziye zithunyelwa emva kokuphumelela.

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);
}

Izixhobo Calls

Ukubonisa umsebenzi kwi tools kwaye imodeli inokufuneka ukuba omnye uqhagamshelane ngaphandle kokufumana. Uqhagamshelane ne-function, ukongeza imiphumo yayo njenge tool Umxholo we-Same tool_call_idI-Nymbot ayikwazi ukuqhuba i-functions yakho; inikeza i-request ye-model kwakhona kwakhona.

tool_choice Ukucinga "auto", "none", "required" okanye {"type": "function", "function": {"name": "…"}}. I-model list ibonisa ukuba iimodeli ziquka izixhobo (capabilities.tools) Izixhobo ziquka 400 unsupported_tool Yintoni nymbot/auto kwaye kwiimodeli ezincinane ze-catalog ezisebenza kwi-OpenAI's Responses transport, apho i-Nymbot ayikwazi ukuxhaswa izixhobo.

Ukucinga "stream": true, i-request kunye ne-tools ifumaneka kwi-piece eyodwa kwaye ifumaneka njenge-chunk yesikhathi esemgangathweni: i-roll, i-chunk enikeza zonke i-tool call kunye ne-index, i-id, i-name kunye ne-arguments, kunye ne-finish chunk.

Ukusabela, ingxenye

"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);

Iifoto kwi-request

Imodeli kunye capabilities.vision Uyakwazi ukuyifaka iifoto. Add a image_url umxholo we-user, kunye ne-public https:// link okanye a data:image/…;base64, I-URL. I-up to 20 images per request. Iifoto ze-SVG ziquka, ngoko ke i-link engaphezulu kwe-4.096 iimpawu okanye i-imeyile ye-username okanye i-password (400 invalid_image_urlI-Optional I-Optional detail Yintoni auto, low okanye high.

Ukucinga nymbot/auto, i-request kunye ne-picture kufuneka ifakwe kwimodeli ye-standard enokufumana. I-catalogue model ngaphandle capabilities.vision Ukukhusela iifoto kunye 400 unsupported_content. Iifoto kunokwenzeka kuphela kwiingxelo ze-user. I-link kufuneka ibonise kwi-host ye-publish; i-Nymbot ibonise i-image kwi-provider ye-model yaye akuyona.

I-image ifayilishwe njengoko i-token ye-input ye-provider ibekwe, njenge-resume ye-request.

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);

Ukucinga

Imodeli kunye capabilities.reasoning Uyakwazi ukufikelela ngaphambi kokufumana. Qhagamshelana ngexesha elide okanye elide reasoning_effort ("minimal", "low", "medium" okanye "high"(i) okanye "reasoning": {"effort": "high"}, okanye Ukongeza :thinking umnxeba umnxeba umnxeba, nto leyo inokuthi umnxeba kakhulu. Kwi-model ngaphandle kokucinga, ukucaciswa kubhalwe. Nge nymbot/auto, :thinking inikeza isicelo kwi-route ye-reasoning ye-standard.

Kwiimodeli ye-Anthropic, isixeko se-think ye-1000, i-2000, i-8000 okanye i-16000 tokens, ayikho ngaphezu kwe-1000. max_tokens ukufikelela. Ukufikelela kunokwenzeka xa tool_choice umnikelo umnikelo, kwaye xa umnikelo uqhubeka umnikelo umnikelo (umnikelo wayo lokugqibela yi umnikelo umnikelo), ngenxa Anthropic kufuneka umnikelo wabanjwa ngexesha elandelayo ukuqalisa. Yinto efanayo kusebenza kwi-Response kunye ne-Messages endpoints.

Iingxaki ziye ziye ziye kwakhona message.reasoning_contentokanye delta.reasoning_content Xa uqhagamshelane, akukwazi ukuxhaswa kwi-response. I-Reasoning yi-output kwaye ifakwe njenge-output, ngaphakathi completion_tokensIinkonzo ezininzi ziyavumela i-texto yokuzonwabisa nangona, kwaye ibhaliswe.

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);

Iimveliso ze-Suffixes

I-Suffix ye-model name ikuguqula indlela yokusebenza kwe-request, ngaphandle kwexesha elinye. Zisebenza kwi-id epheleleyo kunye neentsimbi ezincinane, njengoko ku anthropic/claude-sonnet-5:online.

UkucingaUkusabela
:onlineUkucinga kwi-web yokuqala, njenge plugins: [{"id": "web"}]Molo Ukucinga web.
:thinkingUkucaciswa okuphambili; on nymbot/auto, umzila wokufunda. Ngokuqhelekanga umzila, 400 model_not_found kunye “no endpoints found”.
:nitro, :floor, :exacto, :extendedZonke iimveliso ye-catalogue iye yindlela eyodwa, ngoko akukho iindlela ezininzi, ezininzi okanye ezininzi yokukhetha; iimveliso ezidlulileyo zithunyelwe ukuze iimveliso zeemveliso ezivela kwiinkonzo ezininzi ziyafumaneka.

Zonke i-suffix eyayithintwa. I-name epheleleyo ifumaneka kuqala, ngoko i-model eyona i-id efanelekileyo ibandakanya i-colon ibandakanya; ngaphandle kokuba, i-suffixes zithunyelwe ekugqibeleni enye ngexesha ngexesha xa i-model ibandakanya. Umnxeba we-model ingaba ngexabiso engaphezulu kwe-200 ngexabiso ngexabiso engaphezulu kwe-4; i-suffix elide ibandakanya 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);

Yonke imodeli ye-chat inokufunda kwi-live web. I-Nymbot ithatha imiyalezo yokuqala yabasebenzisi (i-2,000 iimpawu zayo zokuqala), ibonisa iiphepha ezifanelekileyo kwaye ibonelela kwimodeli kunye neengxaki, ebizwa ngokuba yi-content eyenziwe ngexesha elandelayo. Kukho iindlela ezimbini:

  • Ukucinga njalo: "plugins": [{"id": "web", "max_results": 5}], okanye a :online Ukubalwa kwimodeli.
  • Ukucinga xa kukunceda: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}]Kwakhona kwakhona as web_search_preview okanye openrouter:web_search. I-Nymbot ihamba kuphela xa ingxaki kufuneka ungenza ulwazi olutsha, le nkqubo efana ne-app isetyenziselwa.

max_results is 5 ngokufanelekileyo kwaye ngexesha elide 10. Izixhobo ziya ku nymbot.web_search.sourcesYonke umntu a title, snippet kwaye url, kwaye as url_citation Ukucaciswa kwi-message.

Zonke iingxaki ezisebenza iindleko $0.008, iye yabhalwe kwi-sats, phezu kwe-token, kwaye ingxenye ye-hold. Iingxaki ezaziwayo ziquka i-token yokufinyelela, ngoko imibuzo ye-web ngaphezulu kwexabiso efanayo ebonakalayo, nganye amaxabiso ezininzi ngaphezulu.

Ukusabela, ingxenye

"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);

Ukusabela API

I-OpenAI ifomati esitsha, esetyenziswa yi-OpenAI Agents SDK kunye ne-Codex. I-OpenAI isebenza kwiimodeli efanayo, ukuxhaswa kunye neefomati ezifana ne-Chat Completions.

POST https://nymbot.ai/api/v1/responses - kufuneka i-API key.

UkucaciswaUhloboUkucingaUkucaciswa
modelUkucingaEweNjengoko Ukugqibela ChatIingxaki zihlanganisa.
inputString okanye arrayEweI-string, okanye i-list of items: iingxelo (iingxelo user, assistant, system, developer(Ukuba input_text, input_image kwaye output_text iindawo, kunye function_call kwaye function_call_output Iimveliso ze-Instruments input_image Nceda image_url link okanye data URL, akukho id ifayile. reasoning kwaye web_search_call iimveliso zihlala; item_reference Ukukhuselwa
instructionsUkucingaNgabaImiyalezo System.
max_output_tokensUkucingaNgabaIingxowa ezininzi ziye zithunyelwe.
temperature
top_p
InomboloNgabaSampling controls, apho imodeli ukuthatha kwabo.
tools
tool_choice
parallel_tool_calls
i-array, i-string okanye i-object, booleanNgabaIzixhobo zokusebenza, kwi-Forms Response ({"type": "function", "name": …, "parameters": …}c) A web_search okanye web_search_preview Izixhobo zihlala Ukucinga web xa kukunceda. Ezinye izixhobo ezihlangene.
reasoningUkucingaNgaba{"effort": "minimal" | "low" | "medium" | "high"}. xhigh kwaye max Ukucinga high; none Yenza it off.
text.format
response_format
UkucingaNgabaI-output eyenziwe, njenge-schema ye-JSON okanye json_object.
metadataUkucingaNgabaI-Return unchanged kwi-response. Ngaphezulu kwe-16 i-string values, i-keys ukuya kwi-64 iimpawu kunye ne-values ukuya kwi-512.
streamUkucingaNgabaStream iziganeko njengoko ezaziwayo phantsi.
storeUkucingaNgabaIgnored. Akukho ibhaliswe, kwaye impendulo ivele "store": false.
previous_response_id
conversation
background
String, i-object, i-booleanNgabaUkusetyenziswa: 400 unsupported_parameter. Imibuzo ayithunyelwe, ngoko uqhagamshelane inkxaso yonke input Zonke izikhathi.

Qhagamshelana

{
  "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 }
}

I-Tool Request ifumaneka kwi output Njengoko a function_call Umzekelo nge call_id, name kwaye arguments; Wabelane imiphumo njenge a function_call_output Umzekelo we-Same call_idUkulungiselela, xa imodeli ivumela, kuyinto a reasoning Umzekelo nge reasoning_text iinkcukacha, ezidlulileyo kuqala. status Yintoni incomplete Xa impendulo ifumaneka max_output_tokens okanye umnqweno waya, kunye incomplete_details.reason Ukucinga max_output_tokens okanye content_filterUkusabela kwakhona iimeko yeemfuno (i-temperature, izixhobo, ukhetho lwezixhobo njl) njengoko i-OpenAI yenza, kwaye ibonisa i-OpenAI. nymbot I-object ye-cost

Streamed, zonke iziganeko event: Line kunye a data: Line nge-a sequence_numberNgokutsho oku: response.created, response.in_progress, response.output_item.added, response.content_part.addedKwiminyaka emininzi response.output_text.delta, response.output_text.done, response.content_part.done, response.output_item.doneKwaye lokugqibela response.completed kunye ne-usage kunye ne-cost. A answer cuts short ends with response.incomplete kwimeko, kwaye isisombululo emva kokuqala stream response.failed. Ukuphendula Streams njenge item yayo response.reasoning_text.delta kwaye .doneI-Tool Calls ifumaneka emva kwe-message, ngalinye njenge-elements kunye response.function_call_arguments.delta kwaye .done.

UmgangathoNgaba
400Ngaba model okanye input; previous_response_id, conversation, background okanye item_reference (unsupported_parameter); isixhobo esidumileyo okanye i-content type.
402, 403, 404, 429, 502, 503Xa i-Chat Completions.

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);

Imibuzo ye-Anthropic

I-Anthropic ye-format, ye-Anthropic SDKs kunye neCode ye-Claude. Isebenza kunye neemodeli ezininzi kwi-catalogue, ngaphandle kwe-Claude kuphela: isicelo ifumaneka, isebenza nge-pipeline efanayo, kwaye ifumaneka kwakhona.

POST https://nymbot.ai/api/v1/messages — kufuneka i-API key, njenge x-api-key okanye Authorization: Bearer.

Yintoni anthropic-version kwaye anthropic-beta Iimveliso ze-anthropic zihlanganiswa kunye ne-catalogue, ngoko i-Claude Code kunye ne-SDK zokusebenza kunye neemveliso ezisetyenziselwa:

  • I-catalogue yaziwa, njenge claude-sonnet-5 okanye anthropic/claude-opus-5Ukusetyenziswa njengoko.
  • Okungenani umhla (-20260514), -latest, inguqulelo tag ezifana -v1, i-bracketed tag efana ne [1m] Yintoni anthropic/ okanye anthropic. I-prefix ifumaneka, kwaye i-dots kunye ne-dashes kwi-version zibonakalisa kwiintlobo ezimbini (claude-haiku-4-5 Ukucinga claude-haiku-4.5).
  • Ukuba akukho nto, isetyenziswa i-family (i-Opus, i-Sonnet okanye i-Haiku), nangona inguqulo ye-catalogue yintoni okanye engaphezulu kwe-version efunyenwe.
  • Umnqweno olungagqibekanga nge-Name that matches nothing returns 404 not_found_error.
UkucaciswaUhloboUkucingaUkucaciswa
modelUkucingaEweI-catalogue model id, okanye i-Anthropic model name.
max_tokensUkucingaEweIingxowa ezininzi ziye zithunyelwe.
messagesUkucingaEweuser kwaye assistant Ukusuka, nge text, image (i-base64 okanye i-URL yokuqala) tool_use kwaye tool_result iimveliso thinking iiblokhi ezidlulileyo ezidlulileyo ziyavumelana kwaye zithunyelwe.
systemString okanye arrayNgabaI-System prompt, njenge-string okanye i-text blocks.
temperature
top_p
InomboloNgabaSampling controls, apho imodeli ukuthatha kwabo. top_k Yintoni i-accepted kunye ne-drop.
stop_sequencesI-Array ye-StringsNgabaUmzekelo we-text. Ngaphezulu kwe-4 strings, ngalinye ngaphezulu kwe-256 iimpawu.
tools
tool_choice
iimveliso, iimvelisoNgabaIzixhobo nge name, description kwaye input_schemai-A web_search Izixhobo ze-Server Turn On Ukucinga web; Ezinye izixhobo ezihlangeneyo ze-Anthropic (i-bash, i-editor ye-text, ukusetyenziswa kwe-computer) ziye zithintela unsupported_tool. tool_choice Ukucinga auto, any, tool okanye noneYaye disable_parallel_tool_use.
thinkingUkucingaNgaba{"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} okanye {"type": "disabled"}. I-budget ihamba isantya: phantsi kwe-2048 ephantsi, ukusuka kwi-2048 ephantsi, ukusuka kwi-8192 ephakathi, ukusuka kwi-16384 ephezulu. output_config.effortokanye eliphezulu.
streamUkucingaNgabaStream kwi-event format ye-Anthropic.
metadataUkucingaNgabaUkusetyenziswa kunye nokugqiba.

Qhagamshelana

{
  "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 Kwakhona ungenza tool_use iintlobo kunye ne-a thinking I-block yeyona signature Yintoni embalwa. stop_reason Yintoni end_turn, max_tokens, tool_use okanye refusalUkusebenza ngexesha elifanayo finish_reason Yintoni Ukugqibela Chat; stop_sequence Yintoni null, ngelixa xa i-stop sequence iye yandipha umxholo. input_tokens iingxaki ezintsha kuphela; ingxaki ze-cache ziyafumaneka kwiifomethi ezimbini ze-cache. Iindleko ziyafumaneka kwi-cache nymbot Object kunye ne X-Nymbot-Cost-Sats iimveliso

Ukusetyenziswa, iziganeko ziyi-Anthropic: message_start, content_block_start, ping, content_block_delta (text_delta, input_json_delta okanye thinking_delta), content_block_stop, message_delta nge-stop reason, ukusetyenziswa kunye ne- nymbot ixabiso Object, kunye message_stopi-A ping isithunyelwe kwakhona ngexesha le-15 ngexesha xa imodeli isebenza. Imiyalelo ye-Tool isithunyelwe emva kwe-text, ngalinye njenge- tool_use i-block nge-input yayo yonke kwi-one input_json_delta.

Imibuzo kule endpoint usebenzisa ifomati ye-Anthropic: {"type": "error", "error": {"type": "not_found_error", "message": "…"}}I-Balance ye-Short 402 billing_errorUmthengisi we-Overloaded 503 overloaded_error. Ukukhangisa emva kokufika umdla kubhalwe njenge error Ukusebenza

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);

Ukubalwa tokens

Ukubalwa inani le-input tokens isicelo se-Messages, ngoko i-client inokukwazi ukuyifaka ngaphambi kokuthumela. I-Token ye-Input ye-Token ye-Token ye-Token ye-Token ye-Token ye-Token ye-Token ye-Messages.

POST https://nymbot.ai/api/v1/messages/count_tokens — kufuneka i-API key. Free.

I-body yinto efanayo kunye ne- ImibuzoNgaphandle max_tokens; igama lwezimveliso kufuneka ifumaneke. Ukubala kubaluleke: iimpawu ze-system prompt, iingxelo, iingxelo ze-tool kunye neefayile ze-tool zihlanganiswa ngama-4, kunye ne-1600 ngalinye imifanekiso. Akukho tokenizer ye-providers yayo, ngoko ukwahlukanisa kwakhona kunokufumaneka. I-key eyenza i-cap yaye ingasebenzisa.

Qhagamshelana

{ "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);

Iimodeli zeLista

Wonke iimodeli kunye ne-generator i-API ibonelela, kunye nexabiso. I-list ifumaneka kwi-catalogue elifanayo kunye ne-picker ye-app, ngoko kuxhomekeke ukuba i-server iyasebenza.

GET https://nymbot.ai/api/v1/models — no key needed. Hlola iiyure ezini.

GET /api/v1/models/{id} Yenza inguqulelo 1

UkucaciswaUhloboUkucingaUkucaciswa
typeumnikelo (Query)Ngabachat (Wagqibela ukuhlaziywa) image, video, audio, embedding okanye all. iindidi ezininzi ziyafumaneka, njenge image,video.

Izixhobo zibonisa, kunye neengxabiso kunye neengxabiso ezidlulileyo, kwi-dollars kunye ne-sats kwi-Current Bitcoin price. balance Ukubonisa ukuba i-balance ye-model ibhalisele. nymbot_key i-model ye-name encinane kwi-app. created i-0 ngenxa yokubhalisa ukuba i-catalogue ayikwazi ukufikelela kwimodeli. A model without published token rates is priced per_request endaweni yoko.

nymbot/auto Uluhlu lokuqala, ixabiso njengoko variableNge a routes Uluhlu leyo enikeza iimali yeenkcukacha zokusetyenziswa ngalinye. Uluhlu lihlanganisa ividiyo kunye neengxaki, kodwa ayikho izixhobo.

GET /api/v1/models/{id} iingoma kunye ne-aliases efanayo njenge-request, kwaye ivumela iingoma ye-model eyenza.

Qhagamshelana

{
  "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"
    }
  ]
}

Zonke iindidi:

  • Ukucinga Inguqulelo capabilities (accepts_image_url, requires_image_url, edit) kwaye ixabiso per_generation.
  • Ividiyo Inguqulelo max_duration_seconds kwaye resolutionsNgexabiso per_second Ngokutsho zonke iingxelo.
  • I-Audio Inguqulelo audio_type speech okanye transcriptioniimali per_1k_chars okanye per_minute.
  • Ukucinga Inguqulelo dimensions, context_length, max_inputs kunye nexabiso ngalinye ye-input tokens.

Iindleko zeMarked "estimated": true iimveliso ye-app ye-generator ebonakalayo. I-Unknown type Ukuguqulwa 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);