Skip ad content
Reditus ad Nymbot

Scientia basis Developers

Colloquia, Responsa et Nuntii

Tres modi quaestionis rationis ad exemplar, in tribus formatis quos clientes iam loquuntur, omnes in eundem modum operantes et eodem modo computandi.

Completiō Conloquiōrum

Formatum colloquii OpenAI, et illud quod fere omnia instrumenta adiuvant. Mitte colloquium usque ad hinc et recipere nuntium sequentem.

POST https://nymbot.ai/api/v1/chat/completions — clavis API indiget.

Solum model et messages requiruntur. Parametrum exempli quod modulus electus non accipit sine errore amittitur, itaque unum corpus petitionis per modos operatur. Index modorum singulatem moduli dat supported_parametersQuod potius recusa est quam deiectum, est aliquid id quod exemplar omnino non potest facere: imagines pro exemplari quod non videt, instrumenta pro exemplari quod ea vocare non potest.

CampusTypusNecessariumDescriptio
modelfilumItanymbot/auto (vel auto) pro itinere Nymbot in aequilibrio normativo, vel pro indice numeri identificationis moduli sicut anthropic/claude-sonnet-5 in saldo Pro. Nomina breviora et alias applicationis etiam accipiuntur. In 'a' terminari possunt. affixus.
messagesseriesItaColloquium. Personae system, developer (ut systema tractum), user, assistant et tool. Content est textus vel series [] text et image_url partes; imagines tantum in nuntiis utentium. input_audio et partes datorum recusantur.
streambooleanusNonMitte responsum sicut scriptum est. Vide fluxus.
stream_optionsobiectumNon{"include_usage": true} addit partem ultimam cum numeris verborum et pretio.
max_tokens
max_completion_tokens
integerNonMaxima verba ad scribenda. Si maior est, ad maximum machinae reducitur. Etiam indicat quanto ex saldo tuo detrahatur, itaque numerus minor minus creditum ad incipendum requirit.
temperature
top_p
numerusNonModi observationis: temperature ab 0 ad 2, top_p a 0 ad 1.
stopseries an series?NonTextus qui responsio finitur: series vel praesertim quattuor series, unaquaeque maximum CCLVI litterarum. Non ab utente usuratum nymbot/auto.
seedintegerNonPro aestu samplingi repetibilis, ubi exemplar id sustinet.
presence_penalty
frequency_penalty
numerusNonModuli repetitionis, unumquodque ab -2 ad 2.
response_formatobiectumNon{"type": "json_object"} aut {"type": "json_schema", "json_schema": {…}}, ubi exemplar id sustinet. Non ab [] utitur nymbot/auto.
tools
tool_choice
parallel_tool_calls
series, text vel obiectum, verumvelfalsumNonVocatio functionis. Vide invocationes instrumentorum. A web_search instrumentum incipit investigatio interretialisSumma infra centum viginti octo instrumenta et quinque centum duodecim kilobyta definitionum, in sexaginta quattuor gradibus penitus implicita; plus est 400.
reasoning_effort
reasoning
series, resNon"minimal", "low", "medium" aut "high", aut {"effort": "high"}. "none" aut {"enabled": false} extinguit. Vide ratio.
pluginsseriesNon[{"id": "web", "max_results": 5}] Semper primum rete quaerit. Usque ad decem eventus.
nintegerNonSolum 1. Omnia alia redde 400.
logit_bias
user
metadata
res, textus, resNonAcceptum et non transmissum. logit_bias summos numerorum identificatorum 300 ad numeros ab -100 usque ad 100 mappat; user non amplius quam ducenti quinquaginta sex characteres est; metadata maxime sedecim valores stringulorum continet, claves usque ad sexaginta quattuor litteras et valores usque ad quingenti quinquaginta.

Responsum est vulgare chat.completion, cum pretio in usage.cost (in dollariis) et in nymbot res. model est identificatio moduli resoluta, ita ut nomen breve ut nomen plenum reddatur. Si modulus antequam responderet ratiocinatus est, ratiocinatio eius inest message.reasoning_content, a responsione separatum.

Responsio

