منځپانګې ته لاړ شئ
د Nymbot په اړه

د پوهې بنسټ پراختیا

چیټ، ځوابونه او پیغامونه

درې لارو ته د يو ماډل څه پوهیږو، په درې فارمونو کې مشتریانو اوس هم خبرې کوي، ټول په ورته ماډلونو کې کار کوي او په ورته لاره کې حساب شوي.

چټک بشپړولو

د OpenAI چیټ فارم، او دا چې تقریبا هر وسایلو ملاتړ کوي. د خبرې کولو ته تر اوسه ورکړئ او د بل پیغام ترلاسه کړئ.

POST https://nymbot.ai/api/v1/chat/completions - د API کلید ته اړتیا لري.

یوازې model او messages اړتيا دي. د نمونې پارامتر چې د انتخاب شوي ماډل نه لګوي د غلطۍ له امله د يو غوښتنلیک بدن په مختلفو ماډلونو کې کار کوي. د ماډل لیست د هر ماډل د supported_parametersهغه څه چې د رخصتیدو په پرتله د رخصتیدو په پرتله د ماډل نه کوي: د ماډل لپاره انځورونه چې نه وګورئ، د ماډل لپاره وسایلو چې نه کولی شي دوی راټول کړي.

ځمکهډولاړتياد نمونې
modelد Stringهوnymbot/auto یا auto) د Nymbot په معياري توازن کې د لارښوونې لپاره، یا د لابراتوار ماډل ID لکه anthropic/claude-sonnet-5 په پرو بیلابیلو کې. د اپلیکیشن د مختصر نومونه او غیرقانوني نومونه هم قبول شوي دي. ممکن په کافی.
messagesنندارېهود بحث. نقشې system, developer (د سیسټم په توګه په کارولو سره) user, assistant او tool.Content ده یو string یا د text او image_url برخو؛ انځورونه یوازې د کاروونکي پيغامونو کې. input_audio او د فایل برخو انکار شوي دي.
streamبوټاننهد ځواب په داسې حال کې وړاندې کړئ لکه څنګه چې ورسوي. وګورئ د انټرنیټ.
stream_optionsد Objectنه{"include_usage": true} د ټکین شمیره او لګښت سره د پایلې ټکین اضافه کوي.
max_tokens
max_completion_tokens
انټرنیټنهډیری ټکینونه کښته کړي. د ماډل په حد کې کم شوی، که لوړ وي. دا هم تنظیم کوي چې ستاسو د توازن څخه کتنه لري، نو د کوچني شمېر لپاره د پیل لپاره لږ کریډیټ اړتیا لري.
temperature
top_p
شمیرهنهد نمونې کنترول: temperature د 0 څخه تر 2، top_p د 0 څخه تر 1
stopString یا Arrayنهمتن چې د ځواب پای ته ورسیږي: یو string یا تر ټولو 4 stringونه، هر څخه تر ټولو 256 character. Not used by nymbot/auto.
seedانټرنیټنهد تکرار نمونې لپاره، کله چې د ماډل دا ملاتړ کوي.
presence_penalty
frequency_penalty
شمیرهنهد تکرار کنټرولونه، هر -2 څخه 2.
response_formatد Objectنه{"type": "json_object"} یا {"type": "json_schema", "json_schema": {…}}، چې د نمونوي ملاتړ کوي. نه کارول nymbot/auto.
tools
tool_choice
parallel_tool_calls
array، string یا object، booleanنهد غوښتنلیک کارول. وګورئ نندارتونونهد web_search نښلول په د ویب پاڼهد 128 وسایلو او 512 KB د تعریفونو څخه تر ټولو، تر ټولو 64 کچه عمده ده؛ نور یو 400.
reasoning_effort
reasoning
String، د objectنه"minimal", "low", "medium" یا "high"او یا {"effort": "high"}. "none" یا {"enabled": false} له دې امله. وګورئ د منطق.
pluginsنندارېنه[{"id": "web", "max_results": 5}] په هر وخت کې لومړی په ویب کې چمتو کوي. تر 10 پایلې.
nانټرنیټنهیوازې 1. هر څه نور راځي 400.
logit_bias
user
metadata
Object، String، Objectنهترلاسه شوي او نه وړاندې شوي. logit_bias د -100 څخه تر 100 شمیره 300 ټوکن ID کې نقشهونه؛ user د 256 ځانګړنو په حد کې؛ metadata په حد کې د 16 string ارزښتونه، کلیدونه د 64 ځانګړتیاو او ارزښتونه د 512 څخه زیات لري.

