Base sa kahibalo Mga Developer
Chat, mga reaksiyon ug mensahe
Ang tulo ka mga paraan sa pagtan-aw sa usa ka modelo, sa tulo ka mga format ang mga kliyente karon nag-ingon, ang tanan moadto sa sama nga mga modelo ug gibaligya sa sama nga paagi.
Kini nga panid gihubad sa makina alang sa kasayon. Ang English nga orihinal mao ang bersyon nga magamit.
Ang katapusan sa
Ang OpenAI chat format, ug ang usa sa halos tanan nga tool suporta. Magpadala sa konversasyon hangtod karon ug sa pagpadala sa bag-ong mensahe.
POST https://nymbot.ai/api/v1/chat/completions Gikan sa usa ka API key.
Ang model ug messages Ang usa ka sampling parameter nga ang pagpili sa modelo dili moabut mao ang gikuha uban pa sa usa ka bug, sa diha nga ang usa ka request body nagtrabaho sa tibuok mga modelo. supported_parametersAng mga butang nga gisugyot ug dili gisugyot mao ang mga butang nga ang modelo dili makahimo: mga imahe alang sa usa ka modelo nga dili makakita, mga instrumento alang sa usa ka modelo nga dili makakita.
| Ang | Ang | Naa kay | Ang opisina |
|---|---|---|---|
model | Ang | Oo | nymbot/auto (Ang auto) alang sa pag-routing sa Nymbot sa standard balance, o sa usa ka catalog model id sama sa anthropic/claude-sonnet-5 sa Pro balance. Ang mga short names ug alias sa app mao ang makahimo usab. Ang. |
messages | Ang | Oo | Ang ngalan, mga papel system, developer (Pahimutang kini sa usa ka sistema) user, assistant ug toolAng content mao ang usa ka string o listahan sa mga text ug image_url mga bahin; mga imahe lamang sa mga mensahe sa user. input_audio Alang sa ubang mga dapit sa mao gihapon nga negosyo. |
stream | Ang | maayo | Ipahamtang ang ngalan sa mga tawo. tingali Tungod niini. |
stream_options | Ang objekto | maayo | {"include_usage": true} Ipahamtang ang usa ka katapusan sa mga sumbanan ug mga gastos. |
max_tokensmax_completion_tokens | Ang | maayo | Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang Limousine Limousine. |
temperaturetop_p | Ang numero | maayo | Ang kontrol sa sample: temperature Ang 0 ngadto sa 2, top_p Ang 0 ngadto sa 1. |
stop | Ang mga array | maayo | Teksto nga nagpatin-aw: usa ka string o sa maximum 4 strings, sa maximum 256 characters. nymbot/auto. |
seed | Ang | maayo | Alang sa repetitive sampling, diin ang modelo suportahan niini. |
presence_penaltyfrequency_penalty | Ang numero | maayo | Ang mga kontrol sa repetition, matag gikan sa -2 ngadto sa 2. |
response_format | Ang objekto | maayo | {"type": "json_object"} Ang {"type": "json_schema", "json_schema": {…}}, diin ang modelo suportahan niini. Hindi gigamit sa nymbot/auto. |
toolstool_choiceparallel_tool_calls | array, string o object, boolean | maayo | Ang ngalan niini mao ang: See Ang teleponoAng web_search Ang tinuod nga Ang web searchSa labing kaayo nga 128 mga tool ug 512 KB sa mga definisyon, nindot sa labing maayo nga 64 mga layer nga dugay; sa dugang mao ang usa ka 400. |
reasoning_effortreasoning | Ang objekto | maayo | "minimal", "low", "medium" Ang "high"Ang {"effort": "high"}. "none" Ang {"enabled": false} Gikan sa tanan. tingali Ang. |
plugins | Ang | maayo | [{"id": "web", "max_results": 5}] Unsaon sa pag-uswag sa usa ka website sa pag-uswag ug pag-uswag sa usa ka website sa pag-uswag ug pag-uswag sa usa ka website. Up to 10 results. |
n | Ang | maayo | Ang ubang mga dapit sa palibot sa 400. |
logit_biasusermetadata | Ang mga butang, object, string | maayo | Naa kay pasumbingay, wala na magpalid. logit_bias mapa sa maximum 300 token ids ngadto sa mga numero gikan sa -100 ngadto sa 100; user Adunay 256 ka molupyo. metadata Kini mao ang usa ka labing taas nga 16 string values, mga keys ngadto sa 64 characters ug mga values hangtod sa 512. |
Ang solusyon mao ang normal. chat.completionAng gasto sa usage.cost
(Sa usa ka tuig) ug sa nymbot Ang objekto model Ang modelo mao ang resolved model id, sa diha nga ang usa ka short name magpatalinghog sama sa full one. message.reasoning_contentIpahamtang ang bahin sa responsiya.
Tungod niini
{
"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 Kini gibuhat gikan sa unsa ang miadto, tungod kay ang mga provider nag-report sa lainlaing: tool_calls Kapin ang mga modelo sa mga instrumento, length Hapit nalukop sa kaumahan ang palibot sa Zapyškis.[5] content_filter Hapit nalukop sa kaumahan ang palibot sa Zapyškis.[5] stop
Ang usage.completion_tokens_details.reasoning_tokens Kini mao ang 0: ang mga token sa pag-uswag nga gitawag, ug gitawag, sa completion_tokens.
| Ang status | Ang |
|---|---|
400 | maayo model Ang messages (missing_required_parameter(Ang Pinadayag :) Apan gilupig sila; ug wala nay dapit pa alang kanila didto sa langit.unsupported_contentAdunay 20 ka molupyo.[1]too_many_imagesHapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]invalid_valueHapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]invalid_image_urlHapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]unsupported_tool); n Adunay 1 ka molupyo. a. :thinking Maayo gani kay dili na makadayeg (model_not_foundHapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]upstream_rejected). |
402 | Ang balanse nga gidaghanon sa modelo dili makabaton sa hold. |
403 | Hapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]key_limit_reachedAng ubos max_tokens Unsa ang cap? |
404 | Maayo tanan ang ngalan (model_not_found). |
429 | Hapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]upstream_rate_limited). |
502, 503 | Unsay iyang gitudlo kanila bahin sa pag-abiabi?upstream_errorHapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]upstream_overloadedAng Retry-AfterWala na gayud ang pag-atubangan isip ang provider gibutang alang sa pag-atubangan. |
Ang mga status codes sa matag endpoint shares anaa sa Ang error.
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);
Ang tanang
Ang "stream": true Ang pag-usab mao ang pag-usab sa usa ka modelo, ug ang usa ka modelo mao ang pag-usab sa usa ka modelo. chat.completion.chunk Ang data: Ang linya, ug ang stream ends sa data: [DONE]Ang pag-ayo sa pag-ayo sa
delta.reasoning_contentAng solusyon sa delta.content.
Stream ang bisan unsa nga butang nga mahitungod sa mahitungod sa 100 segundo, sama sa usa ka dugang nga pag-usab, usa ka dakong pag-usab
max_tokens o usa ka model sa pag-argument. Ang usa ka request nga dili nag-streamed dili magpadala hangtod sa pag-usab, ug ang network sa taliwala sa imong ug Nymbot mahimo sa pag-usab sa usa ka idulo nga koneksyon sulod sa mahitungod sa 100 ka segundo; ang modelo usab nag-usab ug ang mga butang sa iyang gitawag mao ang pag-charge, apan ang pag-usab gitawag. Ang usa ka stream nag-usab keep-alives, aron kini magpabilin sa ingon nga ang modelo nag-usab.
Ang
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]
- Ang mga butang nga nagmula sa
:Ang mga komento sa SSE nagpadala sulod sa 15 segundo sa panahon sa pag-usab sa modelo. - Magpatingin sa
"stream_options": {"include_usage": true}Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa angchoicesAng pag-abot, ang gasto ug angnymbotAng objekto - Ang pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan sa pag-atubangan
- Ang usa ka bug-os hangtud sa unang bahin, sama sa
401Ang402, magpatalinghog sama sa normal nga JSON uban sa iyang status code, wala sa usa ka stream.data: {"error": {…}}Ang tanang, ug ang tanang wala[DONE]. - Ang mga requests uban sa mga tool, ug mga modelo sa OpenAI's Responses transport, dili stream gikan sa provider.
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);
}
Ang telepono
Ang bahin sa function sa tools ug ang modelo makahimo sa usa ka tawo nga gitawag sa pag-atubangan sa pag-atubangan. I-execute ang function, add ang resulta sa tool Ang mensahe nga sama sa
tool_call_idAng Nymbot wala pa moadto sa imong mga bahin; kini nagpadala sa modelo nga mga panginahanglan ngadto kanimo.
tool_choice Ang "auto", "none",
"required" Ang {"type": "function", "function": {"name": "…"}}Hapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]capabilities.toolsAng mga instrumento maoy rejected. 400 unsupported_tool Ang nymbot/auto ug sa pipila ka mga modelo sa catalog nga moadto sa OpenAI's Responses transport, nga ang Nymbot dili makahimo sa pagpadala sa mga tool.
Ang "stream": true, usa ka request uban sa mga tool moabut sa usa ka bahin ug unya gibalhin ingon sa usa ka normal nga chunk sequence: ang papel, usa ka chunk nga naghubad sa matag tool call uban sa iyang index, id, ngalan ug arguments, ug ang finish chunk.
Ang responsiyon, sa
"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);
Ang mga imahe anaa sa request
Ang mga modelo sa capabilities.vision Unsa ang mga imahe? add a image_url
sa usa ka mensahe sa usa ka user, uban sa usa ka publikong https:// Ang linya o
data:image/…;base64, Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang URL: Up to 20 pictures per request. SVG pictures are rejected, ug ang link mao ang labaw pa kay sa 4,096 characters o usa sa usa ka user name o password sa niini (400 invalid_image_urlAng opisyal detail Ang
auto, low Ang high.
Ang nymbot/auto, usa ka request uban sa usa ka imahe sa niini nga gidisenyo ngadto sa usa ka standard model nga makakita. capabilities.vision Gikan sa mga pictures sa
400 unsupported_contentAng mga imahe lamang makahimo sa mga mensahe sa user. Ang usa ka link kinahanglan nga moapil sa usa ka publikong host; ang Nymbot nagpadala sa mga imahe ngadto sa mga provider sa modelo ug dili moabut niini.
Ang usa ka imahe gitawag ingon sa mga input tokens nga gitawag sa provider alang niini, sama sa ubang mga panginahanglan.
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);
Ang
Ang mga modelo sa capabilities.reasoning Unsay iyang gitudlo kanila bahin sa pag-abiabi?—Luc. reasoning_effort ("minimal", "low",
"medium" Ang "high"Ang "reasoning": {"effort": "high"}Unsa ang add :thinking sa modelo nga ngalan, nga nagpasabot sa usa ka taas nga pag-usab. Sa usa ka modelo sa wala sa pag-usab ang setting mao ang ignored. nymbot/auto, :thinking Ipahamtang ang pag-uswag ngadto sa standard reasoning route.
Sa Anthropic mga modelo ang pag-uswag makahimo sa usa ka bug-os sa paghimo sa mga 1,000, 2,000, 8,000 o 16,000 tokens, dili labaw pa kay sa max_tokens Unsay iyang gitudlo kanila bahin sa pag-usab, ug sa diha nga
tool_choice Gikan sa usa ka tool, ug sa dihang ang request nagpatin-aw sa usa ka tool loop (sa iyang katapusan nga mensahe mao ang usa ka tool result), kay ang Anthropic kinahanglan nga ang tinuod nga signature sa paghimo sa pagpatin-aw.
Ang pag-uswag magpatalinghog sa message.reasoning_contentAng
delta.reasoning_content sa panahon sa streaming, wala pa moabot ngadto sa pag-usab. Reasoning mao ang output ug mao ang pag-charge, sa completion_tokensAng pipila ka mga provider wala mag-return ang teksto sa pag-argument, ug kini mao ang bug-os.
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);
Ang ilang modelo
Ang usa ka suffix sa ngalan sa modelo nagdugang sa paagi sa pagtrabaho sa request, bisan pa sa usa ka lain-laing field. anthropic/claude-sonnet-5:online.
| Ang | Ang epekto |
|---|---|
:online | Ipahamtang ang web, sama sa plugins: [{"id": "web"}]Ang Ang web search. |
:thinking | Ang tanan nga pagtuon; sa nymbot/autoUnsay iyang gitudlo kanila bahin sa pag-usab, ug sa pag-usab, 400 model_not_found Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang “no endpoints found”. |
:nitro, :floor, :exacto, :extended | Ang matag modelo sa Catalogue adunay usa ka ruta, aron dili mahimo ang mas mabilis, mas barato o mas labaw nga usa ka sa pagpilit; ang mga suffix mao ang magapanag-iya aron ang mga ngalan sa modelo nga kopya gikan sa ubang mga serbisyo usab magtrabaho. |
Ang tibuok ngalan mao ang pagsugod sa unang, aron usa ka modelo nga id sa mga tawo nga naglakip sa usa ka kolon ug wala pa niini, ang mga suffix mao ang gikuha gikan sa katapusan sa usa ka oras hangtod sa usa ka modelo matuod. Ang usa ka modelo nga ngalan mahimong sa maximum sa 200 ka karakter nga labaw pa sa maximum sa 4 suffixes; ang usa ka mas labaw pa nga usa mao ang gikuha sa 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);
Ang web search
Any chat model can answer from the live web. Nymbot searches for the last user message (sa iyang unang 2,000 characters), motan-aw ang labing maayo nga mga panid ug naghatag kanila sa modelo uban sa mga pangutana, nga gitawag nga external content ang modelo dili motan-aw sa mga instruksyon gikan sa.
- Maayo tanan ang:
"plugins": [{"id": "web", "max_results": 5}]Ang A:onlineIpahamtang ang modelo. - Unsay iyang gitudlo kanila bahin sa pag-abiabi:
"tools": [{"type": "web_search", "parameters": {"max_results": 5}}]Naa kay pasumbingayweb_search_previewAngopenrouter:web_searchAng Nymbot searches lamang sa dihang ang pangutana kinahanglan nga kini nga impormasyon, sama sa test nga gigamit ang app.
max_results mao ang 5 sa default ug sa labing taas nga 10. Ang mga pulong mag-usab sa
nymbot.web_search.sourcesAng tanan nga a title, snippet ug
urlNaa kay url_citation Ipahamtang ang mensahe.
Ang mga panid nga nabasa mao ang input tokens usab, aron ang usa ka solusyon gikan sa web mahitungod sa labaw pa kay sa sama nga pangutana gihubad cold, sa mga paagi sa pipila ka beses mas.
Ang responsiyon, sa
"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);
Bukid Peanut Fire.
Ang mas bag-ong format sa OpenAI, nga gigamit sa OpenAI Agents SDK ug sa Codex. Kini moadto sa sama nga mga modelo, billing ug mga bahin nga Chat Completions.
POST https://nymbot.ai/api/v1/responses Gikan sa usa ka API key.
| Ang | Ang | Naa kay | Ang opisina |
|---|---|---|---|
model | Ang | Oo | Ang Ang katapusan saAng ilang mga suffixes anaa. |
input | Ang mga array | Oo | Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang Messages (Roles). user, assistant, system, developerAng input_text, input_image ug output_text Ang mga bahin, ug function_call ug function_call_output Ang mga instrumento. input_image Naa kay image_url link o data URL, wala sa usa ka file id. reasoning ug web_search_call Ang mga butang gibuhat; item_reference Naa kay negosyo. |
instructions | Ang | maayo | Ang instruksyon sa sistema. |
max_output_tokens | Ang | maayo | Alang sa ubang mga dapit sa mao gihapon nga gitukod. |
temperaturetop_p | Ang numero | maayo | Sampling mga controls, diin ang modelo makahimo niini. |
toolstool_choiceparallel_tool_calls | array, string o object, boolean | maayo | Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang ({"type": "function", "name": …, "parameters": …}Ang web_search Ang web_search_preview Ang tinuod nga Ang web search Unsay iyang gitudlo kanila bahin sa pag-usab sa mga instrumento? |
reasoning | Ang objekto | maayo | {"effort": "minimal" | "low" | "medium" | "high"}. xhigh ug max Ang high; none Ipahamtang ang |
text.formatresponse_format | Ang objekto | maayo | Structured output, sama sa usa ka JSON scheme o json_object. |
metadata | Ang objekto | maayo | Ang kinatibuk-ang mga values sa 16 strings, ang mga key mao ang sa 64 ka karakter ug ang mga values mao ang sa 512. |
stream | Ang | maayo | Ipahamtang ang mga butang nga gipakita sa ubos. |
store | Ang | maayo | Maayo kaayo ang mga butang, ug ang response mao ang "store": false. |
previous_response_idconversationbackground | Ang tinuod nga object, boolean. | maayo | Maayo tanan ang suporta: 400 unsupported_parameterAng mga reaksiyon dili makahimo, aron sa pagpadala sa tibuok konversasyon sa input Ang tanan. |
Tungod niini
{
"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 }
}
Ang usa ka tool request nagpakita sa output Ang function_call Ang bahin sa
call_id, name ug argumentsIpahamtang ang resulta sa a
function_call_output Ang bahin sa sama call_idPagtuon, sa diha nga ang modelo nagpatin-aw niini, kini mao ang usa ka reasoning Ang bahin sa reasoning_text Ipahamtang ang listahan sa unang. status Ang incomplete Unsa ang responsiya sa
max_output_tokens Dili kaha kay sa laing kinabuhi, nawad-an ka Ug nabiyaan.
incomplete_details.reason 2 Ang max_output_tokens Ang
content_filterAng pag-uswag usab mitubag sa mga setting sa request (temperatura, tool, tool choice ug uban pa) sama sa OpenAI, ug mitubag ang nymbot Ang objekto maayo.
Ang matag event mao ang event: Ang linya A data: Ang linya sa a
sequence_numberIpahamtang ang orden: response.created,
response.in_progress, response.output_item.added,
response.content_part.addedAng ilang mga numero response.output_text.delta,
response.output_text.done, response.content_part.done,
response.output_item.doneAng siste response.completed Ang pag-uswag ug pag-uswag mao ang pag-uswag sa pag-uswag ug pag-uswag sa pag-uswag ug pag-uswag. response.incomplete sa pag-uswag, ug sa pag-uswag sa pag-uswag sa pag-uswag gikan sa response.failedIpahamtang ang mga butang alang sa response.reasoning_text.delta ug .doneAng tool calls nagpadayon sa mensahe, ang matag usa ingon sa usa ka item uban sa response.function_call_arguments.delta
ug .done.
| Ang status | Ang |
|---|---|
400 | maayo model Ang input; previous_response_id, conversation, background Unsa ang item_reference (unsupported_parameter); usa ka non-supported tool o content type. |
402, 403, 404, 429, 502, 503 | Unsa ang katapusan sa chat? |
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);
Ang mensahe
Ang format sa Anthropic, alang sa Anthropic SDKs ug Claude Code. Kini nagtrabaho uban sa tanan nga modelo sa catalog, dili lamang sa Claude: ang requests translates, run sa sama nga pipeline, ug translated back.
POST https://nymbot.ai/api/v1/messages — kinahanglan ang usa ka API key, sama sa x-api-key Ang Authorization: Bearer.
Ang anthropic-version ug anthropic-beta Ang mga ngalan sa modelo sa Anthropic gipakita sa catalog, aron ang Claude Code ug ang mga SDK nagtrabaho uban sa mga ngalan nga kini naggamit:
- Ang ngalan nga catalog mao ang, sama sa
claude-sonnet-5Anganthropic/claude-opus-5Naa kay pasumbingay! - Ang ilang datos anaa sa (
-20260514),-latestAng ilang mga versiyon, sama sa-v1Alang sa ubang mga dapit sa mao gihapon nga[1m]Anganthropic/Anganthropic.Hapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]claude-haiku-4-5Angclaude-haiku-4.5). - Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang Family (Opus, Sonnet o Haiku), nga mao ang usa ka version sa catalog.
- Ang usa ka ngalan nga nagpatin-aw sa bisan unsa nga
404not_found_error.
| Ang | Ang | Naa kay | Ang opisina |
|---|---|---|---|
model | Ang | Oo | Ang usa ka catalog model id, o ang usa ka anthropic model name. |
max_tokens | Ang | Oo | Alang sa ubang mga dapit sa mao gihapon nga gitukod. |
messages | Ang | Oo | user ug assistant Ipahamtang ang, text, image (base64 o ang orihinal nga URL), tool_use ug tool_result Ang bloke. thinking Ang mga bloke gikan sa tibuok mga turns nakadungog ug gikuha. |
system | Ang mga array | maayo | System prompt, sama sa usa ka string o text blocks. |
temperaturetop_p | Ang numero | maayo | Sampling mga controls, diin ang modelo makahimo niini. top_k Naa kay pasumbingay. |
stop_sequences | Ang mga strings | maayo | Ang teksto nga nagpatin-aw. Sa maximum sa 4 strings, sa maximum sa 256 characters. |
toolstool_choice | Ang objekto | maayo | Ang mga instrumento name, description ug input_schemaAng web_search Ang server tool gibuhat sa Ang web searchAng ubang mga built-in nga mga tool sa Anthropic (bash, text editor, computer use) mao ang gikuha sa unsupported_tool. tool_choice Ang auto, any, tool Ang noneAng disable_parallel_tool_use. |
thinking | Ang objekto | maayo | {"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} Ang {"type": "disabled"}Ang bug-os gibalhin sa usa ka level sa effort: ubos pa kay sa 2,048 minimum, gikan sa 2,048 low, gikan sa 8,192 medium, gikan sa 16,384 high. output_config.effortNaa kay high. |
stream | Ang | maayo | Ipakita niini ang mga bahin sa Anthropic. |
metadata | Ang objekto | maayo | Naa kay pasumbingay ug ignorado. |
Tungod niini
{
"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 Naa kay tool_use Ang mga bloke o thinking
Ang bloke mao ang signature Naa kay tuyo. stop_reason Ang
end_turn, max_tokens, tool_use Ang refusalAdunay nangutana, sama sa finish_reason Ang
Ang katapusan sa; stop_sequence Ang
null, bisan sa diha nga usa ka stop sequence ended ang pag-usab. input_tokens Kini mao ang usa ka bahin sa pag-uswag ug pag-uswag sa usa ka bahin sa pag-uswag.
nymbot Ang object ug ang X-Nymbot-Cost-Sats Ang header
Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang Anthropic: message_start,
content_block_start, ping, content_block_delta
(text_delta, input_json_delta Ang thinking_delta),
content_block_stop, message_delta Alang sa ubang mga dapit sa mao gihapon nga ngalan, usa ka nymbot Ang objekto, ug message_stopAng ping Ang mga telepono sa tool nagpadala sa mga teksto, ang matag usa ingon sa usa ka
tool_use Ang tanan nga input sa usa ka input_json_delta.
Ang mga bug sa niini nga endpoint gamiton ang format sa Anthropic:
{"type": "error", "error": {"type": "not_found_error", "message": "…"}}Ang balanse mao ang 402 billing_errorAng usa ka overloaded provider.
503 overloaded_errorAng usa ka bug-os sa diha nga ang stream nagsimula magpadala ingon sa usa ka error Ang event.
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);
Ang tanang token
Ang usa ka estimate sa unsa ang mga input tokens sa usa ka Messages request sa paggamit, aron ang usa ka client mahimo sa pag-check sa unom ka adlaw sa pagpadala.
POST https://nymbot.ai/api/v1/messages/count_tokens — kinahanglan nga usa ka API key. Free.
Ang lawas mao ang sama sa Ang mensaheWala gihapon max_tokensAng count mao ang usa ka estimate: ang mga character sa system prompt, mensahe, tool calls ug tool definitions divided sa tibuok, plus 1,600 alang sa matag imahe. Kini mao ang dili sa provider's own tokenizer, sa diha nga ang real count mahimong diferyado.
Tungod niini
{ "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);
Ang mga modelo
Ang listahan gibuhat gikan sa sama nga live catalog sama sa app nga picker, aron kini mao ang sa pag-alagad sa server.
GET https://nymbot.ai/api/v1/models — wala kinahanglan nga key. Gikan sa lima ka minuto.
GET /api/v1/models/{id} Gikan sa usa ka entry.
| Ang | Ang | Naa kay | Ang opisina |
|---|---|---|---|
type | Tungod niini, ang | maayo | chat Ang hari kay sa inyo. image, video, audio, embedding Ang allAng ilang mga tawo, sama sa image,video. |
Ang mga presyo mao ang imong pagbayad, uban sa fee ug margin karon sa, sa dolyares ug sa sats sa karon nga presyo sa Bitcoin. balance Ipahamtang ang balanse sa modelo sa gasto.
nymbot_key mao ang short name sa modelo sa app. created Ang usa ka modelo nga wala gikuha sa mga rate sa token mao ang priced. per_request hinuon.
nymbot/auto Ipahamtang ang hinungdanon, ang variableAng A
routes Ang listahan nagpakita sa mga rate sa matag standard nga ruta. Kini naglista sa vision ug pag-argument, apan dili sa mga tool.
GET /api/v1/models/{id} Nagpatin-aw ang sama sa mga ngalan ug aliases ingon sa usa ka request, ug nagpatin-aw ang entry alang sa modelo nga sila pag-usab.
Tungod niini
{
"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"
}
]
}
Ang ubang mga tip:
- Ang imahe Ang mga entries
capabilities(accepts_image_url,requires_image_url,editAng usa ka presyoper_generation. - Ang video Ang mga entries
max_duration_secondsugresolutionsAng usa ka presyoper_secondIpahamtang ang mga resolusyon. - Ang audio Ang mga entries
audio_typespeechAngtranscriptionAng presyoper_1k_charsAngper_minute. - Ang Ang mga entries
dimensions,context_length,max_inputsAng usa ka milyon sa mga input token.
Ang mga merkado "estimated": true mao ang estimate sa app alang sa usa ka generator nga ang presyo nga wala gibuhat. type Ang 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);