{
  "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 ex computatur ex eo quod rediit, quia praebentes id aliter nuntiant: tool_calls cum exemplar instrumenta rogavit, length cum responsum omnia elementa permissa consumpsit (aut exemplar omnia ratione consumpsit et non responsum scripsit), content_filter cum praebitor recusasset, et stop aliter. usage.completion_tokens_details.reasoning_tokens semper est 0: occultum signa rationis numerantur, et imponuntur, in completion_tokens.

StatusQuando
400Non model aut messages (missing_required_parameter); pars auditus vel documenti, vel imagines pro modello quod eas videre non potest (unsupported_content); plus quam viginti imagines (too_many_images); parameter samplingis typi errati vel extra fines  (invalid_value); nexus imagines qui non publicus est (invalid_image_url); instrumenta in exemplari quod ea vocare non potest (unsupported_tool); n praeter 1; a :thinking suffix in modello quod non possidet rationem (model_not_found); an praebitor petitionem recusavit (upstream_rejected).
402Pecunia quae exemplar consumit non potest munus sustinere.
403Casus pessimus operculi clavis non convenit (key_limit_reached). Inferius max_tokens aut confertum auge.
404Nullus exemplar hoc nomine (model_not_found).
429Limites numeri clavis, an procuratoris (upstream_rate_limited).
502, 503Praebitor defecit (upstream_error) an excess est (upstream_overloaded, cum Retry-After). Nihil imponitur nisi praebeat impensam pro conatu.

Codices status quos omnis terminus communicat sub elenchi sunt errores.

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

Fluere

Cum "stream": true responsum per eventus a sermone servitoris missos venit dum exemplar id scribit. Unusquisque eventus est a chat.completion.chunk in uno data: linea, et fluxus finitur cum data: [DONE]. Ratio venit in delta.reasoning_content, responsum in delta.content.

Transmit omnia quae plus quam circum sexaginta secunda ferant, sicut responsio longa, res magna 🌊 max_tokens vel exemplum rationis. Petitio quae non fluit nihil mittit donec responsum perficiatur, et nexus inter te et Nymbot nexum inopem post circiter centum secundas claudere potest; exemplum tamen consummatur et id quod scripsit computatur, sed responsum amittitur. Flumen signa nexūs servanda mittit, ut iamdiu patet quamdiu exemplum scribat.

Fluvius

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]
  • Lineae incipiunt cum : sunt commentaria vivificantia, omni quindecim secundo missa dum exemplar cogitat. Clientes SSE ea praeterunt.
  • Rogare pro "stream_options": {"include_usage": true} ut ultimum fragmentum supra capias, cum inani choices, numeri verborum, pretium et nymbot res.
  • Onus post finem fluxus constituitur. Si nexus prius claudis, exemplar non sistitur: Nymbot reliquum fluxus praebitoris legit, usque ad viginti quinque secunda, ut numerum verborum numeret, et quod praebitor nuntiat, dolet. Sine eo numero, onus ex itinere tuo et ex eo quod scriptum est aestimatur, plus totius permissionis output pro exemplari quod ratiocinatur.
  • Error ante primam partem, sicut 401 aut 402, redit ut ordinarium JSON cum codice statu, non ut fluxus. Error postquam fluxus incipit ut ultimum venit data: {"error": {…}} eventus, et fluxus sine fine cadit [DONE].
  • Cum instrumentis et exemplaribus in OpenAI Responses transportibus petuntur, a praebitore non fluunt. Tamen etiam validis fluxibus respondent, quibus missis cum responsum perfectum est.

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

Vocatio instrumentorum

Functiones in describere tools et exemplar potest petere ut aliquis vocetur pro respondendo. Functionem exsequeris, eiusque eventum addis ut a tool nuntium eodem tool_call_id, et colloquium iterum mitte. Nymbot numquam functiones tuas excitat; petitionem modelli ad te reddit.

tool_choice capit "auto", "none", "required" aut {"type": "function", "function": {"name": "…"}}. Index modellorum indicat quaeModella instrumenta vocare possunt (capabilities.tools). Instrumenta negantur cum 400 unsupported_tool in nymbot/auto et in paucorum exemplarum catalogi quae in OpenAI Responses transport operantur, cui Nymbot instrumenta transmittere non potest.

Cum "stream": true, petitio cum instrumentis in uno partes currit et deinde ut ordinem fragmentorum normalium mittitur: munus, unum fragmentum omnem vocationem instrumenti cum indice, id, nomine et argumentis portans, et fragmentum finis. Clientes qui vocationes instrumentorum streamati legunt id ut consueto tractant.

Responsum, in parte

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

Imaginines in precatione

Modelli cum capabilities.vision imaginum legere potest. Adde unum image_url pars nuntii użytkownika, cum aut publico https:// nexus aut a data:image/…;base64, URL. Usque ad viginti imagines per petitionem. Imaginum SVG denegantur, neque nexus ultra 4,096 litteras vel unus cum nomine utentis vel verbo servitii in se continens (400 invalid_image_url). Facultativum detail est auto, low aut high.

