⚡ नया — Kimi K3 अब लाइव: अपनी Moonshot key जोड़ें →
दस्तावेज़

API reference

गेटवे जो कुछ भी एक्सपोज़ करता है, सब यहाँ है — auth मॉडल के हिसाब से समूहीकृत। Inference endpoints एक API key लेते हैं (Authorization: Bearer br-…); dashboard endpoints साइन-इन पर सेट किए गए ब्राउज़र सेशन कुकी का उपयोग करते हैं और पूर्णता के लिए यहाँ सूचीबद्ध हैं — अधिकांश लोग उन्हें dashboard UI के माध्यम से उपयोग करते हैं। एक मशीन-पठनीय स्कीमा openapi.json पर रहती है।

Inference (API key)

POST /v1/chat/completions

OpenAI-compatible chat completions, स्ट्रीमिंग और नॉन-स्ट्रीमिंग।BharatRouter एक्सटेंशन (optimize,optimize_weights, provider, data_policy, upstream_key, fallbacks, …) स्वीकार करता है — इन्हें राउटर उपयोग कर लेता है और रिक्वेस्ट के गेटवे छोड़ने से पहले हटा देता है। जिस provider ने असल में रिक्वेस्ट को सर्व किया, उसे x-br-provider response header में लौटाया जाता है।

curl https://api.bharatrouter.com/v1/chat/completions \
  -H "Authorization: Bearer br-..." -H "Content-Type: application/json" \
  -d '{
    "model": "qwen2.5-7b-instruct",
    "messages": [
      {"role": "system", "content": "You answer in Hindi."},
      {"role": "user", "content": "What is the capital of Maharashtra?"}
    ],
    "max_tokens": 200,
    "optimize": "uptime"
  }'

Response (नॉन-स्ट्रीमिंग) टोकन usage के साथ एक मानक chat-completion ऑब्जेक्ट है:

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "model": "qwen2.5-7b-instruct",
  "choices": [{ "index": 0, "message": { "role": "assistant", "content": "मुंबई ..." }, "finish_reason": "stop" }],
  "usage": { "prompt_tokens": 28, "completion_tokens": 41, "total_tokens": 69 }
}

"stream": true होने पर response text/event-stream होती है। गेटवे उन providers पर stream_options.include_usage इंजेक्ट करता है जो इसे सपोर्ट करते हैं, इसलिए[DONE] से पहले का अंतिम चंक usage ब्लॉक ले जाता है।

POST /v1/embeddings

OpenAI-compatible embeddings — chat जैसे ही एक्सटेंशन, रूटिंग और फेलओवर के साथ।

curl https://api.bharatrouter.com/v1/embeddings \
  -H "Authorization: Bearer br-..." -H "Content-Type: application/json" \
  -d '{ "model": "bge-m3", "input": ["namaste", "vanakkam"], "data_policy": "india_only" }'

Catalog & health (सार्वजनिक, कोई auth नहीं)

Endpointक्या लौटाता है
GET /v1/modelsपूरा कैटलॉग: प्रति-मॉडल INR price (₹/Mtok), रेज़िडेंसी, भाषा टैग, संदर्भ लंबाई, और लाइव प्रति-रूट हेल्थ।
GET /v1/models/:id/statsएक मॉडल के लिए 7-दिन के traffic stats — सफलता दर, p50/p95 latency, tokens/sec।
GET /v1/providersProvider रजिस्ट्री: कॉन्फ़िगर की गई स्थिति, रेज़िडेंसी, BYOK सपोर्ट, प्लेटफॉर्म-key फॉलबैक।
GET /v1/pricing/compareOpenRouter के साथ price तुलना, FX से INR में परिवर्तित (घंटे के हिसाब से कैश्ड)।
GET /v1/rankingsटोकन वॉल्यूम के हिसाब से सबसे अधिक उपयोग किए गए कैटलॉग मॉडल, 7-दिन और 30-दिन की विंडो। Usage देखें।
GET /v1/collectionsसार्वजनिक collections रजिस्ट्री। वर्ज़न इतिहास के साथ एक के लिए GET /v1/collections/:slug
GET /healthProvider कॉन्फ़िगरेशन और प्रति-रूट circuit-breaker स्थिति।
curl -s https://api.bharatrouter.com/v1/models | jq '.data[] | select(.id=="qwen2.5-7b-instruct")'

Discovery (सार्वजनिक)

GET /openapi.jsonOpenAPI 3.1 स्कीमा।
GET /llms.txtLLM-पठनीय API सारांश।
GET /.well-known/mcp/server-card.jsonMCP सर्वर मेटाडेटा (streamable HTTP, bearer auth)। एजेंट्स के लिए MCP देखें।

Dashboard API (सेशन कुकी)

