Skip to content

Authentication

Base URL, দুই ধরনের auth header, tok_live_ key-এর format, আর 401 ও 403 error code-এর মানে।

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

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

Tokens API-তে প্রতিটা request-এর সঙ্গে একটা platform key header-এ পাঠাতে হয়। এই পেজে আছে base URL, কোন কোন header চলে, key-এর format কেমন, আর authentication error-এর প্রতিটার মানে কী।

Base URL#

একই host-এ Tokens দুটো surface দেয়। কোনটা নেবেন সেটা ঠিক হয় client দেখে, model দেখে না।

Client-এর ধরনBase URLসাধারণত যেসব tool
OpenAI-compatiblehttps://tokens.bd/v1OpenAI SDKs, Cursor, Cline, Aider, OpenCode, Codex CLI
Anthropic-compatiblehttps://tokens.bdAnthropic SDKs, Claude Code (এরা নিজেই শেষে /v1/messages জুড়ে নেয়)

কোনো tool "API base" বা "base URL" চাইলে আর সেটা OpenAI-ধাঁচের হলে /v1 সহ দিন। Anthropic-ধাঁচের হলে /v1 বাদ দিন, কারণ SDK নিজেই ওটা জুড়ে দেয়। প্রথম request-এই 404 আসার সবচেয়ে বড় কারণ এখানে ভুল করা।

কোনো tool নিজে থেকে endpoint খুঁজে নিতে চাইলে একটা public config endpoint আছে। এতে authentication লাগে না:

bash
curl https://tokens.bd/api/gateway/config
json
{
  "openaiBaseUrl": "https://tokens.bd/v1",
  "anthropicBaseUrl": "https://tokens.bd"
}

API key header-এ পাঠান#

Key দুটো header-এর যেকোনো একটায় দিলেই চলে। আপনার client যেটা default-এ পাঠায়, সেটাই ব্যবহার করুন।

HeaderFormatকারা পাঠায়
AuthorizationBearer tok_live_your_keyOpenAI SDKs, ANTHROPIC_AUTH_TOKEN দিয়ে Claude Code, বেশির ভাগ tool
x-api-keytok_live_your_keyAnthropic SDKs

দুটো header একসাথে এলে Authorization: Bearer header-টাই ধরা হয়। Authorization header-এ Bearer ছাড়া অন্য কোনো scheme থাকলে সেটা বাদ যায়, তখন gateway x-api-key খোঁজে।

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

Key-এর format#

Key দেখতে tok_live_ দিয়ে শুরু হয়, তারপর 48টা hexadecimal character। Dashboard-এ key তৈরির সময় পুরো secret একবারই দেখানো হয়। আমরা শুধু hash রাখি, তাই হারিয়ে গেলে key ফেরত আনা যায় না; নতুন একটা তৈরি করে নিন। Key তৈরি, spend cap, allowed-model list আর rotation নিয়ে বিস্তারিত আছে API keys পেজে।

Key রাখুন environment variable-এ#

Docs-এর সব উদাহরণে key পড়া হয় TOKENS_API_KEY থেকে:

bash
export TOKENS_API_KEY="tok_live_your_key"

Windows PowerShell-এ:

powershell
$env:TOKENS_API_KEY = "tok_live_your_key"

তারপর code-এ key সরাসরি না লিখে এভাবে পড়ে নিন:

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://tokens.bd/v1",
    api_key=os.environ["TOKENS_API_KEY"],
)

Key commit করবেন না

Commit করা .env, config file বা notebook-এ key থাকা মানে key leak হয়ে যাওয়া। এই file-গুলো .gitignore-এ রাখুন। Key leak হয়ে গেলে Dashboard থেকে rotate করুন; পুরোনো secret সঙ্গে সঙ্গে কাজ করা বন্ধ করে দেয়।

শুধু server-side: browser থেকে call নয়#

API-র response-এ CORS header থাকে না। তাই key ঠিক থাকলেও web page থেকে fetch করলে browser-এ সেটা fail করবে। এটা ইচ্ছা করেই করা: browser-এ key পাঠালে যে কেউ dev tools খুলে সেটা পড়ে ফেলতে পারে। Tokens-কে call করুন আপনার backend, serverless function, CLI বা coding agent থেকে, আর frontend সেই backend-এর সঙ্গে কথা বলুক।

401 আর 403-এর মানে#

Authentication fail করলে standard error body আসে, সঙ্গে machine-readable একটা code:

json
{
  "error": {
    "message": "Invalid API key.",
    "type": "authentication_error",
    "code": "invalid_api_key",
    "param": null,
    "request_id": "8f0c7a4e-2b1d-4c55-9a51-3f7e2d9b6c10"
  }
}
StatusCodeমানেযা করবেন
401missing_api_keyAuthorization: Bearer বা x-api-key কোনো header-ই আসেনিযে shell-এ tool চালাচ্ছেন সেখানে env var set আছে কিনা দেখুন
401invalid_api_keyKey-টা আমাদের দেওয়া কোনো key-র সঙ্গে মেলে নাkey কাটা পড়েছে কিনা বা বাড়তি quote আছে কিনা দেখুন; key আবার copy করুন, নয়তো নতুন বানান
403key_inactiveKey revoke বা rotate করা হয়েছেএখনকার secret ব্যবহার করুন, নয়তো নতুন key বানান
403key_expiredKey-র expiry date পেরিয়ে গেছেনতুন key বানান
403account_suspendedঅ্যাকাউন্ট suspend করা আছেSupport-এর সঙ্গে যোগাযোগ করুন
403model_not_allowed_on_keyKey-তে allowed-model list আছে, আর তাতে এই model নেইlist-এর কোনো model নিন, নয়তো অন্য key ব্যবহার করুন
403monthly_spend_cap_exceededKey-টা তার monthly spend cap-এ পৌঁছে গেছেপরের মাস পর্যন্ত অপেক্ষা করুন, নয়তো অন্য key নিন
403tier_permission_deniedআপনার plan-এ এই model নেই, আর Wallet-এ ব্যালান্সও নেইplan ও Wallet পেজ দেখুন

upstream_auth_error code-সহ 401 বা 403 আলাদা ব্যাপার। এর মানে upstream provider-এর কাছে gateway-র নিজের credential ফিরিয়ে দেওয়া হয়েছে, আপনারটা নয়। আপনার key ঠিকই আছে; একটু পরে আবার চেষ্টা করুন বা অন্য model নিন, আর Support-এ জানালে request id-টা সঙ্গে দিন।

Billing আর rate-limit error-সহ সব code-এর পুরো list আছে errors পেজে। Key শুরু থেকে শেষ পর্যন্ত কাজ করছে কিনা যাচাই করতে quickstart-এ এক লাইনের একটা test request আছে।

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

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

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

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