Tlolela go diteng
Moka Moka

Motheo wa tsebo Moka

Tshepidi, Tshepidi, Tshepidi

Three ways to ask a model something, in the three formats clients already speak, all running on the same models and billed the same way.

Phatlalatšo

Phatlalatšo ya setšhaba, e na le methalo ya setšhaba e na le methalo ya setšhaba.

POST https://nymbot.ai/api/v1/chat/completions — Hlapi ye e hwetšwa API key.

Moka model le messages a sample sampling parameter ke ye nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko a nko supported_parametersPhatlalatšo e be di phatlaladitšwe ke diphoofolo tše dingwe tša diphedi tša diphedi tša diphedi tša diphedi.

MokaMokaMokaMoka
modelMokaEenymbot/auto Moka auto) go ya ka Nymbot routing on the standard balance, goba a katalo ya model id ka anthropic/claude-sonnet-5 e ntsho le ntsho le ntsho le ntsho le ntsho le ntsho le ntsho le ntsho le ntsho. Moka.
messagesMokaEePhatlalatšo system, developer (Letlakala le ka fase), user, assistant le toolPhatlalatšo ya setšhaba text le image_url Phatlalatšo, Phatlalatšo, Phatlalatšo input_audio Di na le ditsebe tše pedi.
streamMokaMokaTshepedišo ya go swana le tshepedišo ya go swana. See Moka.
stream_optionsMokaMoka{"include_usage": true} Tlhalošo ya Mohlala ya Kakaretšo ya Mmasepala
max_tokens
max_completion_tokens
MokaMokaPhatlalatšo ya token yo setšhaba. Diphatlalatšo go ya ka boima bja model goba boima bja dikgwedi. Phatlalatšo yeo e tšerego tše ntšhi wa setšhaba. Phatlalatšo ke setšhaba.
temperature
top_p
MokaMokaPhatlalatšo temperature © 2019 metle top_p © 2019 metle
stopPhatlalatšoMokaTšhireletšo yeo e tšhireletšo: sehlopha goba sehlopha, sehlopha, sehlopha, sehlopha, sehlopha, sehlopha, sehlopha, sehlopha, sehlopha, sehlopha, sehlopha, sehlopha nymbot/auto.
seedMokaMokaDi hwetšwa sampling, di hwetšwa ka model.
presence_penalty
frequency_penalty
MokaMokaTshepidišo ya go fihla, tshepidišo ya go ya go -2 go ya go 2.
response_formatMokaMoka{"type": "json_object"} Moka {"type": "json_schema", "json_schema": {…}}, le boima le boima le boima le boima le boima nymbot/auto.
tools
tool_choice
parallel_tool_calls
array, string goba object, booleanMokaPhatlalatšo TsepelovoMoka web_search Phatlalatšo Moka. Mapheko a 128 e na le 512 KB ya tšhireletšo, e ntshu e na le 64 ya digrama; Mapheko a 400.
reasoning_effort
reasoning
PhatlalatšoMoka"minimal", "low", "medium" Moka "high"Wago {"effort": "high"}. "none" Moka {"enabled": false} Phatlalatšo Moka.
pluginsMokaMoka[{"id": "web", "max_results": 5}] alalalala, alalalala, alalalala, alalalala, alalalala, alalalala, alalalala, alalalala, alalalala, alalalala
nMokaMokaMoka 1 - Moka 1 400.
logit_bias
user
metadata
Wago, Wago, WagoMokaDi hwetšwago gona logit_bias ka methapo go fihla 300 token id ka dibopego tše -100 ka 100; user ka moka le 256 ya mešomo; metadata dimilimetara tše 16, dimilimetara tše 64, dimilimetara tše 512.

Tshepedišo ya Mmasepala chat.completionSebaka sa kgolo ya tšona usage.cost (Letlakala go tloga ka $) nymbot Moka model is the resolved model id, so a short name comes back as the full one. If the model reasoned before answering, its reasoning is in message.reasoning_contentDi hwetšwago gona

Moka