Cum nymbot/auto, postulatio cum imagine intra est ad exemplar praestandum dirigitur quod videt. Exemplar catalogi sine capabilities.vision imagines cum recusat 400 unsupported_content. Imaginines solum in nuntiis utentis esse possunt. Nexus ad hospitem publicum spectare debet; Nymbot imaginem ad praebitorem modelli mittit et eam non servat.

Imago aestimatur secundum tokens inceptus quae praebitor pro ea computat, sicut reliqua petitio.

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

Ratio

Modelli cum capabilities.reasoning antequam respondeant cogitare possunt. Rogare plus aut minus eiuscumque reasoning_effort ("minimal", "low", "medium" aut "high") an "reasoning": {"effort": "high"}, aut addere :thinking ad nomen moduli, quod multum operis significat. In modulo sine ratione, haec dispositio ignoratur. Cum nymbot/auto, :thinking petitio ad viam rationis normam mittit.

In rationibus Anthropic, conatus in rationem cogitandi vertitur, quae est circa 1,000, 2,000, 8,000, vel 16,000 tokenum, numquam amplius max_tokens sinit. Cogitatio cessat cum tool_choice instrumentum cogit, et cum petitio cyclum instrumenti sequitur (ultima nuntia est eventus instrumenti), quia Anthropic cogitationem prius signatam ad eam continuandam indiget. Eadem ratio applicatur in punctis finum Response et Message.

Ratio revertitur message.reasoning_content, aut delta.reasoning_content cum fluminis, numquam in responsio mixtum. Ratio est exitus et ita computatur, intra completion_tokensNonnulli praebitores textum rationis omnino non reddunt, et tamen emendum est.

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

Suffixes exemplorum

Suffixum in nomine moduli modum quo petitio tractatur mutat, sine altero campo. Illi etiam in nominibus longis et breves operantur, sicut in anthropic/claude-sonnet-5:online.

SuffixumEffectus
:onlinePrimum in rete quaerere, sicut plugins: [{"id": "web"}]. Vide investigatio interretialis.
:thinkingMagnus conatus rationis; on nymbot/auto, via rationis. In modello quod rationem habere non potest, 400 model_not_found cum “nulli termini inventi”.
:nitro, :floor, :exacto, :extendedAcceptum et neglegitum. Unus viae est cuique catalogi modulo, ergo non est citius, pretiosius, vel longius eligendum; suffixa permittuntur ut nomina modorum ex aliis servitiis copiata adhuc operentur.

Aliud suffix est neglegendum. Totum nomen primum temptatur, itaque exemplar cuius id vere colon continet etiam operatur; deficiente eo, suffixes ab extremo singulatim amittuntur donec exemplar conveniat. Nomen exemplaris maxime ducenti litterarum longum esse potest cum maxime quattuor suffixibus; longius autem recusatur cum 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);

Quaelibet mensura colloquii respondere potest ex rete viva. Nymbot nuntium ultimum użytkownika quaerit (suos primas 2,000 litteras), optima paginae legit et eas mentae cum quaestione dat, ut extra contentum signata quae mentis mandata accipere non debet. Sunt duo modi:

  • Semper quaere: "plugins": [{"id": "web", "max_results": 5}], aut a :online suffixum in exemplari
  • Quaere cum adiuvet: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}], etiam acceptum ut web_search_preview aut openrouter:web_search. Nymbot tantum quaerit cum quaestio videatur necessitatem informationis recentis habere, eadem probatio quam applicatio utitur.

max_results 5 est per se et maximum 10. Fontes revertuntur in nymbot.web_search.sources, unumcumque cum title, snippet et url, et ut url_citation annotationes in nuntio.

Omnis investigatio peracta octo millesimas partes dollari constat, in 'sats' conversa, praeter signa, et partem retentionis est. Paginae quas legit etiam signa sunt, ergo responsio ex rete magis constat quam eadem quaestio sine investigatione interrogata, interdum saepius plures partes.

Responsum, in parte

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

API Responsio

Novus formatus OpenAI, a OpenAI Agents SDK et a Codex usus. Eodem modellis, fructibus et operibus operatur quam Chat Completions.

POST https://nymbot.ai/api/v1/responses — clavis API indiget.

