Laktaw sa sulod
Unsa ang Nymbot?

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.

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.

AngAngNaa kayAng opisina
modelAngOonymbot/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.
messagesAngOoAng 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.
streamAngmaayoIpahamtang ang ngalan sa mga tawo. tingali Tungod niini.
stream_optionsAng objektomaayo{"include_usage": true} Ipahamtang ang usa ka katapusan sa mga sumbanan ug mga gastos.
max_tokens
max_completion_tokens
AngmaayoAlang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang Limousine Limousine.
temperature
top_p
Ang numeromaayoAng kontrol sa sample: temperature Ang 0 ngadto sa 2, top_p Ang 0 ngadto sa 1.
stopAng mga arraymaayoTeksto nga nagpatin-aw: usa ka string o sa maximum 4 strings, sa maximum 256 characters. nymbot/auto.
seedAngmaayoAlang sa repetitive sampling, diin ang modelo suportahan niini.
presence_penalty
frequency_penalty
Ang numeromaayoAng mga kontrol sa repetition, matag gikan sa -2 ngadto sa 2.
response_formatAng objektomaayo{"type": "json_object"} Ang {"type": "json_schema", "json_schema": {…}}, diin ang modelo suportahan niini. Hindi gigamit sa nymbot/auto.
tools
tool_choice
parallel_tool_calls
array, string o object, booleanmaayoAng 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_effort
reasoning
Ang objektomaayo"minimal", "low", "medium" Ang "high"Ang {"effort": "high"}. "none" Ang {"enabled": false} Gikan sa tanan. tingali Ang.
pluginsAngmaayo[{"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.
nAngmaayoAng ubang mga dapit sa palibot sa 400.
logit_bias
user
metadata
Ang mga butang, object, stringmaayoNaa 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 statusAng
400maayo 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).
402Ang balanse nga gidaghanon sa modelo dili makabaton sa hold.
403Hapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]key_limit_reachedAng ubos max_tokens Unsa ang cap?
404Maayo tanan ang ngalan (model_not_found).
429Hapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]upstream_rate_limited).
502, 503Unsay 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 ang choicesAng pag-abot, ang gasto ug ang nymbot Ang 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 401 Ang 402, 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.

AngAng epekto
:onlineIpahamtang ang web, sama sa plugins: [{"id": "web"}]Ang Ang web search.
:thinkingAng 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, :extendedAng 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);

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 :online Ipahamtang ang modelo.
  • Unsay iyang gitudlo kanila bahin sa pag-abiabi: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}]Naa kay pasumbingay web_search_preview Ang openrouter: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.

AngAngNaa kayAng opisina
modelAngOoAng Ang katapusan saAng ilang mga suffixes anaa.
inputAng mga arrayOoAlang 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.
instructionsAngmaayoAng instruksyon sa sistema.
max_output_tokensAngmaayoAlang sa ubang mga dapit sa mao gihapon nga gitukod.
temperature
top_p
Ang numeromaayoSampling mga controls, diin ang modelo makahimo niini.
tools
tool_choice
parallel_tool_calls
array, string o object, booleanmaayoAlang 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?
reasoningAng objektomaayo{"effort": "minimal" | "low" | "medium" | "high"}. xhigh ug max Ang high; none Ipahamtang ang
text.format
response_format
Ang objektomaayoStructured output, sama sa usa ka JSON scheme o json_object.
metadataAng objektomaayoAng kinatibuk-ang mga values sa 16 strings, ang mga key mao ang sa 64 ka karakter ug ang mga values mao ang sa 512.
streamAngmaayoIpahamtang ang mga butang nga gipakita sa ubos.
storeAngmaayoMaayo kaayo ang mga butang, ug ang response mao ang "store": false.
previous_response_id
conversation
background
Ang tinuod nga object, boolean.maayoMaayo 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 statusAng
400maayo 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, 503Unsa 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-5 Ang anthropic/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] Ang anthropic/ Ang anthropic. Hapit nalukop sa kaumahan ang palibot sa Zapyškis.[5]claude-haiku-4-5 Ang claude-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 404 not_found_error.
AngAngNaa kayAng opisina
modelAngOoAng usa ka catalog model id, o ang usa ka anthropic model name.
max_tokensAngOoAlang sa ubang mga dapit sa mao gihapon nga gitukod.
messagesAngOouser 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.
systemAng mga arraymaayoSystem prompt, sama sa usa ka string o text blocks.
temperature
top_p
Ang numeromaayoSampling mga controls, diin ang modelo makahimo niini. top_k Naa kay pasumbingay.
stop_sequencesAng mga stringsmaayoAng teksto nga nagpatin-aw. Sa maximum sa 4 strings, sa maximum sa 256 characters.
tools
tool_choice
Ang objektomaayoAng 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.
thinkingAng objektomaayo{"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.
streamAngmaayoIpakita niini ang mga bahin sa Anthropic.
metadataAng objektomaayoNaa 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.

AngAngNaa kayAng opisina
typeTungod niini, angmaayochat 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 presyo per_generation.
  • Ang video Ang mga entries max_duration_seconds ug resolutionsAng usa ka presyo per_second Ipahamtang ang mga resolusyon.
  • Ang audio Ang mga entries audio_type speech Ang transcriptionAng presyo per_1k_chars Ang per_minute.
  • Ang Ang mga entries dimensions, context_length, max_inputs Ang 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);