Yeqela kokuqukethwe
Kuhlolwe ku Nymbot

Isisekelo solwazi Izinzuzo

Chat, Imibuzo futhi Imibuzo

Three ways to ask a model something, in the three formats amakhasimende already spoke, zonke isebenza on the same models and billed the same way.

Ukusebenza kwe-Chat

I-OpenAI i-chat format, ne-one eyenza cishe zonke izixhobo. Thumela i-conversation kuze kube manje futhi ufike i-message elilandelayo.

POST https://nymbot.ai/api/v1/chat/completions — Ufuna API key.

Waze model futhi messages I-parameter ye-sampling eyenza i-model eyenziwe akuyona ngaphandle kwe-error, ngakho-ke i-body ye-request isebenza phakathi kwe-models. I-model list inikeza i-model ye-models. supported_parametersOkuchazwa kuncike kuncike iyiphi into yama-model ayikwazi ukwenza: izithombe yama-model ayikwazi ukubona, izixhobo yama-model ayikwazi ukubiza.

isikhuntaUhloboUkubalwaUkucaciswa
modelUkuhlobisaYebonymbot/auto (Uma auto) ukusuka ku-Nymbot ku-standard balance, noma id model ye-catalogue njenge- anthropic/claude-sonnet-5 ku Pro isilinganiso. Izithombe ezincinane nezilinganiso ze-app ziye zithatholakala. Kuncike ekupheleni Ukulungele.
messagesWazeYeboImininingwane system, developer (Ukuhlukaniswa njengoba uhlelo), user, assistant futhi toolI-Content yi-string noma isithombe se- text futhi image_url izingxenye; izithombe kuphela emakhasini abasebenzisi. input_audio izigaba ze-file ziye zithintela.
streamUkuhlobisaNgaphandleThola impendulo njengoko kulandwa. Thola Ukuhlobisa.
stream_optionsUmphumelaNgaphandle{"include_usage": true} Ukongeza isikhwama lokugqibela ne-token count kanye nemali.
max_tokens
max_completion_tokens
Ngena ngemvumeNgaphandleI-Token engaphansi kuya ku-maximum ye-model uma engaphezulu. Kwakhona ibeka inani elithathwe kwebhizinisi lakho, ngakho-ke inani elincinane akudingeka i-credit engaphansi ekuqaleni.
temperature
top_p
InomboloNgaphandleUkuhlolwa kwe-sampling temperature ukusuka 0 kuya ku-2, top_p ukusuka 0 kuya 1.
stopString noma arrayNgaphandleUmbhalo owodwa: umbhalo owodwa noma okungenani we-4 ama-strings, ngamunye okungenani kwe-256 ama-character. nymbot/auto.
seedNgena ngemvumeNgaphandleUkuze ukuguqulwa kwe-sampling, lapho imodeli inikeza.
presence_penalty
frequency_penalty
InomboloNgaphandleUkulawula okuqhubekayo, ngamunye kusuka -2 kuya 2.
response_formatUmphumelaNgaphandle{"type": "json_object"} noma {"type": "json_schema", "json_schema": {…}}, lapho imodeli inikeza. Akukho kusetshenziselwa nymbot/auto.
tools
tool_choice
parallel_tool_calls
array, String noma Object, booleanNgaphandleUkusebenza ukubuyekeza. See ImikhiqizoU-A web_search I-Tool Turns On Ukubuyekezwa. Ngaphezulu kwe-128 izixhobo kanye ne-512 KB iziqinisekiso, zihlanganisa ku-maximum ye-64 izinga eliphezulu; ngaphezulu 400.
reasoning_effort
reasoning
isikhunta, isikhuntaNgaphandle"minimal", "low", "medium" noma "high", noma {"effort": "high"}. "none" noma {"enabled": false} Ngena ngemvume Ukubuyekezwa.
pluginsWazeNgaphandle[{"id": "web", "max_results": 5}] ukufuna kuqala web. Up to 10 imiphumela.
nNgena ngemvumeNgaphandleI-1 kuphela: Yonke okufakiwe 400.
logit_bias
user
metadata
Object, String, UmphumelaNgaphandleKutholwe futhi akufanele. logit_bias amaphepha ku-max 300 ids token kuya izibalo kusuka ku -100 kuya ku-100; user kuyinto ephakeme ku-256 imibala; metadata Imininingwane ezingu-16 ye-string, ama-keys angama-64 futhi ama-values angama-512.