ځواب د عادي chat.completionسره د لګښت په usage.cost (د ډالرو) او په nymbot د Object. model د حل شوي ماډل id دی، نو یو مختصر نوم به په توګه بشپړ وي. که د ماډل د ځواب څخه دمخه دلیل شوی، د دې دلیل په message.reasoning_contentد ځواب څخه جدي.

ځواب

{
  "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 له هغه څه څخه کارول کیږي چې بیا راځي، ځکه چې عرضه کوونکي دا په مختلف ډول راپور ورکوي: tool_calls کله چې د ماډل د وسایلو ته اړتیا لري، length کله چې ځواب د هر اجازه شوي ټکین کارول (یا د ماډل د هغوی په ټولو بحثونو کې وده ورکړي او هیڅ ځواب نلري) content_filter کله چې د پلورونکي refused، او stop په بل ډول usage.completion_tokens_details.reasoning_tokens همدارنګه 0: د مخکښ تفکر ټکینونه شمول شوي دي، او په completion_tokens.

د شرایطوکله چې
400نه model یا messages (missing_required_parameter)؛ د آډیو یا فایل برخه، یا د نمونوي لپاره انځورونه چې دوی نه وګورئ (unsupported_content)؛ د 20 انځورونه (too_many_images)؛ د نمونې پارامتر د غلط ډول یا د لړ څخه (invalid_value)؛ د انځور لینک چې د ندي ندي (invalid_image_url)؛ په يو ماډل کې د وسایلو چې نه کولی شي دوی (unsupported_tool); n غیر 1؛ A :thinking د نمونې په اړه suffix چې د منطق نه لري (model_not_found)؛ یا د پلورونکي د غوښتنلیک د انکار (upstream_rejected).
402د نمونوي لګښت لګښت کولی شي د لګښت پوښښ نه کړي.
403په بدترین حالت کې د کلید د پوښښ نه کوي (key_limit_reached) د کمولو max_tokens یا د Cap لوړ کړئ.
404د دې نوم په توګه (model_not_found).
429د کلید د نرخ محدودیت، یا د پلورونکي (upstream_rate_limited).
502, 503د پلورونکي ناکام (upstream_error) او یا په لوړه کچه (upstream_overloadedد Retry-After). د کارپوه کارکوونکي د هڅو لپاره په لټه کې نه ده.

د حالت کوډونه هر Endpoint ټانکونه په زیربنا کې شتون لري د غلطو.

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

د انټرنیټ

سره "stream": true د ځواب په توګه د سرور سپارل شوي واقعاتو په داسې حال کې چې د ماډل یې لیکل کیږي. هر واقعې یو chat.completion.chunk د A data: line، او د جریان سره پای ته ورسیږي data: [DONE]د منطق په delta.reasoning_contentد ځواب په delta.content.

هر څه چې ممکن په اړه د 100 ثانیو څخه ډیر وخت لري، لکه د اوږد ځواب، د لوی max_tokens یا د منطق کولو ماډل. د غوښتنې چې د سپارلو نه کوي د ځواب بشپړ نه کوي، او د تاسو او Nymbot تر منځ د شبکې ممکن په اړه 100 ثانیو وروسته یو ناڅاپي اړیکه بند کړي؛ د ماډل تل بشپړ کیږي او هغه څه چې هغه لیکل کیږي کارول کیږي، مګر ځواب کولی شي خوندي شي. د سپارلو د خوندیتوب وړاندې کوي، نو دا د ماډل د سپارلو په اوږدو کې خوندي وي.

د سټرایډ

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]
  • لړۍ چې سره پیل کیږي : د انټرنټ په وخت کې په هر 15 ثانیو کې وړاندې کیږي، په داسې حال کې چې د ماډل فکر کوي. د SSE مشتریانو یې ګټه ورکوي.
  • پوښتنه "stream_options": {"include_usage": true} له دې لپاره چې د وروستیو ټوټې څخه ډډه وکړئ، سره یو خالی choices، د token حساب کوي، د لګښت او nymbot د Object.
  • د لګښت د لګښت پای ته ورسیږي. که تاسو د اړیکو مخکې بند کړئ، د ماډل د بندولو نه کوي: Nymbot د پلورونکي د لګښت بډایه، د 25 ثانیو پورې، د ټکین شمیره ورکوي، او تاسو کولی شئ چې د پلورونکي راپور ورکوي. د دې شمیره پرته، د لګښت ستاسو د وارداتو څخه او هغه څه چې لیکل شوي دي، او د دې دلیلونو لپاره د ماډل لپاره ټول د صادراتو وړاندیز.
  • د لومړي چڼاسکه مخکې د غلطۍ، لکه 401 یا 402، د حالت کوډ سره د عادي JSON په توګه راځي، نه د جریان په توګه. کله چې د جریان پیل شو، یو غلطۍ د وروستۍ په توګه راځي. data: {"error": {…}} د واقعې، او د جریان پرته ختم کیږي [DONE].
  • د وسایلو سره درخواستونه، او د OpenAI د ځوابونو ترانسپورت کې ماډلونه، د سپارلو څخه نه ونیسئ. دوی هنوز هم سره د اعتبار وړ جریان ځواب ورکوي، کله چې ځواب بشپړ دی.

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