CampusTypusNecessariumDescriptio
modelfilumItaQuantum vis Completiō Conloquiōrum, affixis inclusis.
inputseries an series?ItaSeries, vel index rerum: nuntii (munera user, assistant, system, developer) cum input_text, input_image et output_text partes, et function_call et function_call_output instrumenta pro opusibus. input_image capit image_url nexus aut URL datorum, non identificatio huiusus. reasoning et web_search_call res praeteruntur; item_reference negatur.
instructionsfilumNonPraecepta systematis.
max_output_tokensintegerNonMaxima verba scribenda.
temperature
top_p
numerusNonModerationes exemplorum, ubi exemplar eas capit.
tools
tool_choice
parallel_tool_calls
series, text vel obiectum, verumvelfalsumNonInstrumenta functionum, in forma Responsionum ({"type": "function", "name": …, "parameters": …}). A web_search aut web_search_preview instrumentum incipit investigatio interretialis cum adiuvet. Alia instrumenta insita recusantur.
reasoningobiectumNon{"effort": "minimal" | "low" | "medium" | "high"}. xhigh et max significare high; none exstinguat.
text.format
response_format
obiectumNonExitus structuratus, ut schema JSON vel json_object.
metadataobiectumNonIn eadem responsione sine mutatione reditum. Maxime 16 valores stringas, claves usque ad 64 characterum et valores usque ad 512.
streambooleanusNonRes fluxus ut infra descriptae.
storebooleanusNonNeglectum. Nihil servatur, et responsum semper dicit "store": false.
previous_response_id
conversation
background
textus, obiectum, booleanNonNon subtenet: 400 unsupported_parameter. Responsa non servantur, itaque totum colloquium mitte in input omni tempore.

Responsio

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

Petitio instrumenti apparet in output ut function_call res cum call_id, name et arguments; mitte eventum redde ut a function_call_output res eadem cum call_id. Ratio, cum modulus eam reddit, est reasoning res cum reasoning_text content, primum indicatum. status est incomplete cum responsum percussit max_output_tokens aut praebitor recusavit, cum incomplete_details.reason ponere ad max_output_tokens aut content_filter. Responsum etiam praecepta petitionis (temperaturam, instrumenta, electum instrumenti et cetera) imitatur sicut OpenAI facit, et fert nymbot pretium res.

Diffusa, omnis eventus est event: linea et a data: linea cum a sequence_number, hoc ordine: response.created, response.in_progress, response.output_item.added, response.content_part.added, quacumque numero response.output_text.delta, response.output_text.done, response.content_part.done, response.output_item.done, et tandem response.completed cum usus et pretio. Resbreviata finitur response.incomplete potius, et defectus postquam fluxus coepit cum response.failedRatio fluit ut res sua cum response.reasoning_text.delta et .done. Vocatio instrumentorum venit post nuntium, singula ut res cum response.function_call_arguments.delta et .done.

StatusQuando
400Non model aut input; previous_response_id, conversation, background aut item_reference (unsupported_parameter); instrumentum non adiuvante vel genus contenti non admissum.
402, 403, 404, 429, 502, 503Quantum ad 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);

Nuntii Anthropic

Formatum Anthropic, pro Anthropic SDKs et Claude Code. Cum omni modello in catalogo operatur, non solum Claude: postulatio vertitur, per eundem ordinem peragitur, et rursus vertitur.

POST https://nymbot.ai/api/v1/messages — clavis API opus est, cum x-api-key aut Authorization: Bearer.

Lingua Latina articulos definitos non habet. anthropic-version et anthropic-beta tituli accipiuntur et negleguntur. Nomina modellorum Anthropic catalogo congruuntur, ut Claude Code et SDKs cum nominibus iam utuntur operentur:

  • Nomen quod catalogus novit, sicut claude-sonnet-5 aut anthropic/claude-opus-5, ut ita utitur.
  • Aliotherwise dies (-20260514), -latest, indicium versionis sicut -v1, tag in parenthesis sicut [1m] et anthropic/ aut anthropic. praefixa amoventur, et puncti et lineae in versione utraque temptantur (claude-haiku-4-5 invenit claude-haiku-4.5).
  • Si id adhuc nihil congruit, familia (Opus, Sonnet aut Haiku) adhibetur, dum versio catalogi eadem vel posterior sit quam illa quae petitur.
  • Nomen quod nihil congruit redit 404 not_found_error.
