API Documentation

Base URL

https://api.rechargeai.io

Authentication

All API requests require a Bearer token in the Authorization header:

Authorization: Bearer sk-rch-your-api-key

Create 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

MethodEndpointDescription
POST/v1/chat/completionsChat completions (streaming supported)
POST/v1/completionsText completions
POST/v1/embeddingsText embeddings
GET/v1/modelsList available models
POST/v1/images/generationsImage 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

CodeHTTPDescription
invalid_api_key401API key is invalid or revoked
insufficient_credits402Not enough credits
rate_limited429Too many requests
upstream_error502Temporary service issue