OxyRouter API
One OpenAI-compatible API for chat completions, with revocable keys, usage metering, and an INR wallet.
OxyRouter exposes an OpenAI-compatible chat completions API. Point an existing
OpenAI SDK at the OxyRouter base URL, use an oxy_sk_... API key, and keep the
rest of your integration unchanged.
Base URL
https://api.oxyrouter.in/v1QuickstartCreate a key and send your first chat completion.
Chat completionsNon-streaming and SSE responses, tools, and vision.
ModelsList the models your key can use.
Public catalogueBrowse models and retail pricing without signing in.
What this reference covers
Section titled “What this reference covers”- Inference API — chat completions and model discovery, authenticated with API keys.
- Public catalogue — enabled models and retail USD pricing, available without authentication.
- Account API — API keys, usage and spending limits, wallet deposits, BYOK provider credentials, and referrals. These endpoints are scoped to the signed-in user and use the dashboard session cookie.
Dashboard-only and administrative endpoints are intentionally not documented here.
At a glance
Section titled “At a glance”| Item | Value |
|---|---|
| Base URL | https://api.oxyrouter.in/v1 |
| API key format | oxy_sk_... |
| Inference auth | Authorization: Bearer oxy_sk_... or X-API-Key |
| Account auth | Dashboard session cookie (oxy_session) |
| Response format | OpenAI-compatible JSON and SSE |
| Billing | Prepaid INR wallet, charged from provider-reported token usage |
| Rate limits | Per key and per account; see Errors and limits |
| Interactive schema | api.oxyrouter.in/docs |
OpenAI SDK compatibility
Section titled “OpenAI SDK compatibility”Any client that accepts a custom base URL works. Existing request and response shapes are preserved, including tool calling, vision message parts, and streaming chunks.
from openai import OpenAI
client = OpenAI( api_key="oxy_sk_...", base_url="https://api.oxyrouter.in/v1",)
completion = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": "Hello"}],)
print(completion.choices[0].message.content)import OpenAI from 'openai'
const client = new OpenAI({ apiKey: process.env.OXYROUTER_API_KEY, baseURL: 'https://api.oxyrouter.in/v1',})
const completion = await client.chat.completions.create({ model: 'gpt-4o-mini', messages: [{ role: 'user', content: 'Hello' }],})
console.log(completion.choices[0].message.content)