API Documentation
Base URL
https://api.rechargeai.ioAuthentication
All API requests require a Bearer token in the Authorization header:
Authorization: Bearer sk-rch-your-api-keyCreate API keys in your dashboard.
Chat Completions
OpenAI-compatible chat completions endpoint. Works with any model available on the platform.
Request
bash
curl https://api.rechargeai.io/v1/chat/completions \
-H "Authorization: Bearer sk-rch-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.2",
"messages": [{"role": "user", "content": "Hello"}],
"stream": false
}'Response
json
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1700000000,
"model": "gpt-5.2",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}Streaming
To stream responses, set stream: true in your request body. The response will be sent as Server-Sent Events (SSE).
Each event contains a data: field with a JSON object. The final event will be data: [DONE].
Streaming Request
bash
curl https://api.rechargeai.io/v1/chat/completions \
-H "Authorization: Bearer sk-rch-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.2",
"messages": [{"role": "user", "content": "Hello"}],
"stream": true
}'Parsing SSE Events
javascript
const response = await fetch("https://api.rechargeai.io/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": "Bearer sk-rch-...",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-5.2",
messages: [{ role: "user", content: "Hello" }],
stream: true,
}),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split("\n").filter((line) => line.startsWith("data: "));
for (const line of lines) {
const data = line.slice(6); // Remove "data: " prefix
if (data === "[DONE]") break;
const parsed = JSON.parse(data);
const content = parsed.choices[0]?.delta?.content;
if (content) process.stdout.write(content);
}
}Available Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /v1/chat/completions | Chat completions (streaming supported) |
| POST | /v1/completions | Text completions |
| POST | /v1/embeddings | Text embeddings |
| GET | /v1/models | List available models |
| POST | /v1/images/generations | Image generation |
SDKs
Use any OpenAI-compatible SDK by changing the base URL:
Python (OpenAI SDK)
python
from openai import OpenAI
client = OpenAI(
api_key="sk-rch-...",
base_url="https://api.rechargeai.io/v1"
)
response = client.chat.completions.create(
model="gpt-5.2",
messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)Node.js (OpenAI SDK)
javascript
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "sk-rch-...",
baseURL: "https://api.rechargeai.io/v1",
});
const response = await openai.chat.completions.create({
model: "gpt-5.2",
messages: [{ role: "user", content: "Hello" }],
});
console.log(response.choices[0].message.content);Error Codes
| Code | HTTP | Description |
|---|---|---|
| invalid_api_key | 401 | API key is invalid or revoked |
| insufficient_credits | 402 | Not enough credits |
| rate_limited | 429 | Too many requests |
| upstream_error | 502 | Temporary service issue |