OpenAI-compatible API for accessing LLM models
https://proxy.abhibots.com/v1Authorization: Bearer sk-proxy-YOUR_KEYcurl -X POST https://proxy.abhibots.com/v1/chat/completions \
-H "Authorization: Bearer sk-proxy-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-pro",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello, how are you?"}
],
"temperature": 0.7,
"stream": false
}'
from openai import OpenAI
client = OpenAI(
api_key="sk-proxy-YOUR_KEY",
base_url="https://proxy.abhibots.com/v1"
)
response = client.chat.completions.create(
model="gemini-3.1-pro",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
temperature=0.7,
stream=False
)
print(response.choices[0].message.content)
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-proxy-YOUR_KEY',
baseURL: 'https://proxy.abhibots.com/v1',
});
const response = await client.chat.completions.create({
model: 'gemini-3.1-pro',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Hello!' },
],
stream: false,
});
console.log(response.choices[0].message.content);
const stream = await client.chat.completions.create({
model: 'gemini-3.1-pro',
messages: [{ role: 'user', content: 'Tell me a story' }],
stream: true,
});
for await (const chunk of stream) {
const text = chunk.choices[0]?.delta?.content || '';
process.stdout.write(text);
}
Send a chat completion request. Supports both streaming (SSE) and non-streaming responses.
| Parameter | Type | Description |
|---|---|---|
| model | string | Required. Model ID from /v1/models |
| messages | array | Required. Array of message objects with role and content |
| temperature | number | Sampling temperature (0-2). Default: 1.0 |
| max_tokens | number | Maximum tokens to generate |
| stream | boolean | Enable SSE streaming. Default: false |
| top_p | number | Nucleus sampling parameter |
| Role | Description |
|---|---|
| system | System prompt — sets the assistant's behavior |
| user | User message |
| assistant | Previous assistant response (for multi-turn conversations) |
List all available (enabled) models. Returns OpenAI-compatible model list.
curl https://proxy.abhibots.com/v1/models \
-H "Authorization: Bearer sk-proxy-YOUR_KEY"
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1773515917,
"model": "gemini-3.1-pro",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 8,
"total_tokens": 20
}
}
All API requests require a valid API key passed via the Authorization header:
Authorization: Bearer sk-proxy-YOUR_KEY
| Status | Error | Description |
|---|---|---|
401 | Missing/invalid API key | Check your Authorization header |
403 | Key expired or IP blocked | Key inactive, expired, or IP not in allowlist |
400 | Model not found/disabled | Check /v1/models for available models |
429 | Rate limit exceeded | Wait and retry, or request a higher limit |
500 | Server/Provider error | Upstream LLM provider error |
Models are auto-synced from the Gemini API. Use GET /v1/models for the latest list. Only enabled models are available for chat completions.
Loading models...