Ukusabela okuhlobene chat.completionNge-cost in usage.cost (ngama-dollars) futhi ku nymbot Umphumela model is a resolved model id, ngakho-ke a short name is a return as the full one. Uma model is a reasoned before answering, is a reasoning message.reasoning_contentNgaphandle kokuphendula.

Ukuphendula

{
  "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 Ukusebenza kusuka ku-received, njengoba ama-providers zithunyelwe ngokufanayo: tool_calls Uma imodeli wabhala izixhobo, length lapho isibuyekezo usebenzisa zonke ama-token eyenziwe (noma umzila wahlanganyela konke futhi wahlanganyele akukho isibuyekezo), content_filter Uma umphakeli wahlala, futhi stop Ngaphandle usage.completion_tokens_details.reasoning_tokens is always 0: i-token ye-reasoning ebonakalayo ibekwe, futhi ibekwe, ku completion_tokens.

UkubuyekezwaKwangathi
400Ngaphandle model noma messages (missing_required_parameter); i-audio noma ifayela ingxenye, noma imifanekiso ye-model okuyinto ayikwazi ukubona (unsupported_content); ezingaphezu kwama-20 izithombe (too_many_images); isampula parameter of the wrong type noma out of range (invalid_value); umbhalo okuqukethwe okungaziwa (invalid_image_url); izixhobo ku-model okuyinto ayikwazi ukudlala (unsupported_tool); n Ngaphandle 1; A :thinking suffix on a model that can't reason (model_not_found); noma umphakeli wabhala isicelo (upstream_rejected).
402I-balance eyenziwe yi-model ayikwazi ukucubungula ukucubungula.
403Ukuphakama kwe-key's cap (key_limit_reached(Imininingwane Lower max_tokens noma ukwandisa cap.
404(Hhayi isibonelo esithakazelisayo)model_not_found).
429I-key's rate limit, noma umphakeli we-providers (upstream_rate_limited).
502, 503Umphakeli wahlala (upstream_error) noma kulinganiswa (upstream_overloadedNge Retry-AfterNokho akubhalwe ngaphandle kwe-provider ifakwe ngenxa yokusabela.

I-state codes zonke i-endpoint shares zihlanganisa ngaphansi Izinzuzo.

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

Ukuhlobisa

Nge "stream": true Ukuphendula ku-server-send events lapho imodeli ithi. chat.completion.chunk U-A data: umugqa, futhi umugqa uqala nge data: [DONE]I-Reasoning ikhona ku delta.reasoning_contentUkuphendula ku delta.content.

Stream konke okungenani engaphezu kuka-100 imizuzu, njenge-response eside, max_tokens noma imodeli yokuxhumana. Isicelo esithathwa ayithumela lokho kuze kube lokuphendula, futhi inethiwekhi phakathi kwethu no-Nymbot kungenzeka ukujabulela ukuxhuma okungenani ngemizuzu angu-100; imodeli akufinyelela futhi into esithathwe iyahlawulwe, kodwa impendulo iyahlawulwe. Umthombo ivumela i-ke-alive, ngakho-ke ivuliwe ngenkathi imodeli ivuliwe.

Ukuhlobisa

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 ekuqaleni nge : izibuyekezo ze-ke-ke-living, zithunyelwe ngamunye amaminithi angu-15 lapho imodeli isithunyelwe. I-SSE amakhasimende akuyona.
  • Waze "stream_options": {"include_usage": true} ukufumana inkinobho lokugqibela emaphaketheni, nge-empathy choices, i-token ibekwe, i-cost kanye ne- nymbot Umphumela
  • I-charge ifakwe ngemuva kokuphuma kwe-stream. Uma uxhumane ukuxhumanisa ngokushesha, imodeli akuyona asekelwe: I-Nymbot ibheka i-stream ye-providers, ngexesha elide angu-25, ukuze uthole inani yayo ye-token, futhi uxhumane okuhlolwa kwe-providers. Ngaphandle kokufaka okuhlolwa i-charge ifakwe kusuka ku-input yakho ne-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke.
  • I-Error Before the First Chunk, njenge 401 noma 402, ivela njenge-JSON ebonakalayo ne-status code yayo, akuyona njenge-stream. I-error emva kokufaka i-stream ivela njenge-ultimate data: {"error": {…}} umkhosi, futhi umkhosi wahlala ngaphandle [DONE].
  • I-Requests nge-tools, ne-models ku-OpenAI's Responses transport, ayitholukile kusuka ku-provider. Bhalisa ngokuphendula nge-flow elifanelekayo, eziholwe ngemuva kokuphendula.

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

Izithombe

Ukubonisa umsebenzi in tools futhi imodeli ungayibiza ukuba omunye ukhangela kunokuphendula. Ungasebenza umsebenzi, ukongeza imiphumela yayo njenge tool Imininingwane esifanayo tool_call_idI-Nymbot ayidlulele imisebenzi zakho; ithi isithumela isicelo se-model ngokuvumelana nawe.

tool_choice Waze "auto", "none", "required" noma {"type": "function", "function": {"name": "…"}}. Umhlahlandlela umhlahlandlela umhlahlandlela ukuthi amamodeli ungazithombe izixhobo (capabilities.tools) Izinsiza zithintela 400 unsupported_tool Yini nymbot/auto futhi kuma-catalogue amamodeli amancane asebenza ku-OpenAI's Responses transport, lapho i-Nymbot ayikwazi ukunikezela izixhobo.

Nge "stream": true, isixazululo se-tools isebenza esisodwa futhi sithunyelwe njenge-chunk ngokuvamile: isixazululo, isixazululo esisodwa esihlanganisa wonke isixazululo se-tool nge-index, id, igama kanye ne-arguments, futhi isixazululo se-finish. I-Clients abalandeli isixazululo se-streamed isixazululo se-tool zihlanganisa njenge-usuku.

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

Izithombe ku-request

Imodeli nge capabilities.vision Ngaba ungayifaka izithombe. Ngena ngemvume image_url part ukuba umbhali umbhali, nge noma umbhali https:// Link noma A data:image/…;base64, I-URL. I-up to 20 images per request. Izithombe ze-SVG zihlanganisa, futhi i-link engaphezu kwama-4.096 ama-character noma enye nge-user name noma password ku- (400 invalid_image_url(Imininingwane Imininingwane) detail Yini auto, low noma high.

Nge nymbot/auto, isixazululo se-image ku-it is a standard model that can see. A catalog model without capabilities.vision Ukukhangisa izithombe nge 400 unsupported_content. Izithombe zingatholakala kuphela kumadokhumenti we-user. I-links kufanele ibonise ku-host ye-publish; I-Nymbot ibonise i-image kumadokhumenti ye-model futhi akuyona.

I-image iyahlaziywa njengama-input tokens owenziwe ngu-provider, 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);

