Skip to content

cURL

cURL দিয়ে Tokens API চালান: chat completion, streaming, Anthropic Messages, model-এর তালিকা, usage দেখা, আর error response থেকে request ID পড়া।

যেসব tool-এ কাজ করেcURL

সর্বশেষ আপডেট 11 অক্টোবর 2026

Markdown-এ দেখুন
এই পাতায়

key ঠিকমতো কাজ করছে কি না দেখতে আর Tokens API ঠিক কী ফেরত দেয় তা দেখতে cURL-ই সবচেয়ে দ্রুত উপায়। মাঝখানে কোনো SDK থাকে না। নিচের প্রতিটি উদাহরণ আপনার key TOKENS_API_KEY থেকে পড়ে, তাই আগে এটা set করে নিন।

bash
export TOKENS_API_KEY="tok_live_your_key"

Windows PowerShell-এ $env:TOKENS_API_KEY = "tok_live_your_key" লিখুন, আর curl-এর বদলে curl.exe চালান। কারণ Windows PowerShell 5.1-এ curl আসলে Invoke-WebRequest-এর alias, আর সেটার flag আলাদা। নিচের command-এ \ দিয়ে যে লাইন ভাঙা হয়েছে, সেটা bash আর zsh-এর জন্য। PowerShell-এ পুরো command এক লাইনে লিখুন, অথবা backtick ব্যবহার করুন।

cURL দিয়ে chat completion পাঠান#

OpenAI-compatible base URL হলো https://tokens.bd/v1। পরিচয় দিতে Authorization: Bearer header ব্যবহার করুন।

bash
curl https://tokens.bd/v1/chat/completions \
  -H "Authorization: Bearer $TOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek/deepseek-v4.1-flash",
    "messages": [
      {"role": "system", "content": "You are a terse code reviewer."},
      {"role": "user", "content": "What does `set -euo pipefail` do?"}
    ],
    "max_tokens": 300
  }'

Response একটা সাধারণ chat completion object। উত্তর থাকে choices[0].message.content-এ, আর token-এর হিসাব থাকে usage-এ। প্রতিটি field-এর বিস্তারিত পাবেন Chat Completions পেজে।

model দেওয়া বাধ্যতামূলক। Request body সর্বোচ্চ 10 MB হতে পারে, এর বেশি হলে 413 আসবে।

-N দিয়ে token stream করুন#

Body-তে "stream": true দিন আর command-এ -N (--no-buffer) যোগ করুন। তাহলে পুরো response শেষ হওয়ার অপেক্ষা না করে প্রতিটি server-sent event আসামাত্র cURL সেটা print করবে।

bash
curl -N https://tokens.bd/v1/chat/completions \
  -H "Authorization: Bearer $TOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek/deepseek-v4.1-flash",
    "messages": [{"role": "user", "content": "Count from 1 to 10, one number per line."}],
    "stream": true,
    "stream_options": {"include_usage": true}
  }'

Output-এ প্রথমে data: {...} লাইনগুলো আসবে, যেগুলোতে choices[0].delta.content থাকে। শেষে আসবে data: [DONE]। Usage chunk-টা (এর choices array ফাঁকা) শুধু তখনই আসে যখন request-এ stream_options.include_usage দেওয়া থাকে। এটা বাদ দিলে stream-এ কোনো token count থাকবে না। Event-এর format নিয়ে আরও জানতে দেখুন Streaming।

Anthropic Messages API চালান#

একই key Anthropic-compatible endpoint-এও চলে। এবার key পাঠান x-api-key header-এ। Authorization: Bearer দিলেও চলবে, দুটোই নেওয়া হয়।

bash
curl https://tokens.bd/v1/messages \
  -H "x-api-key: $TOKENS_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek/deepseek-v4.1-flash",
    "max_tokens": 300,
    "messages": [{"role": "user", "content": "Explain a git rebase in two sentences."}]
  }'

Model-কে Anthropic-এর হতেই হবে এমন কোনো কথা নেই। আপনি যে model-এর নাম দেবেন, gateway সেটা যে provider চালায় তার জন্য request-টা নিজে বদলে নেয়। Anthropic-style event stream করতে "stream": true আর -N যোগ করুন। বিস্তারিত Messages পেজে।

Note