د تلیفون

ځانګړتیاوې په tools او د نمونوي کولی شي د ځواب په ځای کې د يو د تماس لپاره پوښتنه وکړي. تاسو د کارولو ترسره کړئ، د دې پايلې په توګه tool د ورته پیغام سره tool_call_idNymbot هیڅکله ستاسو دنده کار نه کوي؛ دا د ماډل د غوښتنې ته تاسو ته ورسیږي.

tool_choice په "auto", "none", "required" یا {"type": "function", "function": {"name": "…"}}د نمونوي لیست نښه کوي چې نمونوي کولی شي د وسایلو (capabilities.tools) د وسایلو سره انکار شوي دي 400 unsupported_tool د nymbot/auto او د څو کاتالوژۍ ماډلونو په اړه چې د OpenAI Responses ترانسپورت کې کار کوي، چې Nymbot کولی شي وسایلو ته ورسیږي.

سره "stream": true، د وسایلو سره یو غوښتنلیک په یوه ټوټې کې چلول کیږي او بیا د عادي chunk sequence په توګه لیږد کیږي: د رول، یو chunk د هر وسایلو د تماس سره د انډول، ID، نوم او د انډولونو سره لیږدوي، او د finish chunk. Clients who read streamed tool calls handle it as usual.

ځواب، په برخه کې

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

عکسونه په غوښتنې کې

د نمونوي سره capabilities.vision کولی شي انځورونه وګورئ. اضافه کړئ image_url د یو کارن پيغام ته برخه واخلئ، سره یو عمومي https:// لینک یا A data:image/…;base64, URL. په هر غوښتنې کې د 20 انځورونو پورې. SVG انځورونه انکار شوي دي، او همدارنګه د 4،096 ځانګړنو یا یو سره د کارن نوم یا پاسورډ سره د لینک په اړه (400 invalid_image_url) د اختیاري detail د auto, low یا high.

سره nymbot/auto، په دې کې د انځور سره یو غوښتنلیک ته د معياري ماډل ته راټول کیږي چې کولی شي وګورئ. capabilities.vision د عکسونو سره انکار کړئ 400 unsupported_contentانځورونه کولی شي یوازې د کاروونکي پيغامونو کې وي. د لنډول باید د عمومي میزبان ته اشاره وکړي؛ Nymbot د انځور ته د موډل د عرضه کوونکي ته انتقال کوي او دا نه ذخیره کوي.

د انځور په توګه د انټرنېټ ټکینونو په توګه د پلورونکي د دې لپاره حساب کوي، لکه د غوښتنې بډایه.

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

د منطق