Ukuphendula

Imodeli nge capabilities.reasoning ungathanda ngaphambi kokuphendula. Qinisekisa ngaphezulu noma ngaphezulu reasoning_effort ("minimal", "low", "medium" noma "high"(Uma "reasoning": {"effort": "high"}, noma ukongeza :thinking ukuze imodeli igama, okuyinto inikeza ukucindezeleka okusezingeni eliphezulu. On a model without reasoning the setting is ignored. With nymbot/auto, :thinking Ukulandelela isicelo ku-standard reasoning route.

Ngama-Anthropic amamodeli, isixazululo se-thinking isixazululo se-1,000, 2,000, 8,000 noma 16,000 tokens, akuyona ngaphezulu kwe-1,000. max_tokens isixazululo. Thought is left off when tool_choice I-Anthropic inesibophelela isixhobo, futhi lapho isicelo ivela isilinganiso se-tool loop (i-message yayo lokugqibela iyisisombululo se-tool), ngoba i-Anthropic inesibophelela ukufundisa okuqala. I-Anthropic inesibophelele isilinganiso se-Response kanye ne-Messages.

I-Reasoning iyahluka ku message.reasoning_content, noma delta.reasoning_content lapho ukuhambisa, akukwazi ukuxubana ku-response. I-Reasoning iyona-output futhi ibhekwa njenge-output, ngaphakathi completion_tokensAbanye abaphakeli akuyona inguqulo inguqulo ngokugcwele, futhi iyatholakala.

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

Model Ukuhlobisa

Umphumela we-model name ukuguqulwa indlela yokusebenza kwe-request, ngaphandle kwesigaba esinye. Zisebenza ku-id ephelele kanye nama-short names, njenge- anthropic/claude-sonnet-5:online.

UkuphumelelaUmphumela
:onlineThola ku-web yokuqala, njenge plugins: [{"id": "web"}]Ngena ngemvume Ukubuyekezwa.
:thinkingUkuphakama okuphakeme; on nymbot/auto, indlela yokuxhumana. On a model that cannot reason, 400 model_not_found with “no endpoints found”.
:nitro, :floor, :exacto, :extendedYonke imodeli ye-catalogue ine-route eyodwa, ngakho-ke akuyona elula, elula noma elide yokukhetha; ama-suffixes zithunyelwe ngakho-ke ama-model namasevisi ezivela kuma-services ezingaphezu zokusebenza.

Zonke ezinye iziphuzo zihlanganiswa. Umbhalo oluphelele isishintshwe kuqala, ngakho umbhalo owawo id efanelekayo i-colon iyasebenza; ngaphandle kwalokho, iziphuzo zithintshwe ekupheleni eyodwa ngexesha elinye kuze kube umbhalo uxhumane. Umbhalo we-model ingaba ku-maximum 200 ama-character elide nge-maximum 4 iziphuzo; eyodwa elide ikhiwa 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 angakwazi ukujabulela kusuka ku-live web. I-Nymbot ibheka ngemvume yokuqala ye-user (ama-2000 yokuqala yayo), ibheka amaphepha ezinhle futhi ibheka kwama-model nge-question, ebizwa njengezinto ezingenalutho ukuthi imodeli akufanele ukuthatha imiyalezo kusuka. Kukhona izimo ezimbili:

  • Ukubuyekeza: "plugins": [{"id": "web", "max_results": 5}], noma a :online suffix ku imodeli.
  • Thola lapho kusiza: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}]Ngaphezu kwalokho, i-accepted as web_search_preview noma openrouter:web_search. I-Nymbot ibhizinisi kuphela lapho isibuyekezo kubalulekile ulwazi se-akhawunti, elifanayo isizinda esebenzisa isicelo.

