Robin AI · Docs

OpenAI-compatible API, rebuilt for the community.

Reference docs stay here even while the public endpoints are paused. The moment we reopen traffic to https://robin.sdad.pro/api/v1 the same payloads and shapes will apply—no code changes needed.

Base URL

https://robin.sdad.pro/api/v1

This endpoint is temporarily offline during the maintenance window. Keep it handy for the relaunch.

Authentication

Include your API key in any of the following ways:

Rate Limits · Fair Usage

We keep things generous but balanced so everyone ships without stress.

Unauthenticated

150 req / 15 min / IP

Authenticated

500 req / 15 min / API key

Model listing

60 req / min

Endpoints

GET /api/v1/models

List all models hosted on Robin AI.

curl https://robin.sdad.pro/api/v1/models

POST /api/v1/chat/completions

Create OpenAI-compatible chat completions.

curl https://robin.sdad.pro/api/v1/chat/completions \ 
  -H "Authorization: Bearer YOUR_API_KEY" \ 
  -H "Content-Type: application/json" \ 
  -d '{
    "model": "kimi-k2-thinking",
    "messages": [
      {"role": "user", "content": "Map the next three steps for scaling Robin AI."}
    ],
    "temperature": 0.6,
    "max_tokens": 1000
  }'

POST /api/v1/completions

Create classic text completions.

curl https://robin.sdad.pro/api/v1/completions \ 
  -H "Authorization: Bearer YOUR_API_KEY" \ 
  -H "Content-Type: application/json" \ 
  -d '{
    "model": "deepseek-v3.1",
    "prompt": "Draft a status update explaining Robin AI maintenance.",
    "temperature": 0.5,
    "max_tokens": 500
  }'

GET /api/v1/health

Returns live health metrics and system stats.

POST /api/v1/keys

Create an API key. Optional JSON body: {"name": "My Key"}

Chat completion parameters

ParameterTypeRequiredDescription
modelstringYesModel ID (e.g. llama2, mistral)
messagesarrayYesArray of role/content objects
temperaturenumberNo0–2 (default 0.7)
max_tokensnumberNoDefault 2048, max 32000
streambooleanNoEnable SSE streaming

Set stream: true for Server-Sent Events responses.

Completions parameters

ParameterTypeRequiredDescription
modelstringYesModel ID (e.g. llama2, mistral)
promptstringYesPrompt text
temperaturenumberNo0–1 (default 0.7)
max_tokensnumberNoDefault 2048

Error responses

{
  "error": {
    "message": "Error description",
    "type": "error_type",
    "code": "error_code"
  }
}

Code samples

Python

import requests

url = "https://robin.sdad.pro/api/v1/chat/completions"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
data = {
    "model": "qwen3-coder",
    "messages": [
        {"role": "user", "content": "Review this PR and summarize the fixes."}
    ]
}

response = requests.post(url, json=data, headers=headers)
print(response.json())

JavaScript

const response = await fetch('https://robin.sdad.pro/api/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'deepseek-v3.1',
    messages: [
      { role: 'user', content: 'Summarize the beta feedback themes.' }
    ]
  })
});

const data = await response.json();
console.log(data);