$ man unlockai

Docs

Your key works anywhere that speaks the OpenAI or Anthropic API: Claude Code, Codex, Cursor, Grok Build, Kimi CLI, OpenCode, phone chat apps, and your own code.

The two values you need

base url: https://api.aikeysforyou.com
key: sk-… (issued once, in your dashboard)

Claude Code

~/.zshrc or ~/.bashrc
export ANTHROPIC_BASE_URL=https://api.aikeysforyou.com
export ANTHROPIC_AUTH_TOKEN=sk-your-key
# start claude as usual
claude

Claude Code respects ANTHROPIC_BASE_URL — every request then meters against your credits.

Codex CLI

env
export OPENAI_BASE_URL=https://api.aikeysforyou.com/v1
export OPENAI_API_KEY=sk-your-key
codex

Cursor

Settings → Models → OpenAI API Key: paste your key, set Override OpenAI Base URL to https://api.aikeysforyou.com/v1.

Python (openai)

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.aikeysforyou.com/v1",
    api_key="sk-your-key",
)

resp = client.chat.completions.create(
    model="claude-sonnet-5",   # any model on the catalog
    messages=[{"role": "user", "content": "hello"}],
)
print(resp.choices[0].message.content)

Node (openai)

node
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.aikeysforyou.com/v1",
  apiKey: "sk-your-key",
});

const r = await client.chat.completions.create({
  model: "gpt-6-sol",
  messages: [{ role: "user", content: "hello" }],
});

Anthropic SDK / raw curl

curl — anthropic messages api
curl https://api.aikeysforyou.com/v1/messages \
  -H "x-api-key: sk-your-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 128,
    "messages": [{"role": "user", "content": "hello"}]
  }'
curl — openai chat completions
curl https://api.aikeysforyou.com/v1/chat/completions \
  -H "authorization: Bearer sk-your-key" \
  -H "content-type: application/json" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "messages": [{"role": "user", "content": "hello"}]
  }'

Errors you'll see

402
insufficient_balance
Out of credits — top up in the dashboard.
401
unauthorized
Bad or revoked key.
503
sales_paused
Provider pause — retry in a minute.