د نمونوي سره capabilities.reasoning تاسو کولی شئ د ځواب څخه مخکې فکر وکړئ. د دې څخه ډیر یا لږ پوښتنه وکړئ reasoning_effort ("minimal", "low", "medium" یا "high") او "reasoning": {"effort": "high"}یا اضافه کړئ :thinking د نمونوي نوم ته، کوم چې د عالي هڅه معنی لري. په نمونوي پرته د منطق کولو پرته د ترتیبات په لټه کې دي. سره nymbot/auto, :thinking د غوښتنلیک ته د معياري منطق کولو ریل ته ورسیږي.

په Anthropic ماډلونو کې، هڅه د 1,000، 2،000، 8،000 یا 16،000 ټوکنونو په اړه فکر کولو بودجه وي، هیڅکله ډیر نه. max_tokens اجازه ورکوي. فکر نه دی کله چې tool_choice د یو وسایلو ته فشار ورکوي، او کله چې د غوښتنلیک د وسایلو چڼاسکه ته وده ورکوي (د دې وروستۍ پیغام د وسایلو پایلې ده)، ځکه چې Anthropic باید د دې لپاره د مخکښ تخنیکولو ته اړتيا لري. دا هم د ځوابونو او پیغامونو پایپونو په اړه کارول کیږي.

د منطق په لوړه کې راځي message.reasoning_contentاو یا delta.reasoning_content کله چې د سټراییم، نه په ځواب کې مخلوط شي. د منطق د محصول دی او د دې په توګه چارج کیږي، په داخله completion_tokensځینې عرضه کوونکي په ټول ډول د منطق متن نه راټولوي، او دا اوس هم لګښت لري.

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

د نمونوي نوم کې د بدلون بدلون بدلون کوي چې څنګه د غوښتنلیک په کارولو سره ترسره کیږي، د بل کڅوړې پرته. دوی په بشپړ ids او short names هم کار کوي، لکه څنګه چې په anthropic/claude-sonnet-5:online.

کافیاغیزې
:onlineد ویب پاڼه لومړی وګورئ، لکه plugins: [{"id": "web"}]د د ویب پاڼه.
:thinkingد عالي فکر کولو هڅه؛ په nymbot/auto، د منطق کولو لاره. د نمونوي په اړه چې د منطق نه لري، 400 model_not_found سره &ldquo؛ نه پایله شوي پایلې &rdquo؛.
:nitro, :floor, :exacto, :extendedپه هر کاتالوژۍ ماډل کې یو راټول لري، نو د چټک، ارزانه یا اوږد انتخاب نه ده؛ د پیاوړی اجازه ده نو د نورو خدمتونو څخه کاپي شوي ماډل نوم هم کار کوي.

ټول نوم لومړی هڅه کیږي، نو د يو ماډل چې د انډول په حقیقت کې د کولون کې شامل دي، اوس هم کار کوي؛ که نه، د انډولونو په هر وخت کې تر څو د يو ماډل سره مطابقت نه کوي. د ماډل نوم کولی شي د 200 بڼې په اوږدوالي سره د 4 بڼې په اوږدوالي کې نه وي؛ د اوږد یوه سره انکار کیږي 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 د وروستیو کارن پیغام (د لومړي 2000 حروف)، غوره صفحات وګورئ او دوی سره د پوښتنې سره د ماډل ته ورکوي، د دې لپاره چې د ماډل باید د لارښوونې څخه نه واخلئ. دوو موډلونه شتون لري:

  • په هر وخت کې: "plugins": [{"id": "web", "max_results": 5}]یا د :online په ماډل کې suffix.
  • وګورئ کله چې دا مرسته کوي: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}]، هم په توګه accepted web_search_preview یا openrouter:web_searchNymbot یوازې کله چې پوښتنه ښکاري چې دا د اوسني معلوماتو ته اړتيا لري، ورته ټسټ چې د اپلیکیشن کاروي.

max_results ده 5 په معياري توګه او په لوړه کچه 10. د سرچینو په nymbot.web_search.sourcesپه هر کې د A title, snippet او url، او لکه url_citation په پیغام کې نندارتونونه.