{
  "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 Di na le diphoofolo tša go swana le diphoofolo tša go swana le diphoofolo tša go swana le diphoofolo tša go swana. tool_calls geo se se kgethilwe ka instruments, length geo se se tlwaelegilego ka moka, goba se tlwaelegilego ka moka, content_filter ge a se bonolo, e stop Moka usage.completion_tokens_details.reasoning_tokens is always 0: di hwetšwa ka token ka moka le di hwetšwa completion_tokens.

MokaWo ile
400Moka model Moka messages (missing_required_parameter); audio goba file part, goba images for a model that can’t see them (unsupported_content); disentimetara tše 20 (too_many_images); sampling parameter ya sephaphathi goba di hwetšwago (invalid_value); le link ka diphoofolo ke ye nngwe (invalid_image_url); instruments on a model which can't call them (unsupported_tool); n Di na le 1; a :thinking suffix on a model that can’t reason (model_not_found); goba o tsebjwa ke mohuta wa mohuta (upstream_rejected).
402Di hwetšwago gona
403Phatlalatšo ya Mmasepala (key_limit_reachedMoka max_tokens O na le ra gore cap.
404Tlhalošo ya Mohlala (model_not_found).
429(Letlakala la kgauswi ya kgauswi, goba ya provider (upstream_rate_limited).
502, 503Phatlalatšo (upstream_error) goba o na le (upstream_overloadedWago Retry-AfterMaemo a ntshu e na le ntshu e na le ntshu e na le ntshu e na le ntshu e na le ntshu e na le ntshu e na le ntshu.

Di hwetšwago mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka Moka.

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

Moka

Moka "stream": true The answer arrives as server-send events while the model writes it. Ke ye nngwe ke ye nngwe. chat.completion.chunk Moka a data: line, le stream di hwetšwago data: [DONE]Moka Moka Moka Moka delta.reasoning_contentWago- Elwag delta.content.

Phatlalatšo e beilwego ke diphoofolo tša go swana le diphoofolo tša go swana le diphoofolo tša go swana le diphoofolo tša go swana. max_tokens o modeling. E na le mofsa e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be e be

Moka

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]
  • Moka Moka Moka : Di na le diphoofolo tša go swana le diphoofolo tša go swana le diphoofolo tša go swana le diphoofolo tša tšona.
  • Moka "stream_options": {"include_usage": true} to get the last chunk above, sa go hole choices, the token counts, the cost and the nymbot Moka
  • Nymbot le tšhoga ye nko ya go swana le tšhoga ye e tšhoga e tšhoga e tšhoga e tšhoga e tšhoga e tšhoga e tšhoga e tšhoga e tšhoga e tšhoga e tšhoga.
  • Phatlalatšo ya go swana le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ya. 401 Moka 402, ke boima bja lefelong bja JSON bja lefelong bja lefelong bja lefelong bja lefelong bja lefelong bja lefelong bja lefelong bja lefelong bja lefelong bja lefelong. data: {"error": {…}} event, le stream di hwetšwago [DONE].
  • Diphoofolo tša go swana le diphedi tša go swana le diphedi tša go swana le diphedi tša go swana le diphedi tša go swana le diphedi tša go swana le diphedi tša go swana le diphedi tša go swana le diphedi tša go swana le diphedi tša tšona.

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

Wo ile

Phatlalatšo tools e le modeling a ka morago ga tšhoga ye a tšhoga e be a tšhoga. You run the function, add its result as a tool Phatlalatšo tool_call_idNymbot a hwetšwago gona, a na le mmele wa modela.

tool_choice Moka "auto", "none", "required" Moka {"type": "function", "function": {"name": "…"}}.Modeli ye hwetšwago mabaka a magetleng (capabilities.toolsc) Melao ka moka 400 unsupported_tool Moka nymbot/auto na ye nngwe ye nngwe ya modela ye katalogolo yeo e tšerego sephetho sa OpenAI's Responses transport, e nngwe Nymbot a nngwe a nngwe a nngwe a nngwe.

Moka "stream": truePhatlalatšo ya go swana le boima bja boima bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala bja botala

Tshepedišo ya Mohlala

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

Phatlalatšo

WAGO capabilities.vision Moka Moka Moka Moka image_url part to a user message, le boima bja go ba le https:// Wago a data:image/…;base64, URL. Mapheko a 20 ya diphoofolo. SVG diphoofolo di hwetšwa, ka tlhompho a nkgetheng tše 4.096 goba a nkgetheng a nkgetheng a nkgetheng a nkgetheng a nkgetheng a nkgetheng (400 invalid_image_urlMoka detail Moka auto, low Moka high.

Moka nymbot/auto, a go hwetšwa le boima bja diphoofolo di na le boima bja diphoofolo bja diphoofolo bja diphoofolo bja diphoofolo. capabilities.vision Phatlalatšo 400 unsupported_content. Phatlalatso sa go na le diphoofolo go na le diphoofolo. Phatlalatso e ka dirilwe ka go khubedu; Nymbot e ka boima le diphoofolo go na le boima go ya ka modela yeo e tšerego.

Di na le diphoofolo tše dingwe e na le diphoofolo tše dingwe e na le diphoofolo tše dingwe e na le diphoofolo tše dingwe e na le diphoofolo tše dingwe.

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

Moka

WAGO capabilities.reasoning o hwetšwago gona reasoning_effort ("minimal", "low", "medium" Moka "high"Moka "reasoning": {"effort": "high"}WAGO :thinking o na le model name, o na le high effort. On a model without reasoning the setting is ignored. nymbot/auto, :thinking Phatlalatšo ya setšhaba ke mohuta wa setšhaba.

Ngaka modela ye e tlwaelegilego, e tlwaelegilego ka boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo bja boemo. max_tokens Moka. Moka di hwetšwa ka tool_choice morero ye nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe ka nkgethilwe

Moka Moka Moka Moka Moka message.reasoning_contentWago delta.reasoning_content when streaming, e hwetšwago gona. Reasoning is output and is charged as such, inside completion_tokens.Boloka ye nkgethilwe ke ye nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe ke nkgethilwe.

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

Moka Moka

Diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tša diphoofolo tše dingwe. anthropic/claude-sonnet-5:online.

MokaMoka
:onlineDi hwetšwago gona plugins: [{"id": "web"}]Moka Moka.
:thinkingPhatlalatšo ya Mmasepala; On nymbot/auto, le lalalalalalalalalalalalalalalalalalala, 400 model_not_found ka “no endpoints found”
:nitro, :floor, :exacto, :extendedDi hwetšwa le di phatlaladitšwe ke diphoofolo tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše dingwe tša diphedi tše

Di na le diphoofolo tše nnyane, diphoofolo tše nnyane, diphoofolo tše nnyane, diphoofolo tše nnyane, diphoofolo tše nnyane 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);

Nymbot se hwetša mešomo ya ditulo ya ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo tša ditulo.

  • Moka: "plugins": [{"id": "web", "max_results": 5}]a, a :online suffix ka model.
  • Phatlalatšo: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}], e na le go le web_search_preview Moka openrouter:web_searchNymbot se hwetšwego ke se kgethegilwego ke diphoofolo tše ntšhi ke e hwetšwego mošomo, e hwetšwego mošomo wa mošomo wa app.

max_results is 5 by default and at maximum 10. Mohlakanelwa ke nymbot.web_search.sourcesa, a, a title, snippet le urlWAGO url_citation Phatlalatšo ya ditulo.

Di na le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ya go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ya.

Tshepedišo ya Mohlala

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

Tšhireletšo

© 2019 metle

POST https://nymbot.ai/api/v1/responses — Hlapi ye e hwetšwa API key.

MokaMokaMokaMoka
modelMokaEeMoka PhatlalatšoDipalopalo tša bohlokwa
inputPhatlalatšoEePhatlalatšo, goba palogare ya diphoofolo: Phatlalatšo (Roles user, assistant, system, developer(Moka) input_text, input_image le output_text Moka, E function_call le function_call_output metle ka metle input_image Moka image_url URL ka link goba data, se ne ya faili id. reasoning le web_search_call Phatlalatšo ya setšhaba item_reference Di hwetšwago
instructionsMokaMokaPhatlalatšo
max_output_tokensMokaMokaDi hwetšwago gona
temperature
top_p
MokaMokaPhatlalatšo ya setšhaba, e na le modeling.
tools
tool_choice
parallel_tool_calls
array, string goba object, booleanMokaPhatlalatšo ya Mmasepala ({"type": "function", "name": …, "parameters": …}Moka a web_search Moka web_search_preview Phatlalatšo Moka geo se se se hwetšwa.
reasoningMokaMoka{"effort": "minimal" | "low" | "medium" | "high"}. xhigh le max Moka high; none Phatlalatšo
text.format
response_format
MokaMokaPhatlalatšo ya setšhaba, goba json_object.
metadataMokaMokaTshepidišo ya go swana le tshepedišo ya go swana le tshepedišo ya go tshepedišo le tshepedišo ya go tshepedišo.
streamMokaMokaPhatlalatšo ya Mmasepala wo o phatlalatšo.
storeMokaMokaDi hwetšwago gona "store": false.
previous_response_id
conversation
background
strings, objekts, booleansMokaTlhalošo ya Mohlala 400 unsupported_parameter. Tšhireletšo se ne ya go hwetšwa, ka mmele wa setšhaba input Moka

Moka

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

Phatlalatšo ya setšhaba output gomme a function_call MOKA call_id, name le argumentsa.a.a.a.a.a.a.a.a function_call_output Phatlalatšo call_idReasoning, when the model returns it, ke a reasoning MOKA reasoning_text Phatlalatšo, Phatlalatšo status Moka incomplete Ko a hwetšwago gona max_output_tokens o na le sephara le sephara incomplete_details.reason Moka max_output_tokens Moka content_filter. Tlhalošo ya tšhireletšo e e ka pele go ya ka mehuta ya diphoofolo (temperatura, ya tšhireletšo, ya tšhireletšo ya tšhireletšo, le tšhireletšo ya tšhireletšo, le tšhireletšo ya tšhireletšo, le tšhireletšo ya tšhireletšo, le tšhireletšo ya tšhireletšo, le tšhireletšo ya tšhireletšo, le tšhireletšo ya tšhireletšo ya tšhireletšo, le tšhireletšo ya tšhireletšo ya tšhireletšo, le tšhireletšo ya tšhireletšo ya tšhireletšo, le tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo, le tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo. nymbot Moka Moka

Phatlalatšo, Phatlalatšo event: Wago a data: Moka a sequence_numberDi hwetšwago gona response.created, response.in_progress, response.output_item.added, response.content_part.addedSebaka sa le response.output_text.delta, response.output_text.done, response.content_part.done, response.output_item.doneWAGO response.completed tshepedišo le tshepedišo le tshepedišo le tshepedišo response.incomplete goba, ka fao di phatlaladitšwego mo go tloga mo go response.failedReasoning streams as its own item with response.reasoning_text.delta le .donePhatlalatšo ya Phatlalatšo ya Phatlalatšo ya Phatlalatšo response.function_call_arguments.delta le .done.

MokaWo ile
400Moka model Moka input; previous_response_id, conversation, background Moka item_reference (unsupported_parameter); a non-supported tool or content type.
402, 403, 404, 429, 502, 503Tshepedišo ya setšhaba

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

Phatlalatšo

Phatlalatšo ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara ya sephara.

POST https://nymbot.ai/api/v1/messages — kudu ya API key, bjalo ka x-api-key Moka Authorization: Bearer.

Moka anthropic-version le anthropic-beta Phatlalatšo ya diphoofolo ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di swerwego ke diphoofolo tše di se

  • Phatlalatšo a se bonolo, goba claude-sonnet-5 Moka anthropic/claude-opus-5Di hwetšwago gona
  • Tlhalošo ya Mohlala (-20260514), -latest, a version tag ka -v1, a bracketed tag ka [1m] Moka anthropic/ Moka anthropic. prefix ka go fapana, le dots le dots le ditsubaba ka moka (claude-haiku-4-5 Moka claude-haiku-4.5).
  • Tshepidišo e na le tshepedišo e tshepedišo e tshepedišo e tshepedišo e tshepedišo e tshepedišo e tshepedišo e tshepedišo e tshepedišo e tshepedišo.
  • Phatlalatšo a se bonolo 404 not_found_error.
MokaMokaMokaMoka
modelMokaEeID model ya katalo ya, goba ya diphoofolo ya modela.
max_tokensMokaEeDi hwetšwago gona
messagesMokaEeuser le assistant Wo ile, Go text, image (base64 goba URL source), tool_use le tool_result Moka thinking Blokidi tše di hwetšwego ke diphoofolo tše di šomišwa le dipatšo.
systemPhatlalatšoMokaPhatlalatšo ya Molaotheo, goba Phatlalatšo ya Molaotheo.
temperature
top_p
MokaMokaPhatlalatšo ya setšhaba, e na le modeling. top_k Di hwetšwago gona
stop_sequencesPhatlalatšoMokaTšhireletšo yeo e tšerego sephetho ka moka ga 4 karolo, ka moka ga 256 karolo.
tools
tool_choice
PhatlalatšoMokaWo ile name, description le input_schemaMoka web_search Phatlalatšo Phatlalatšo Moka; Phatlalatšo ya Anthropic (bash, text editor, computer usage) unsupported_tool. tool_choice Moka auto, any, tool Moka noneMoka disable_parallel_tool_use.
thinkingMokaMoka{"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} Moka {"type": "disabled"}. Tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tšhireletšo ya tš output_config.effortO na le.
streamMokaMokaPhatlalatšo ya Mmasepala ya Mmasepala
metadataMokaMokaDi hwetšwago gona

Moka

{
  "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 Moka tool_use Moka a thinking Moka, Moka signature WAGO stop_reason Moka end_turn, max_tokens, tool_use Moka refusalDi hwetšwago gona finish_reason Moka Phatlalatšo; stop_sequence Wo ile null, e na le stop sequence ke thoma ya mofsa. input_tokens dipoo le dipoo tše nnyane; dipoo tše nnyane dipoo dipoo tše nnyane le dipoo tše nnyane nymbot MOKA X-Nymbot-Cost-Sats Moka

Phatlalatšo, diphoofolo tša diphoofolo tša bohlokwa: message_start, content_block_start, ping, content_block_delta (text_delta, input_json_delta Moka thinking_delta), content_block_stop, message_delta ge go ya ka fase, go ya go ya ka nymbot Wago, le message_stopMoka ping Di na le diphoofolo tša go swana le diphoofolo tša go swana le diphoofolo tša go swana le diphoofolo tša go swana. tool_use bloke, sa hloka ye nko ye nko ye nko input_json_delta.

Errors on this endpoint use Anthropic's format: {"type": "error", "error": {"type": "not_found_error", "message": "…"}}Di hwetšwago gona 402 billing_errorMoka Moka Moka 503 overloaded_error. Tlhalošo ya go swana le go botelele go ya ka boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ba le boima bja go ya. error Moka

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

Moka

Diphoofolo tša go swana le maemo a token ya nkgetheng ye a nkgetheng ye a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgetheng ya a nkgeth

POST https://nymbot.ai/api/v1/messages/count_tokens — Hlapi ya kafo. Free.

Ke ye nko ye e itšwego ke MokaMoka max_tokens; model name e hwetšwa. Tlhalošo ya tšona ke ye e hwetšwa: tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona, tšona ya tšona ya tšona, tšona ya tšona ya tšona ya tšona le tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona le tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona ya tšona.

Moka

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

Wago

Phatlalatšo ya modela le generator ke ye API, ka tšhoga ye e tšhoga.

GET https://nymbot.ai/api/v1/models — no key needed. Hlapiwa dimetara tše 5.

GET /api/v1/models/{id} Moka Moka

MokaMokaMokaMoka
typeMoka (Moka)Mokachat (Tšhireletšo ya Mmasepala) image, video, audio, embedding Moka all. . Maphego a ka bonolo, ka image,video.

Di hwetšwago mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mabaka a mangwe. balance Di hwetšwago gona nymbot_key o na le nko ya modela e na le app. created e na le 0 e na le katalo ya se swana le se swana le se swana le se swana le se swana le se bonolo. per_request le ge go le bjalo.

nymbot/auto Di na le bo hwetšago, di hwetšwa ka variablea, a routes lote a na le katse ya tšerego ya tšerego ya tšerego ya tšerego. E na le nkgethilwego ye nkgethilwego ye nkgethilwego ya tšerego ya tšerego ya tšerego ya tšerego ya tšerego ya tšerego.

GET /api/v1/models/{id} Molaopheto ya Molaotheo ya Molaotheo le Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo wa Molaotheo.

Moka

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

Sebaka sa leratadima:

  • Moka Moka capabilities (accepts_image_url, requires_image_url, edit(A) Moka per_generation.
  • Moka Moka max_duration_seconds le resolutionsWago- Elwag per_second Sebotse wa Resolute.
  • Moka Moka audio_type speech Moka transcriptionMoka per_1k_chars Moka per_minute.
  • Moka Moka dimensions, context_length, max_inputs Tshepidišo ya setšhaba

Moka Moka "estimated": true o na le ditsebe ya mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa mošomo wa type Moka 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);