GitHub/Google OAuth द्वारा साइन-इन पर सेट किया जाता है (GET /auth/:provider → callback → br_session कुकी;POST /auth/logout इसे क्लियर कर देता है)। Org के मालिक सब कुछ कर सकते हैं; कुछ endpoints केवल-मालिक हैं जैसा चिह्नित है।

Account

Endpointयह क्या करता है
GET /meवर्तमान user + org (id, email, role, org नाम, डोमेन)।
PATCH /meडिस्प्ले नाम अपडेट करें या अवतार हटाएँ।
PATCH /me/orgOrg का नाम बदलें (मालिक)

API keys

पूरी सिमेंटिक्स API keys & limits पर।

Endpointयह क्या करता है
GET /me/keyskeys सूचीबद्ध करें: prefix, नाम, tier, rpm/दैनिक limits, मासिक ₹ बजट, इस महीने का खर्च, अंतिम उपयोग।
POST /me/keysएक key बनाएँ — name?, budget_inr?, expires_days? (1–365)। पूरी key ठीक एक बार दिखाई जाती है। बीटा में प्रति org अधिकतम 5 सक्रिय keys।
PATCH /me/keys/:idrpm_limit, daily_limit, budget_inr अपडेट करें (मालिक/एडमिन)। 60 s के भीतर प्रभावी।
DELETE /me/keys/:idएक key रद्द करें (मालिक/एडमिन)। 60 s के भीतर प्रभावी।

BYOK keys

पूरी गाइड BYOK पेज पर।

Endpointयह क्या करता है
GET /me/byokBYOK स्वीकार करने वाले providers + आपकी सहेजी गई keys (मास्क की गई)।
PUT /me/byok/:providerएक provider key सहेजें या बदलें — key, label?, always_use? (मालिक)। लाइव वेरिफ़ाई की जाती है, रेस्ट पर एन्क्रिप्टेड; सहेजने पर मॉडल खोजे जाते हैं।
POST /me/byok/:provider/testसहेजी गई key को फिर से वेरिफ़ाई करें: ok / rejected / unreachable (मालिक)
GET /me/byok/:provider/modelsआपकी key से खोजे गए मॉडल, provider/model-id के रूप में एड्रेस किए जा सकते हैं।
DELETE /me/byok/:providerसहेजी गई key हटाएँ (मालिक)

Billing

पूरी सिमेंटिक्स Credits & billing पर।

Endpointयह क्या करता है
GET /me/billingबैलेंस (₹), कम-बैलेंस थ्रेशोल्ड, money-event लेजर, भुगतान, 30-दिन का usage, बिलिंग पता।
POST /me/billing/addressबिलिंग पता सेट करें (पहले top-up से पहले आवश्यक, GST place-of-supply के लिए) (मालिक)
GET /me/billing/pincode/:pinIndia Post PIN लुकअप → शहर/राज्य ऑटोफ़िल।
POST /me/billing/ordersएक Razorpay ऑर्डर बनाएँ — amount_inr (पूर्ण ₹, बीटा में 100–1000), promo_code? (मालिक)
POST /me/billing/verifyचेकआउट signature वेरिफ़ाई करें और बैलेंस क्रेडिट करें (idempotent) (मालिक)
POST /me/billing/promo/checkभुगतान से पहले एक promo code वैलिडेट करें (मालिक)
POST /me/billing/settingsकम-बैलेंस email थ्रेशोल्ड (₹) सेट या क्लियर करें (मालिक)
GET /me/billing/receipts/:paymentIdप्रिंट करने योग्य HTML भुगतान रसीद (मालिक)

Routing chains

सहेजी गई org-wide फेलओवर चेन — पूरी गाइड Routing पर।

Endpointयह क्या करता है
GET /me/routingसहेजी गई चेन सूचीबद्ध करें; एक के लिए GET /me/routing/:model
PUT /me/routing/:modelएक मॉडल की चेन सहेजें/बदलें — steps (1–10) (मालिक/एडमिन)
DELETE /me/routing/:modelइसे हटाएँ; रूटिंग डिफ़ॉल्ट पर लौट आती है (मालिक/एडमिन)

Collections

पूरी गाइड Collections पर।

Endpointयह क्या करता है
GET /me/collectionsआपके org की collections (निजी + सार्वजनिक + फोर्क की गई)।
POST /me/collectionsबनाएँ — name, model, steps, readme_md?, public? (मालिक/एडमिन)
PATCH /me/collections/:id · DELETE /me/collections/:idसंपादित करें (वर्ज़न बढ़ाता है) या हटाएँ (मालिक/एडमिन)
POST /me/collections/star/:slugएक स्टार टॉगल करें (प्रति org एक)।
POST /me/collections/fork/:slugएक सार्वजनिक collection को अपने org में फोर्क करें।
POST /me/collections/import/:slugविदेशी हो तो फोर्क करें, फिर अपनी रूटिंग के रूप में लागू करें (मालिक/एडमिन)

