ApiCabin

Docs

Pick the tool you already use and change the two or three lines its section shows. The API has its own address, separate from this website:

https://api.apicabin.ai

Claude Code

Set two environment variables before you start claude (macOS / Linux):

export ANTHROPIC_BASE_URL="https://api.apicabin.ai"
export ANTHROPIC_AUTH_TOKEN="YOUR_CABIN_KEY"
claude

On Windows, the PowerShell version:

$env:ANTHROPIC_BASE_URL = "https://api.apicabin.ai"
$env:ANTHROPIC_AUTH_TOKEN = "YOUR_CABIN_KEY"
claude

Claude models only accept the official Claude Code (2.1.285 or newer) and Claude Desktop. Other clients calling Claude are turned away upstream, and those requests are not charged.

Codex

Edit ~/.codex/config.toml and add a provider that points at the cabin:

model = "gpt-5.6-sol"
model_provider = "apicabin"

[model_providers.apicabin]
name = "ApiCabin"
base_url = "https://api.apicabin.ai/v1"
env_key = "APICABIN_KEY"
wire_api = "responses"   # the cabin speaks the Responses API

Put your key in the environment variable named there, then run codex as usual:

export APICABIN_KEY="YOUR_CABIN_KEY"
codex

Codex runs on GPT models. Try gpt-5.6-sol or gpt-6-astra, or gpt-6.1-sol when you want to spend less.

Cursor

  1. Open Cursor Settings and go to the Models page.
  2. Paste your cabin key into the OpenAI API Key field.
  3. Switch on Override OpenAI Base URL and enter https://api.apicabin.ai/v1.
  4. Use Add model to add the ids you want, such as gpt-5.6-sol or qwen3.7-plus, then press Verify.

Cursor can only reach models that speak the OpenAI-compatible protocol. For Claude, switch to Claude Code.

Cherry Studio

  1. Settings → Model Provider → Add, and choose OpenAI as the provider type.
  2. Set the API host to https://api.apicabin.ai and the API key to your cabin key.
  3. Press Manage and tick the models you want from the list it fetches.
  4. For Gemini, add a second provider of type Gemini with the same host and key.

Code you write yourself

With OpenAI's official Python SDK only base_url changes:

import openai, os   # key lives in APICABIN_KEY

cabin = openai.OpenAI(base_url="https://api.apicabin.ai/v1", api_key=os.environ["APICABIN_KEY"])
note = cabin.chat.completions.create(
    model="qwen3.7-plus",
    messages=[{"role": "user", "content": "Name three things a cabin needs."}],
)
print(note.choices[0].message.content)

Gemini uses its own generateContent endpoint:

curl "https://api.apicabin.ai/v1beta/models/gemini-3.8-flash:generateContent" \
  -H "x-goog-api-key: YOUR_CABIN_KEY" -H "Content-Type: application/json" \
  -d '{"contents":[{"parts":[{"text":"Name three things a cabin needs."}]}]}'

Gemini model ids you can use: gemini-2.5-flash, gemini-3.1-pro, gemini-3.8-flash, gemini-4-argon

Protocol reference

ProtocolPathsKey goes inModels
OpenAI-compatible/v1/chat/completions
/v1/responses
/v1/models
Authorization: Bearer <cabin key>GPT, Qwen, DeepSeek, Kimi, GLM, Grok, MiniMax, MiMo
Anthropic/v1/messagesx-api-key: <cabin key>Claude (official clients only)
Gemini (its own format)/v1beta/models/<gemini id>:generateContent
/v1beta/models/<gemini id>:streamGenerateContent
x-goog-api-key: <cabin key>Gemini; add ?alt=sse to stream

Each call is billed in four parts: input, output, cache writes and cache reads, at the prices on the pricing page. Anthropic count_tokens and Gemini countTokens are free.

402 means the balance or plan quota is used up; 403 means a plan key tried another family; 429 means a limit was hit: 120 requests a minute per key and 8 at once per account.