هر څیړنه چې ترسره کیږي د $ 0.008 لګښت لري، په ټوکنونو کې بدل کیږي، او دا د ټوکنونو برخه ده. هغه پاڼهونه چې هغه وګورئ د انټرنټ ټوکنونو هم دي، نو د ویب څخه ځواب د ورته پوښتنې څخه ډیر لګښت لري، ځینې وختونه ډیری وختونه ډیر.

ځواب، په برخه کې

"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 ځواب

د OpenAI نوي فورمټ، د OpenAI Agents SDK او Codex لخوا کارول کیږي. دا په ورته ماډلونو، حسابونو او ځانګړتیاوو کې کار کوي چې د چیټ بشپړولو لپاره کارول کیږي.

POST https://nymbot.ai/api/v1/responses - د API کلید ته اړتیا لري.

ځمکهډولاړتياد نمونې
modelد Stringهود چټک بشپړولو، suffixes شامل دي.
inputString یا Arrayهویو string، یا د توکي لیست: پیغامونه (د نقشې) user, assistant, system, developer) سره input_text, input_image او output_text برخو، او function_call او function_call_output د وسایلو لپاره توکي. input_image د یو image_url لینک یا د معلوماتو URL، نه د فایل ID. reasoning او web_search_call د موادو له لاسه ورکړي؛ item_reference راټول شوی
instructionsد Stringنهد سیستم لارښوونې
max_output_tokensانټرنیټنهترټولو ډیری ټیکنونه لیکل کیږي.
temperature
top_p
شمیرهنهد نمونې کنټرولونه، چې د ماډل یې ترلاسه کوي.
tools
tool_choice
parallel_tool_calls
array، string یا object، booleanنهد فابریکې فابریکې، د ځوابونو شکل کې ({"type": "function", "name": …, "parameters": …}) د web_search یا web_search_preview نښلول په د ویب پاڼه کله چې دا مرسته کوي. د نورو داخل شوي وسایلو له لاسه ورکړي.
reasoningد Objectنه{"effort": "minimal" | "low" | "medium" | "high"}. xhigh او max معنی high; none دا بند کړئ.
text.format
response_format
د ObjectنهStructured output، لکه د JSON سیسټم یا json_object.
metadataد Objectنهپه ځواب کې د بدلون په لټه کې. تر ټولو 16 string ارزښتونه، تر ټولو 64 ځانګړتیاوې او تر ټولو 512 ارزښتونه.
streamبوټاننهپه لاندې کې د واقعاتو په څیر راټول کړئ.
storeبوټاننهنښلول شوی. هیڅکله خوندي نه ده، او ځواب تل وايي "store": false.
previous_response_id
conversation
background
String، Object، Booleanنهد ملاتړ نه: 400 unsupported_parameterځوابونه خوندي نه وي، نو ټولې بحثونه په input هر وخت

ځواب

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

د وسیله غوښتنلیک ښيي په output د A function_call د موضوع سره call_id, name او arguments; د پایلو ته د A په توګه رجوع کړئ function_call_output د ورته موضوع سره call_idد منطق، کله چې د نمونوي دا ته ورسیږي، دا reasoning د موضوع سره reasoning_text د موادو، په لومړي کې لیست. status د incomplete کله چې ځواب max_output_tokens یا د پلورونکي د انکار سره incomplete_details.reason د 2 max_output_tokens یا content_filterد ځواب هم د غوښتنې ترتیباتو (د حرارت درجه، وسایلو، د وسایلو انتخاب او داسې نور) راټول کوي، او د OpenAI کار کوي. nymbot د محصول قیمت.

Streamed، هر واقعې یو event: د خط او a data: د لړۍ سره A sequence_numberپه دې ترتیب کې: response.created, response.in_progress, response.output_item.added, response.content_part.addedد هر شمېر response.output_text.delta, response.output_text.done, response.content_part.done, response.output_item.doneاو په پای کې response.completed د کارولو او لګښت سره. د ځواب سره د short ends cut response.incomplete په ځای کې، او د جریان پیل وروسته د ناکامۍ سره response.failedReasoning streams په توګه د خپل موضوع سره response.reasoning_text.delta او .doneد وسایلو تماسونه د پیژندنې وروسته راځي، د هر ډول په توګه د response.function_call_arguments.delta او .done.

