API Documentation

OpenAI-compatible and Anthropic-compatible API endpoints. Drop in your API key and start making requests — zero config changes needed.

11+

AI Models

Including Claude, DeepSeek, Qwen

2

API Formats

OpenAI & Anthropic compatible

SSE

Streaming

Real-time token streaming

Quick Start

Get up and running in under a minute.

1

Create an account

Sign up and verify your email to activate your API key.

Sign up free
2

Get your API key

Find your key in the Dashboard under API Keys.

Go to Dashboard
3

Make your first request

Use the example below to send your first API call.

curl -X POST https://api.unlimitedclaude.com/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "model": "claude-sonnet-4.6",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

Authentication

All API requests require an API key passed via the x-api-key header. You can find your key in the Dashboard.

bash
curl https://api.unlimitedclaude.com/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"model": "claude-sonnet-4.6", "messages": [...]}'
You must verify your email before making API requests. An OTP is sent during signup — verify it to activate your key.

Base URL

All endpoints are relative to this base URL.

https://api.unlimitedclaude.com/api/v1
For example, chat completions live at /api/v1/chat/completions.

Chat Completions

POST/api/v1/chat/completionsOpenAI-compatible endpoint

Works with any SDK or tool that supports the OpenAI chat format.

Request Body

ParameterTypeRequiredDescription
modelstringRequiredModel ID to use
messagesarrayRequiredArray of message objects with role and content
streambooleanOptionalEnable SSE streaming (default: false)
max_tokensintegerOptionalMaximum tokens to generate
temperaturenumberOptionalSampling temperature (0-1)

Example

curl -X POST https://api.unlimitedclaude.com/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "model": "claude-sonnet-4.6",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "What is the capital of France?"}
    ],
    "max_tokens": 256
  }'

Response

json
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "model": "claude-sonnet-4.6",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "The capital of France is Paris."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 8,
    "total_tokens": 33
  }
}

Messages API

POST/api/v1/messagesAnthropic-compatible endpoint

Use this if your tooling expects the native Anthropic format.

Headers

HeaderRequiredDescription
x-api-keyRequiredYour API key
anthropic-versionOptionalAPI version (format: YYYY-MM-DD, e.g. 2023-06-01)

Example

curl -X POST https://api.unlimitedclaude.com/api/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4.6",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Explain quantum computing in simple terms."}
    ]
  }'

Response

json
{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4.6",
  "content": [
    {
      "type": "text",
      "text": "Quantum computing uses quantum bits (qubits) that can exist in multiple states simultaneously..."
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 15,
    "output_tokens": 64
  }
}

Streaming

Set "stream": true in your request body to receive Server-Sent Events (SSE). The response streams token-by-token instead of waiting for the full completion.

bash
curl -X POST https://api.unlimitedclaude.com/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "model": "claude-sonnet-4.6",
    "stream": true,
    "messages": [{"role": "user", "content": "Write a haiku about coding."}]
  }'
Streaming responses use Content-Type: text/event-stream and follow the standard SSE format. Each chunk is prefixed with data:.

Response

json
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":"Silent"},"index":0}]}

data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":" keys"},"index":0}]}

data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{},"index":0,"finish_reason":"stop"}]}

data: [DONE]

Models

Available models depend on your plan. All models are accessed through the same endpoints.

free Plan4 models

claude-haiku-4.5claude-sonnet-4.6deepseek-3.2minimax-m2.1

starter Plan9 models

auto-kiroclaude-3.7-sonnetclaude-haiku-4.5claude-sonnet-4claude-sonnet-4.5claude-sonnet-4.6deepseek-3.2minimax-m2.1qwen3-coder-next

pro Plan11 models

auto-kiroclaude-3.7-sonnetclaude-haiku-4.5claude-opus-4.5claude-opus-4.6claude-sonnet-4claude-sonnet-4.5claude-sonnet-4.6deepseek-3.2minimax-m2.1qwen3-coder-next
Need access to more models? Upgrade your plan to unlock the full model catalog including Claude Opus.

Rate Limits

Limits are applied per-user based on your plan. Exceeding limits returns a 429 status.

PlanDaily RequestsConcurrent Requests
free5,0001
starter20,0003
pro50,00010
Rate limit headers are included in every response: X-RateLimit-Remaining and X-RateLimit-Reset.

Error Codes

Standard HTTP status codes indicate success or failure.

StatusMeaningResolution
200SuccessRequest completed successfully
400Bad RequestCheck your request body and parameters
401UnauthorizedVerify your API key is correct
403ForbiddenModel not on your plan, or email not verified
429Rate LimitedWait or upgrade your plan for higher limits
502Upstream ErrorModel provider issue — retry after a moment

Error Response Format

json
{
  "error": "Daily request limit reached. Upgrade your plan for more requests."
}

Claude Code Setup

Use UnlimitedClaude as the backend for Claude Code across CLI, VS Code, and other editors.

1. Terminal (CLI)

Set these environment variables to route Claude Code CLI requests through UnlimitedClaude.

export ANTHROPIC_BASE_URL=https://api.unlimitedclaude.com/api/v1
export ANTHROPIC_API_KEY=YOUR_API_KEY

# To persist, add to your shell profile:
echo 'export ANTHROPIC_BASE_URL=https://api.unlimitedclaude.com/api/v1' >> ~/.bashrc
echo 'export ANTHROPIC_API_KEY=YOUR_API_KEY' >> ~/.bashrc
source ~/.bashrc

2. VS Code Extension

If you use the Claude Code VS Code extension, configure it through VS Code settings.

1

Open VS Code Settings

Press Ctrl + , (Windows/Linux) or Cmd + , (macOS) to open Settings.

2

Search for Claude Code

Type claude code in the search bar, then find the Environment Variables setting.

3

Add environment variables

Click Edit in settings.json and add the configuration below.

json
// settings.json
{
  "claude-code.environmentVariables": {
    "ANTHROPIC_BASE_URL": "https://api.unlimitedclaude.com/api/v1",
    "ANTHROPIC_API_KEY": "YOUR_API_KEY"
  }
}

3. Cursor / Other Editors

For Cursor or any editor that supports Claude, set the same environment variables in your system or shell profile. Most editors pick them up automatically.

json
// Cursor: Settings > Models > Claude
// Set the API Base URL to:
https://api.unlimitedclaude.com/api/v1

// Set the API Key to:
YOUR_API_KEY
After updating settings, restart your editor or terminal for the changes to take effect. You can verify the connection by running a quick prompt in Claude Code.

SDK Integration

Use your preferred SDK — just point it at the UnlimitedClaude base URL.

Python (OpenAI SDK)

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.unlimitedclaude.com/api/v1",
    api_key="YOUR_API_KEY",
    default_headers={"x-api-key": "YOUR_API_KEY"},
)

response = client.chat.completions.create(
    model="claude-sonnet-4.6",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

Python (Anthropic SDK)

python
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.unlimitedclaude.com/api/v1",
    api_key="YOUR_API_KEY",
)

message = client.messages.create(
    model="claude-sonnet-4.6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content[0].text)

JavaScript / TypeScript

typescript
const response = await fetch("https://api.unlimitedclaude.com/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": "YOUR_API_KEY",
  },
  body: JSON.stringify({
    model: "claude-sonnet-4.6",
    messages: [{ role: "user", content: "Hello!" }],
  }),
});

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

Ready to get started?

Create a free account and get your API key in seconds. No credit card required.