max_results is 5 ngokuvamile futhi ku-maximum 10. Izithombe ezivela ku nymbot.web_search.sourcesNokho, wonke umntu a title, snippet futhi url, futhi as url_citation Izincazelo ezivela ku-message.

Konke ukubuyekeza ukuthi kusebenza izindleko $0.008, iye yakhelwe i-sats, phezulu kwe-token, futhi ingxenye yokubuyekeza. Amaphepha okuyinto zithole ama-token yokufinyelela, ngakho-ke impendulo kusuka ku-web enikezela ngaphezulu kuka-same imibuzo efanelekayo, izikhathi eziningi 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 ye-format entsha, isetshenziselwa i-OpenAI Agents SDK kanye ne-Codex. I-OpenAI isebenza nge-models efanayo, ukucubungula kanye ne-functions njenge-Chat Completions.

POST https://nymbot.ai/api/v1/responses — Ufuna API key.

isikhuntaUhloboUkubalwaUkucaciswa
modelUkuhlobisaYeboUkuze Ukusebenza kwe-ChatIziqu ze-suffixes zihlanganisa.
inputString noma arrayYeboI-string, noma i-list ye-elements: izindaba (ama-rolls) user, assistant, system, developer(NgoLwesithathu input_text, input_image futhi output_text izingxenye, futhi function_call futhi function_call_output Imikhiqizo ye-Instruments input_image Thola image_url isixhumanisi noma data URL, akuyona id ifayela. reasoning futhi web_search_call Izinto zihlanganisa; item_reference Ukukhangisa
instructionsUkuhlobisaNgaphandleIsicelo se-System
max_output_tokensNgena ngemvumeNgaphandleI-Token ye-Token ye-Token ye-Writing
temperature
top_p
InomboloNgaphandleSampling ukulawula, lapho imodeli ukuthatha.
tools
tool_choice
parallel_tool_calls
array, String noma Object, booleanNgaphandleIzixhobo ze-Functional Tools, ku-Response Shape ({"type": "function", "name": …, "parameters": …}(I) A web_search noma web_search_preview I-Tool Turns On Ukubuyekezwa lapho inikeza. Ezinye izixhobo ezimbonini zihambiswa.
reasoningUmphumelaNgaphandle{"effort": "minimal" | "low" | "medium" | "high"}. xhigh futhi max Waze high; none Ngena ngemvume
text.format
response_format
UmphumelaNgaphandleUkukhiqizwa kwe-output, njenge-schema ye-JSON noma json_object.
metadataUmphumelaNgaphandleI-Return unchanged ku-response. Ngaphezulu kwe-16 ama-string values, ama-key angaphezu kwe-64 ama-character ne-512 ama-values.
streamUkuhlobisaNgaphandleStream iziganeko njengezifundo ngezansi.
storeUkuhlobisaNgaphandleIgnored. Nothing is stored, futhi impendulo uvame "store": false.
previous_response_id
conversation
background
String, Izinto, BooleanNgaphandleNgaphandle kokusekela: 400 unsupported_parameter. Izimpendulo ziye zithunyelwe, ngakho-ke ushiye inkxaso ephelele ku input Ngamunye.

Ukuphendula

{
  "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 ku- output Ngiya function_call Umphumela With call_id, name futhi arguments; Thumela imiphumela ngokuvumelana a function_call_output Isigaba esifanayo call_idI-Reasoning, lapho isampula ivumela, kuyinto a reasoning Umphumela With reasoning_text Imininingwane, ifakiwe kuqala. status Yini incomplete Uma umphumela wahlala max_output_tokens noma umphakeli wahlala, nge incomplete_details.reason Waze max_output_tokens noma content_filterUkusabela kwakhona izakhiwo ye-request (i-temperature, i-tools, i-tool choice njll) njengoba i-OpenAI yenza, futhi ivumela i-OpenAI nymbot Imininingwane Imininingwane

Streamed, zonke iziganeko kuyinto event: Line futhi a data: Line nge a sequence_numberNgokusho okuhle: response.created, response.in_progress, response.output_item.added, response.content_part.addedNoma inani le response.output_text.delta, response.output_text.done, response.content_part.done, response.output_item.doneNgemuva kwalokho response.completed nge ukusetshenziswa kanye ne-cost. A answer cut short ends with response.incomplete noma, futhi isizukulwane ngemuva kokuqala stream nge response.failedI-Rasoning Streams njengoba item yayo yayo response.reasoning_text.delta futhi .doneI-Tool Calls ifika ngemvume, ngamunye njenge-elements response.function_call_arguments.delta futhi .done.

UkubuyekezwaKwangathi
400Ngaphandle model noma input; previous_response_id, conversation, background noma item_reference (unsupported_parameter); isixhobo esidumile noma uhlobo se-content.
402, 403, 404, 429, 502, 503mayelana ne-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);

Izindaba ze-Anthropic

I-Anthropic ye-format, ye-Anthropic SDKs ne-Claude Code. Isebenza nge-modeli wonke e-catalogue, ngaphandle kwe-Claude kuphela: isicelo ifakwe, isebenza nge-pipeline efanayo, futhi ifakwe phansi.

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

Waze anthropic-version futhi anthropic-beta Izinhlelo zokusebenza ze-Anthropic models zihlanganiswa ne-catalogue, ngakho-ke i-Claude Code ne-SDKs isebenza nezinhlelo ezisebenzayo:

  • Umbhalo owaziwa, njenge claude-sonnet-5 noma anthropic/claude-opus-5Ukusetyenziswa njengokuba.
  • Okunye isikhathi (-20260514), -latest, inguqulo tag ezifana -v1, i-bracketed tag njenge [1m] Ngiya anthropic/ noma anthropic. I-prefix ifakwe, futhi ama-dot kanye ne-dashes e-version zihlanganisa ngezinye izindlela (claude-haiku-4-5 Waze claude-haiku-4.5).
  • Uma lokho akufanele akufanele, isakhiwo (Opus, Sonnet noma Haiku) isetshenziselwa, uma inguqulo ye-catalogue kuyinto elifanayo noma elisha kunazo.
  • A name that matches nothing iyahamba 404 not_found_error.
isikhuntaUhloboUkubalwaUkucaciswa
modelUkuhlobisaYeboI-catalogue model id, noma i-Anthropic model name.
max_tokensNgena ngemvumeYeboI-Token ye-Token ye-Token ye-Writing
messagesWazeYebouser futhi assistant Ukusuka, nge text, image (i-base64 noma isilinganiso se-URL) tool_use futhi tool_result Ukuhlobisa thinking izibambo ezidlulayo ezivela ezivela futhi zithunyelwe.
systemString noma arrayNgaphandleI-System prompt, njenge-string noma ama-text blocks.
temperature
top_p
InomboloNgaphandleSampling ukulawula, lapho imodeli ukuthatha. top_k Kutholwe futhi wahlukaniswa.
stop_sequencesI-Array ye-StringsNgaphandleUmbhalo owodwa okugcina umbhalo. I-maximum ye-strings ye-4, i-maximum ye-256 characters ngamunye.
tools
tool_choice
Ukubuyekezwa, ObjectNgaphandleIzinsiza nge name, description futhi input_schemaU-A web_search I-Server Tool isebenza Ukubuyekezwa; Ezinye izixhobo ze-Anthropic ezikhongozwayo (i-bash, i-text editor, ukusetshenziswa kwekhompyutha) zihlanganiswa unsupported_tool. tool_choice Waze auto, any, tool noma none, futhi disable_parallel_tool_use.
thinkingUmphumelaNgaphandle{"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} noma {"type": "disabled"}. I-budget ukhethe izinga lokusebenza: ngaphansi kwe-2 048 ephakeme, kusukela ku-2 048 ephakeme, kusukela ku-8 192 ephakeme, kusukela ku-16 384 ephakeme. output_config.effortnoma eliphezulu
streamUkuhlobisaNgaphandleStream ku-Anthropic ye-event format.
metadataUmphumelaNgaphandleUkubuyekezwa futhi ukuncintisana.

Ukuphendula

{
  "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 Kutholwe futhi tool_use izibambo kanye a thinking block, okuyinto signature Yini emihle? stop_reason Yini end_turn, max_tokens, tool_use noma refusalUkusebenza ngokufanayo finish_reason Yini Ukusebenza kwe-Chat; stop_sequence Ukulungele null, ngisho lapho umlinganiselo we-stop wahlala impendulo. input_tokens Imininingwane ezintsha kuphela; Imininingwane e-cache iqukethe ezimbini ze-cache. I-cost iqukethe nymbot Object futhi X-Nymbot-Cost-Sats ikhaya

I-Streamed, iziganeko ze-Anthropic: message_start, content_block_start, ping, content_block_delta (text_delta, input_json_delta noma thinking_delta), content_block_stop, message_delta Nge-stop reason, ukusetshenziswa kanye ne- nymbot Cost Object, futhi message_stopU-A ping isithunyelwe ngalinye amaminye amaminye amaminye amaminye amaminye amaminye amaminye amaminye amaminye amaminye amaminye amaminye amaminye amaminye amaminye amaminye amaminye. tool_use block nge inguqulo yayo yonke ku-one input_json_delta.

I-Errors on this endpoint isebenzisa ifomu ye-Anthropic: {"type": "error", "error": {"type": "not_found_error", "message": "…"}}I-Balance ye-Short Is 402 billing_error, umphakeli overloaded 503 overloaded_error. Ukukhangisa ngemuva kokuphuma kuqala i-stream ifakwe njenge error Ukungena ngemvume

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

Ukubuyekezwa inani le-input tokens isicelo se-Messages ngeke isetshenziswe, ngakho-ke i-client ingathola ngaphambi kokuthumela. Kuyinto mahhala, kodwa kufuneka ikhoyili.

POST https://nymbot.ai/api/v1/messages/count_tokens — Ufuna API key. Mahhala.

I-body is the same as for ImibuzoNgaphandle max_tokens; igama le model kufuneka ukuguqulwa. Ukubala kuyinto ukuguqulwa: ama-characters ye-system prompt, ama-messages, i-tool calls kanye ne-tool definitions ezahlukile nge-four, plus 1,600 ngalinye imifanekiso. It is not the provider's own tokenizer, ngakho-ke ukuguqulwa ngokwenene kungahlukile. A key that has reached its cap can still use it.

Ukuphendula

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

Ukuhlolwa Model

Konke imodeli kanye nomkhiqizi i-API ibhalisele, ne-cost. I-list ibhaliswe kusuka ku-catalogue elifanayo njenge-picker ye-app, ngakho-ke kuyinto ukuthi i-server iyahambisana.

GET https://nymbot.ai/api/v1/models — no key needed. Imininingwane ezingu-5.

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

isikhuntaUhloboUkubalwaUkucaciswa
typeisikhunta (Query)Ngaphandlechat (Ukuhlukaniswa okuqhubekayo) image, video, audio, embedding noma all. Abaningi kungatholakala, njenge image,video.

Izindleko zibonisa, ne-fee ne-margin eyenziwe, e-dollars kanye ne-sats ngentengo se-Bitcoin. balance Ukubonisa ukuthi isilinganiso imodeli uthatha. nymbot_key Imininingwane ye-imeyili ye-model e-app. created is always 0, njengoba i-catalogue ayifake lapho isampula ifakwe. A model without published token rates is priced per_request esikhundleni salokho.

nymbot/auto is always first, izindleko njengoba variableNge a routes isifinyezo enikeza izinga le-route esisodwa. It isifinyezo ukubukeka kanye nokuxhumana, kodwa akuyona izixhobo.

GET /api/v1/models/{id} Kutholwe ama-imeyili kanye nama-aliases efanayo njenge-request, futhi i-returns inguqulo ye-model eyenza.

Ukuphendula

{
  "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 izinhlobo:

  • Umbala Izincazelo ze capabilities (accepts_image_url, requires_image_url, edit) futhi intengo per_generation.
  • Ividiyo Izincazelo ze max_duration_seconds futhi resolutions, futhi intengo per_second Ukuze yonke isixazululo
  • ekhaya Izincazelo ze audio_type speech noma transcriptionImininingwane per_1k_chars noma per_minute.
  • Ukuhlobisa Izincazelo ze dimensions, context_length, max_inputs futhi intengo ngamilioni tokens input.

Imikhiqizo "estimated": true Imininingwane ye-app ye-generator enesixhumanisi enesixhumanisi. Imininingwane enesixhumanisi type Waze 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);