د شرایطوکله چې
400نه model یا input; previous_response_id, conversation, background یا د item_reference (unsupported_parameter)؛ نه ملاتړ شوي وسایلو یا موادو ډول.
402, 403, 404, 429, 502, 503د چټک بشپړولو لپاره.

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

antropological پیغامونه

د Anthropic SDKs او Claude Code لپاره د Anthropic format. دا د کټګورۍ په هر موډل کې کار کوي، نه یوازې Claude: د غوښتنلیک ترجمه کیږي، په ورته پایپ کې چلند کیږي، او بیا ترجمه کیږي.

POST https://nymbot.ai/api/v1/messages - د API کلید ته اړتيا لري، لکه x-api-key یا Authorization: Bearer.

د anthropic-version او anthropic-beta د انټروپیک ماډل نومونه د کټګورۍ سره مطابقت کوي، نو Claude Code او SDKs د هغه نومونو سره کار کوي چې دوی اوس هم کاروي:

  • یو نوم چې د کټګورۍ پوه، لکه claude-sonnet-5 یا anthropic/claude-opus-5لکه څنګه کارول کیږي.
  • په بل ډول د تاریخ (-20260514), -latest، یو نسخه tag لکه -v1، لکه څنګه چې د Bracketed Tag [1m] او د anthropic/ یا anthropic. د مخکښ کټګوریو څخه واخلئ، او په نسخه کې ټکونه او ډیزاینونه په دوامداره توګه هڅه شوي دي (claude-haiku-4-5 ښکاره claude-haiku-4.5).
  • که څه هم څه هم نه وي، د کورنۍ (Opus، Sonnet یا Haiku) کارول کیږي، که څه هم د کاتالوژۍ نسخه ورته یا نوي دی چې د پوښتنې لپاره.
  • د نوم چې د هر څه سره مطابقت نلري 404 not_found_error.