CampusTypusNecessariumDescriptio
modelfilumItaID exemplar catalogi, vel nomen exemplaris Anthropic.
max_tokensintegerItaMaxima verba scribenda.
messagesseriesItauser et assistant vertit, cum text, image (fons base64 vel URL), tool_use et tool_result segmenta. thinking segmenta ex turnis prioribus accipiuntur et deiciuntur.
systemseries an series?NonSystema praeceptum, ut series litterarum vel textus.
temperature
top_p
numerusNonModerationes exemplorum, ubi exemplar eas capit. top_k accipitur et rejicitur.
stop_sequencesseries verborumNonTextus qui responsum finit. Summum quattuor stringulae, unaquaeque summa ducenti quinquaginta sex litterarum.
tools
tool_choice
series, obiectumNonInstrumenta cum name, description et input_schema. A web_search instrumentum servitii incipit investigatio interretialis; Altera instrumenta Anthropic intra haec (bash, editor textus, usus computatralis) recusantur cum unsupported_tool. tool_choice capit auto, any, tool aut none, et disable_parallel_tool_use.
thinkingobiectumNon{"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} aut {"type": "disabled"}Ager rationis gradum conatus eligit: sub 2,048 minimus, a 2,048 parvus, a 8,192 medium, a 16,384 altus. Adaptivus utitur output_config.effort, aut altum.
streambooleanusNonFlumina in modo eventus Anthropic.
metadataobiectumNonAcceptum et neglectum.

Responsio

{
  "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 et etiam tenere potest tool_use cubi et thinking blocco, cuius signature vacuam est. stop_reason est end_turn, max_tokens, tool_use aut refusal, eodem modo computum est ut finish_reason in Completiō Conloquiōrum; stop_sequence semper est null, etiam cum nexus finis responsum terminasset. input_tokens numeri novus influxus tantum; influxus in duos campos capsulae est. Pretium in est nymbot res et illud X-Nymbot-Cost-Sats titulus.

Transmissi, eventus sunt Anthropic'i: message_start, content_block_start, ping, content_block_delta (text_delta, input_json_delta aut thinking_delta), content_block_stop, message_delta cum ratione cessationis, usu et nymbot res quae pretium constat, et message_stop. A ping etiam quindecim secunde mittitur dum exemplar operatur. Vocationes instrumentorum post textum perveniunt, singulae ut tool_use bloccum cum omnibus insufficientibus in uno input_json_delta.

Errorēs in hoc puncto finis formam Anthropicī utuntur: {"type": "error", "error": {"type": "not_found_error", "message": "…"}}. A pondus breve est 402 billing_error, praebitor nimis onerosus 503 overloaded_error. Defectus post initium fluxus ut에는 mittitur error eventus.

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

Numerare verba

Aestimatio quanti indicis verborum petitio Messages utetur, ut cliente antequam mittat inspici possit. Gratuita est, sed tamen clavis necessaria est.

POST https://nymbot.ai/api/v1/messages/count_tokens — claves API opus est. Gratuita.

Corpus idem est ac pro Nuntiisine max_tokens; nomen moduli resolvi debet. Numerus est aestimatio: litterae prompti systematis, nuntiorum, vocationum instrumentorum et definitionum instrumentorum per quattuor divisorum, plus 1,600 pro quoque imagine. Hoc non est tokenizer ipsius praebitoris, ergo numerus verus differre potest. Clavis quae finem attingit eam tamen adhuc uti potest.

Responsio

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

Modellorum enumeratio

Omnis modus et generator quos interfacies programmata accipit, cum sumptibus. Index eadem catalogis vivis lectus est quam selector applicationis, ita ut semper id sit quod servitor executabit.

GET https://nymbot.ai/api/v1/models — clavis non opus est. Memoria temporaria pro quinque minutis conservata.

GET /api/v1/models/{id} unum entry reddit.

CampusTypusNecessariumDescriptio
typefilum (quaestio)Nonchat (defaultum), image, video, audio, embedding aut all. Plures dari possunt, ut image,video.

Pretii sunt quae solvis, cum vectigal et margines iam inclusi sint, in dollari et in sats secundum pretium Bitcoin praesens. balance dicit quam rationem exemplar consumat. nymbot_key nomen breve moduli in applicatio est. created semper est 0, quia catalogus non registrat quando exemplar additum sit. Exemplar sine numeris rationis editis pretium habet per_request potius.

nymbot/auto semper primus est, pretio sicut variable, cum routes index praebens pretia uniuscumque itineris normati. visionem et rationem enumerat, sed non instrumenta.

GET /api/v1/models/{id} eadem nomina et alias sicut petitio accipit, et entry pro modello ad quem solvunt reddit.

Responsio

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

Aliae genera:

  • Imago Indices habent capabilities (accepts_image_url, requires_image_url, edit) et pretium per_generation.
  • Video Indices habent max_duration_seconds et resolutions, et pretium per_second pro omni resolutione.
  • Sonus Indices habent audio_type speech aut transcription, pretium fixum per_1k_chars aut per_minute.
  • Implicatio Indices habent dimensions, context_length, max_inputs et pretium pro milione tokenum input.

Pretia signata "estimated": true sunt aestimatio applicationis pro generatore cuius pretium non publicatum est. Ignotum type reditus 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);