Anthropic-এর জন্য বানানো SDK ও tool সাধারণত base URL চায় /v1 ছাড়া (https://tokens.bd), কারণ ওরা নিজেরাই শেষে /v1/messages জুড়ে নেয়। সরাসরি cURL চালালে আপনাকে পুরো path নিজে লিখতে হবে।

আপনার key দিয়ে কোন কোন model চলবে দেখুন#

bash
curl https://tokens.bd/v1/models \
  -H "Authorization: Bearer $TOKENS_API_KEY"

এটা এই মুহূর্তে এই key-এর জন্য যে model-গুলো পাওয়া যাচ্ছে তার তালিকা দেয়। হিসাবে ধরা হয় আপনার plan, Wallet-এর ব্যালান্স আর key-এর allowed-models list। Model ID মুখস্থ থেকে না লিখে এখান থেকে copy করুন। দামসহ পুরো catalog আছে /models পেজে।

শুধু ID-গুলো বের করতে চাইলে jq ব্যবহার করুন:

bash
curl -s https://tokens.bd/v1/models \
  -H "Authorization: Bearer $TOKENS_API_KEY" | jq -r '.data[].id'

Plan usage আর Wallet-এর ব্যালান্স দেখুন#

GET /v1/tokens/usage শুধু Tokens-এ আছে। এটা আপনার plan, চালু usage window, Wallet-এর ব্যালান্স আর এই key-এর সীমাগুলো দেখায়। এটা শুধু পড়ার call, এর জন্য কোনো টাকা কাটে না।

bash
curl -s https://tokens.bd/v1/tokens/usage \
  -H "Authorization: Bearer $TOKENS_API_KEY" | jq

Response-এর উপরের স্তরে এই field-গুলো থাকে:

Fieldকী থাকে
planPlan-এর নাম, tier আর periodEnd। চালু plan না থাকলে null
windowsচালু usage window (session_5h, weekly, monthly), প্রতিটিতে unit, limit, used, remaining, percentUsed, resetsAt
walletbalanceUsd, অথবা null
keyআপনি যে key দিয়ে call করেছেন তার monthlySpendCapUsd আর allowedModels

কোনো request 429 window_exhausted দিয়ে ব্যর্থ হলে আর window কখন reset হবে জানতে চাইলে এই call-টাই করুন।

-i আর x-tokens-request-id দিয়ে error debug করুন#

Body-র সাথে response header-ও দেখতে -i দিন। প্রতিটি response-এ x-tokens-request-id থাকে। Support প্রথমেই এটা চাইবে।

bash
curl -i https://tokens.bd/v1/chat/completions \
  -H "Authorization: Bearer $TOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "not-a-real/model", "messages": [{"role": "user", "content": "hi"}]}'
http
HTTP/2 404
content-type: application/json
x-tokens-request-id: 7f3c...
x-request-id: ...

{"error":{"message":"...","type":"...","code":"model_not_found","param":null,"request_id":"7f3c..."}}

শুধু HTTP status দেখে থেমে যাবেন না, error.code-টা পড়ুন। 403-এর মানে হতে পারে key inactive, model-টা key-এর allow-list-এ নেই, অথবা spend cap ছুঁয়ে গেছে। তিনটার সমাধান তিন রকম। 429 এলে Retry-After header দেখুন। Tokens X-RateLimit-* header পাঠায় না।

Script-এ এক লাইনে status যাচাই করতে চাইলে -w দিয়ে শুধু code print করুন:

bash
curl -s -o /dev/null -w "%{http_code}\n" https://tokens.bd/v1/models \
  -H "Authorization: Bearer $TOKENS_API_KEY"

200 এলে key ঠিক আছে। 401 এলে key নেই অথবা ভুল। সব code-এর তালিকা আর কোনটায় কী করবেন তা আছে Errors আর Troubleshooting পেজে।

কোন কোন endpoint নেই#

Gateway এই endpoint-গুলো চালায়: /v1/chat/completions, /v1/completions (পুরোনো), /v1/messages, /v1/responses, /v1/embeddings (শুধু embedding model-এর জন্য), /v1/models আর /v1/tokens/usage। Image generation, audio, file, batch, assistant, fine-tuning আর moderation endpoint-এ গেলে 404 unsupported_endpoint আসবে। তবে chat request-এর ভেতরে model-কে ছবি পাঠানো চলে: দেখুন Image input।

এই পাতাটা কি কাজে লেগেছে?

এখনো আটকে আছেন? Support ticket খুলুন

আপনার agent set up করতে সাহায্য লাগবে?

Connection tester দিয়ে সংযোগ পরীক্ষা করে নিন, অথবা একটা API key তৈরি করুন।