ځمکهډولاړتياد نمونې
modelد Stringهود کاتالوژۍ ماډل ID، یا د Anthropic ماډل نوم.
max_tokensانټرنیټهوترټولو ډیری ټیکنونه لیکل کیږي.
messagesنندارېهوuser او assistant تارونه، سره text, image (base64 یا د URL سرچینې)، tool_use او tool_result د بلوکونو thinking د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه.
systemString یا Arrayنهد سیسټم پروپیلن، لکه د string یا متن بلاکونه.
temperature
top_p
شمیرهنهد نمونې کنټرولونه، چې د ماډل یې ترلاسه کوي. top_k راټول شوي او ډک شوي.
stop_sequencesد Strings Arrayنهمتن چې د ځواب په پایله کې وي. په حد کې د 4 string، هر په حد کې د 256 karakters.
tools
tool_choice
Array، Objectنهد تجهیزاتو سره name, description او input_schemaد web_search د Server Tool په د ویب پاڼه; د Anthropic نورو داخل شوي وسایلو (بش، متن editor، کمپيوټر استعمال) د unsupported_tool. tool_choice په auto, any, tool یا noneاو disable_parallel_tool_use.
thinkingد Objectنه{"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} یا {"type": "disabled"}د بودجه د هڅو کچه انتخاب کوي: د 2،048 کمېسيون څخه، د 2،048 کم څخه، د 8،192 متوسط څخه، د 16،384 لوړ څخه. output_config.effortاو یا لوړ.
streamبوټاننهپه Anthropic کې د نندارتون فورمول کې.
metadataد Objectنهپه پام کې و او نادره.

ځواب

{
  "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 هم کولای tool_use د بلوکونو او a thinking د بلاک، چې د signature دا خالی دی. stop_reason د end_turn, max_tokens, tool_use یا refusalپه ورته ډول کار کوي چې finish_reason د چټک بشپړولو; stop_sequence همدارنګه null، که څه هم کله چې د Stop sequence د ځواب پای ته ورسیږي. input_tokens یوازې تازه وارداتو حساب کوي؛ د پیاوړي وارداتو په دوو پیاوړي میدانونو کې دی. د لګښت په nymbot Object او د X-Nymbot-Cost-Sats د هډر

Streamed، د واقعاتو دي Anthropic's: message_start, content_block_start, ping, content_block_delta (text_delta, input_json_delta یا thinking_delta), content_block_stop, message_delta د Stop دلیل، د کارولو او د nymbot د لګښت object، او message_stopد ping هم په هر 15 ثانیو کې کله چې د ماډل کار کوي. د ټیکټ وروسته د وسایلو تماسونه، هر ډول په توګه tool_use د بلاک سره د خپل ټول input په یوه input_json_delta.

په دې پایپ کې غلطونه د Anthropic فورمټ کاروي: {"type": "error", "error": {"type": "not_found_error", "message": "…"}}یو مختصر توازن ده 402 billing_error، یو Overloaded عرضه کوونکي 503 overloaded_errorد جریان پیل وروسته د ناکامۍ په توګه ارسال کیږي error د واقعیت

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

ټیکنونو شمیره

د پیژندنې غوښتنلیک به د کتنې د وارداتو ټکینونو لخوا کارول کیږي، نو د کلینټر کولی شي مخکې چیک کړي. دا وړیا دی، مګر په هرصورت یو کلید ته اړتيا لري.

POST https://nymbot.ai/api/v1/messages/count_tokens - د API کلید ته اړتيا لري. وړيا.

بدن ورته دی چې د پیغامونهد max_tokens; د نمونوي نوم باید حل شي. د شمیره د اندازې ده: د سیسټم پاملرنې، پیغامونه، وسایلو تماسونه او وسایلو تعریفونه د څلور څخه تقسیم شوي، د هر انځور لپاره د 1600 څخه زیات. دا د سپارلو د خپل tokenizer نه ده، نو د واقعي شمیره کولی شي توپیر وي. د کلیدي چې د دې کچه ته ورسیږي دا هم کولی شي دا کاروي.

ځواب

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

د نمونوي لیست

د API هر موډل او جنراتور، سره هغه څه چې دا لګښت لري. د لیست د اپلیکیشن picker په ورته لویه کټګورۍ څخه وګورئ، نو دا تل دا دی چې د سرور به چمتو کړي.

GET https://nymbot.ai/api/v1/models - نه اړتيا لري. د 5 دقیقې لپاره مخکښ.

GET /api/v1/models/{id} د 1 entrance ته ورسیږي.

ځمکهډولاړتياد نمونې
typeString (د پوښتنې)نهchat (د فورمه په اړه) image, video, audio, embedding یا all. ډیری کولی شي ورکړل شي، لکه image,video.

قیمتونه دا دی چې تاسو پیسې ورکړئ، په ډالرو کې، په ډالرو کې او په اوسني Bitcoin قیمت کې sats کې. balance دا بیان کوي چې د نمونوي لګښتونه. nymbot_key د اپلیکیشن کې د ماډل د مختصر نوم دی. created په هر وخت کې 0 دی، ځکه چې د کاتالوژۍ نه ریکارډ کوي کله چې یو ماډل اضافه شوی. د ماډل پرته د چاپ شوي ټکین نرخونه قیمت شوي دي. per_request پرځای.

nymbot/auto تل لومړی دی، د قیمت په توګه variableد A routes لیست چې د هر معیاري ریل نرخونه ورکوي. دا د بصیرت او منطق لیست کوي، مګر د وسایلو نه.

GET /api/v1/models/{id} د ورته نومونه او نښهونه د غوښتنې په توګه قبول کوي، او د هغه ماډل لپاره د انډول راټول کوي چې دوی حل کوي.

ځواب

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

د نورو ډولونه:

  • انځورونه د وارداتو capabilities (accepts_image_url, requires_image_url, edit) او د بيه per_generation.
  • ویډیو د وارداتو max_duration_seconds او resolutions، او د بيه per_second د هر حل لپاره.
  • اډیو د وارداتو audio_type speech یا transcriptionد قیمت per_1k_chars یا per_minute.
  • نندارتون د وارداتو dimensions, context_length, max_inputs او د 1 میلیونه input tokens لګښت.

قیمتونه نښې "estimated": true د یو جنراتور لپاره د اپلیکیشن تخمینې دی چې د بیلابیلو بیلابیلو بیلابیلو. type د پلور 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);