API Documentation

AI Bridge is a unified, OpenAI-compatible gateway. Point your existing SDK at our endpoint — no code changes required.

Quick Start

Change one line. That's it.

python
import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apibridge.cc/v1",
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
javascript
import OpenAI from 'openai'

const client = new OpenAI({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://api.apibridge.cc/v1',
})

const response = await client.chat.completions.create({
  model: 'gpt-4o',
  messages: [{ role: 'user', content: 'Hello!' }],
})
console.log(response.choices[0].message.content)
bash
curl https://api.apibridge.cc/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hello!"}]}'

Authentication

All requests require a Bearer token in the Authorization header. Create API keys from Dashboard → API Keys.

bash
Authorization: Bearer sk-...

Keep your API key secret. Never expose it in client-side code or public repositories.

Chat Completions

POST https://api.apibridge.cc/v1/chat/completions

Request body

modelrequired

string

Model ID. See the Models section for available options.

messagesrequired

array

Array of message objects with role and content.

stream

boolean

If true, returns a Server-Sent Events stream. Default: false.

max_tokens

integer

Maximum tokens to generate.

temperature

number

Sampling temperature 0–2. Default: 1.

Example response

json
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1714000000,
  "model": "gpt-4o",
  "choices": [{
    "index": 0,
    "message": { "role": "assistant", "content": "Hello! How can I help?" },
    "finish_reason": "stop"
  }],
  "usage": { "prompt_tokens": 10, "completion_tokens": 8, "total_tokens": 18 }
}

Streaming

Set stream: true to receive tokens as they're generated via Server-Sent Events.

python
stream = client.chat.completions.create(
    model="claude-3-5-sonnet",
    messages=[{"role": "user", "content": "Write a poem"}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content or ""
    print(delta, end="", flush=True)
bash
# Each SSE event:
data: {"id":"...","choices":[{"delta":{"content":"Hello"},"index":0}]}

data: [DONE]

Models

Use GET /v1/models to list available models programmatically, or refer to the table below.

Model IDProviderContext
gpt-4oOpenAI128K
gpt-4o-miniOpenAI128K
claude-3-5-sonnet-20241022Anthropic200K
claude-3-5-haiku-20241022Anthropic200K
gemini-1.5-proGoogle1M
gemini-1.5-flashGoogle1M
gemini-2.0-flashGoogle1M
deepseek-chatDeepSeek64K
deepseek-reasonerDeepSeek64K
moonshot-v1-128kMoonshot128K
kimi-k2.5Moonshot128K

Error Codes

HTTPCodeMeaning
401invalid_api_keyAPI key is missing or invalid.
402insufficient_balanceAccount balance is too low. Top up from the dashboard.
429rate_limit_exceededRPM or TPM limit reached. Retry after a short delay.
503upstream_errorAll upstream providers failed. Retry after a short delay.
json
// Error response format
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded: 10 RPM"
  }
}