Custom endpoints (BYOE)

पूरी गाइड Bring your own endpoint पर।

Endpointयह क्या करता है
GET /me/endpointsपंजीकृत endpoints सूचीबद्ध करें (keys मास्क की गई, अनुपालन स्थिति के साथ)।
POST /me/endpointsरजिस्टर करें + इनलाइन अनुपालन-परीक्षण (मालिक/एडमिन)
POST /me/endpoints/testएक असहेजी गई कॉन्फ़िग का अनुपालन-परीक्षण करें (कोई राइट नहीं)।
POST /me/endpoints/:id/retest · DELETE /me/endpoints/:idफिर से परीक्षण करें या हटाएँ (मालिक/एडमिन)

Reliability monitoring

पूरी गाइड Reliability monitoring पर।

Endpointयह क्या करता है
POST /me/collections/:slug/monitorनिगरानी चालू/बंद टॉगल करें (monitored) (मालिक/एडमिन)
POST /me/collections/:slug/checkअभी हर step को कैनरी करें और ताज़ा हेल्थ लौटाएँ।
GET /me/collections/:slug/healthप्रति-step uptime + p95 latency + अंतिम कैनरी (?days= 1–90, डिफ़ॉल्ट 7)।
GET/POST /me/collections/:slug/alerts · DELETE …/alerts/:iderror_rate/latency_p95 पर alerts सूचीबद्ध करें, बनाएँ या हटाएँ → email/webhook (बदलने के लिए मालिक/एडमिन)

Teams & workspaces

पूरी गाइड Teams & workspaces पर।

Endpointयह क्या करता है
GET /me/orgs · POST /me/orgs · POST /me/orgs/switchorgs सूचीबद्ध करें, एक टीम org बनाएँ, सक्रिय org स्विच करें।
GET /me/members · POST /me/membersसदस्य + लंबित सूचीबद्ध करें; email + role द्वारा आमंत्रित करें (मालिक/एडमिन)
PATCH /me/members/:id · DELETE /me/members/:idrole बदलें (मालिक) · हटाएँ या छोड़ें।
GET /me/invitations · POST /me/invitations/:id/(accept|decline)आपके निमंत्रण; स्वीकार या अस्वीकार करें।
GET/POST /me/workspaces · PATCH/DELETE /me/workspaces/:idworkspaces सूचीबद्ध/बनाएँ; PATCH नाम बदलता है या एक monthly_budget_inr कैप सेट करता है; DELETE आर्काइव करता है (बदलने के लिए मालिक/एडमिन)

Usage & activity

पूरी गाइड Usage, activity & rankings पर।

Endpointयह क्या करता है
GET /me/usageप्रति-key रिक्वेस्ट और टोकन, आज (IST) और पिछले 30 दिन।
GET /me/usage/dailyपिछले 30 दिन, दिन और मॉडल के हिसाब से समूहीकृत — dashboard चार्ट को पावर देता है।
GET /me/activityएक तारीख रेंज पर खर्च/वॉल्यूम समुच्चय — दिन×मॉडल, टॉप मॉडल/keys, प्रति-provider लागत विभाजन।
GET /me/activity/eventsप्रति-रिक्वेस्ट ड्रिल-डाउन, सबसे नया पहले, keyset-पेजिनेटेड।
POST /me/attributionएक बार का "आपने हमारे बारे में कहाँ सुना?" साइनअप सर्वे।

Webhooks

EndpointNotes
POST /webhooks/razorpayRazorpay events (payment.captured, payment.failed), x-razorpay-signature HMAC header के माध्यम से वेरिफ़ाई किए गए। क्रेडिटिंग webhook और checkout-verify दोनों पथों पर idempotent है।

Response headers

Headerअर्थ
x-br-providerजिस provider ने रिक्वेस्ट सर्व की (जैसे krutrim, bharatrouter)।
retry-after429 responses पर: फिर से प्रयास करने से पहले प्रतीक्षा के सेकंड।

Platform limits

LimitValue
गेटवे रेट लिमिटप्रति key 120 requests/min (या अनधिकृत होने पर प्रति IP)।
Trial keys60 requests/min, 200 requests/day (मध्यरात्रि IST पर रीसेट)।
प्रति org सक्रिय keys5 (बीटा)।
Top-upप्रति लेनदेन ₹100–₹1,000 (बीटा)।

प्रति-key limits और मासिक ₹ बजट कॉन्फ़िगर करने योग्य हैं — देखेंAPI keys & limits। Errors एक ही JSON envelope का उपयोग करती हैं — देखें Errors