ApiClo Docs
Choose the exact IDE or client: VS Code, Cursor, Trae, Claude Code, Codex, and more. The correct Base URL, model, and step-by-step guide appear immediately below.
Choose your IDE and get ready-to-use settings
Start with the app you already use. ApiClo will show its endpoint, recommended model, and the exact guide without making you search the full documentation.
What do you want to connect?
For autonomous development, start with OpenCode, DeepSeek Harness, or a terminal CLI. Editor extensions remain available below.
Connect Codex CLI/IDE or Claude Code with the config for your OS.
Choose Codex or Claude Code OpenCodePrimary quick path for autonomous project work, tools, and images through an explicit model catalog.
Set up OpenCode DeepSeek HarnessFull agent interface with a custom provider, explicit image input support, and model management.
Set up Harness Oh My PiExtensible power-user CLI with providers, tools, LSP/DAP, and explicit image capabilities.
Set up OMP OrcaManages multiple already configured CLI agents, isolated worktrees, and parallel tasks.
Set up Orca Just chatUse the browser chat, pick a model in the UI, and use Free models only here while they are available.
Open chat Hermes AgentFor tasks with memory, web context, files, and long-running work inside ApiClo.
Open Hermes Desktop BridgeDownload the bridge when an IDE or agent needs a local router, folder access, and computer files.
Download .exe CursorWorks for chat/plan through custom base URL. For full coding-agent workflows, prefer Hermes, Cline, Kilo, Roo, Claude Code, or Codex.
Set up Cursor Own appOpenAI-compatible /v1 for SDKs, backends, services, and direct HTTP requests.
Open APIWhere to put URL and key
Short compatibility map. If the client asks for an OpenAI-compatible URL, use /v1. If an Anthropic/Claude client appends /v1/messages itself, use the root without /v1.
| Client | Best path | Base URL / key | Model | Status |
|---|---|---|---|---|
| Web Chatnormal user | Open chat in ApiClo | no API key needed | selected in UI | recommended |
| Hermesaccount agent | Agents → Hermes | ApiClo account | selected in UI | recommended |
| OpenCodeversatile coding start | opencode.json |
https://apiclo.com/v1sk-hub-... |
gpt-6-astracapabilities.input: text + image |
recommended |
| DeepSeek Harnessfine-grained agent setup | profiles/web/cordis.patch.yml |
https://apiclo.com/v1APICLO_API_KEY |
gpt-6-astrainput: text + image |
recommended |
| Oh My PiOMP | ~/.omp/agent/models.yml |
https://apiclo.com/v1APICLO_API_KEY |
gpt-6-astrainput: text + image |
CLI |
| Orcaorchestration | above a configured CLI | configured in the child CLI | inherited from the executor | ADE |
| Desktop Bridgelocal router | download Windows .exe | http://127.0.0.1:18441/v1client key can be any local value |
from Fetch models | recommended |
| Cline / Roo / KiloVS Code | OpenAI-compatible profile | https://apiclo.com/v1sk-hub-... |
claude-sonnet-5 |
recommended |
| Claude CodeCLI | ANTHROPIC_AUTH_TOKEN |
https://apiclo.comsk-hub-... |
claude-sonnet-5 |
CLI |
| CodexCLI / IDE extension | ~/.codex/config.toml |
https://apiclo.com/v1APICLAUDE_API_KEY |
claude-sonnet-5 |
CLI |
| Cursorchat/plan | OpenAI-compatible | https://apiclo.com/v1sk-hub-... |
apiclo-gpt-5-6-sol |
limited |
| API / SDKHTTP | OpenAI SDK | https://apiclo.com/v1Authorization: Bearer sk-hub-... |
claude-sonnet-5 |
API |
ApiClo Desktop Bridge
Install Desktop Bridge only for a local router, folder access, or Hermes computer permissions. Configure IDEs and CLIs with their separate guides.
Optional local router and computer-permission bridge for files and Hermes. It is not the IDE configuration installer.
Connection values
These values are used by almost every IDE and SDK. Create a separate key for each project.
https://apiclo.com/v1
For Cursor, Continue, Kilo, Codex, OpenCode, SDKs, and raw HTTP.
https://apiclo.com
For Claude Code, raw Anthropic SDK, and clients that append /v1/messages themselves.
sk-hub-...
The full key is shown once on the API Keys page.
claude-sonnet-5
Balanced paid route for chat and code.
Free Opus/Sonnet/Fable/GPT aliases are for web chat while promo capacity is available. Do not put free-* models into IDEs, agents, or external API clients; use the paid model IDs below.
Separate model IDs with -1m or -1m-context suffixes are retired. Choose the standard model ID below; long sessions keep their context and compact automatically when needed.
Quick start
The shortest path from signup to the first IDE or API response.
- 1
Choose your OS: Windows, macOS, or Ubuntu/Linux. Installation commands and config paths below vary by system.
- 2
Create an account and add balance. One balance works for web chat, API, Telegram, and managed agents.
- 3
Open API Keys and create a separate key for the specific IDE or project.
- 4
Codex, Claude Code, and other clients use the separate ready guides below.
- 5
Choose OpenCode for a versatile coding start, DeepSeek Harness for fine-grained agent setup, or Oh My Pi for an extensible CLI with tools.
- 6
For parallel agents and worktrees, use Orca on top of an already configured Codex, Claude Code, OpenCode, or OMP. Orca itself does not replace provider setup.
- 7
Test the connection with a short prompt: Reply only OK. Then test reading the current folder without changing files.
- 8
Separately attach a small PNG/JPEG and ask what it contains. A text-only OK does not prove the client sent the image to the API.
- 9
For long coding tasks, keep one key per project, avoid unnecessary model switching, and exclude node_modules, dist, logs, and dumps from context.
ApiClo accepts OpenAI image_url and Anthropic image blocks. Some IDE and harness clients treat an unknown custom model as text-only and remove the attachment before the request, so the capability must also be declared in the client.
- OpenCode v2:
capabilities: { tools: true, input: [text, image], output: [text] }. Kilo:modalities: { input: [text, image], output: [text] }. - DeepSeek Harness / Oh My Pi / OpenClaw:
input: [text, image]on every model. - Crush:
model add ... --supports-images true. - VS Code native:
vision: true. Continue: enable image input/vision in the model entry used by your version. - Claude Code / Codex: a separate model capability flag is normally unnecessary; attach the file using the native button/command and verify the selected model is vision-capable.
- Aider:
/add image.png,/pasteor launch with the image filename. - Cline / Roo / Cursor / Trae / Goose / Open WebUI: select a vision-capable custom model; if the UI offers Supports images, Vision, or Attachments, enable it.
- Orca: inherits image support from the child CLI it launches; configure vision there first.
Do not add image capability to a text-only model: the client will send the attachment, but upstream will reject it. Test in a new session with a small image and an explicit question about a visible object or text.
IDE agents such as Cline, Kilo, Roo, and Continue often send a system prompt, tool schema, diff, terminal output, and file list. This is normal for coding-agent mode, but these requests cost more than plain chat.
- Start regular coding with Sonnet; use Opus for hard reasoning, architecture review, and difficult bugs.
- Ask the agent to read specific files and folders instead of the whole project. Keep node_modules, dist, logs, dumps, huge JSON/CSV files, and binaries out of context.
- In Continue, keep maxTokens around 1800-4096 for normal chat/edit/apply, and raise it only when a long answer is actually needed.
- For Hermes, keep long work in one chat and avoid unnecessary model switching: memory, cache, and task history work better that way.
In Continue, SDKs, curl, and raw OpenAI-compatible API calls, use the exact id from /v1/models, such as claude-sonnet-5 or claude-opus-4-8. Do not add apiclaude/ before the model id when the client asks for model. Some UIs, such as Kilo, may show provider/model inside their own interface; that is not always the string for direct API calls.
VS Code plugins
For Cline, Roo, and Kilo, use an OpenAI-compatible profile with the /v1 Base URL by default. Use Anthropic Messages only as a native/advanced mode when the client explicitly calls /v1/messages.
Cline
Good for autonomous coding tasks in VS Code. ApiClo can be connected in two ways.
Option A: OpenAI Compatible
- 1
Install Cline from the VS Code Marketplace and open Settings / API Configuration.
- 2
Select OpenAI Compatible as API Provider.
- 3
Set the full Base URL with /v1: https://apiclo.com/v1.
- 4
API Key: your sk-hub key. Model ID: claude-sonnet-5 or claude-opus-4-8.
- 5
Save the profile and first send the test: Reply only OK.
API Provider: OpenAI Compatible
Base URL: https://apiclo.com/v1
API Key: sk-hub-...
Model: claude-sonnet-5
Option B: Anthropic Messages for native mode
- 1
If your Cline build requires the Anthropic provider, enable Use custom base URL.
- 2
Custom Base URL: https://apiclo.com . Do not add /v1 here; Cline calls /v1/messages itself.
- 3
API Key: your sk-hub key. Model: claude-sonnet-5 or claude-opus-4-8.
- 4
If the Anthropic native mode is unstable, return to Option A OpenAI-compatible.
Provider: Anthropic
Custom Base URL: https://apiclo.com
Model: claude-sonnet-5
After saving, send: Reply only OK. Second test: Look at the current folder and say whether README.md exists; do not change anything.
Images: select a vision-capable model and enable Supports images/Vision if your Cline version exposes that toggle. Start a new task after changing it and attach a PNG with a text question.
Models 21 Model ID
Copy Model ID.
Claude
GPT
Roo Code
Roo Code uses almost the same setup as Cline, but the provider profile labels may differ.
- 1
Install Roo Code from VS Code Extensions and open the Roo Code panel.
- 2
Create an API key in ApiClo under API Keys.
- 3
Open API Configuration / Provider / Profile.
- 4
By default, choose an OpenAI-compatible profile: Base URL https://apiclo.com/v1 and an ApiClo model id.
- 5
Use Anthropic + custom base URL https://apiclo.com without /v1 only for native/advanced mode.
- 6
Save the profile, verify OK, then run a file task.
- 7
Second test: ask Roo to read the current folder and say whether README.md exists, without editing files.
OpenAI Compatible Base URL: https://apiclo.com/v1
Anthropic Custom Base URL: https://apiclo.com
Model: claude-opus-4-8
Images: enable Vision/Supports images in the model profile when available. If Roo hides the attachment before the request, verify the same model through OpenCode or Harness with an explicit capability.
Models 21 Model ID
Copy Model ID.
Claude
GPT
Kilo Code
For Kilo, use Custom Provider. Unlike Cline/Roo, the Base URL is usually entered with /v1.
- 1
Install Kilo Code from VS Code Extensions and open Settings / API Configuration.
- 2
Get an sk-hub API key in ApiClo -> API Keys.
- 3
Create a Custom Provider: Provider ID apiclaude, Display Name ApiClo.
- 4
For Claude models, choose Provider API: OpenAI Compatible and Base URL https://apiclo.com/v1 by default.
- 5
Use Provider API: Anthropic Messages only when Kilo explicitly needs native Messages mode.
- 6
Model ID: claude-sonnet-5, claude-opus-4-8, or claude-fable-5-1.
- 7
Save the provider and run two tests: Reply only OK; then read the project file list without edits.
Provider ID: apiclaude
Provider API: OpenAI Compatible
Base URL: https://apiclo.com/v1
Model ID: claude-sonnet-5
Images: set attachment: true and modalities with input [text, image], output [text] on the custom model. Without modalities, an unknown model is treated as text-only.
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
}
Models 21 Model ID
Copy Model ID.
Claude
GPT
Continue
Continue is configured through config.yaml. Give the model chat, edit, apply, and summarize roles.
- 1
Install Continue and open the configuration: Continue -> Settings -> Open config.yaml.
- 2
Save the old config.yaml before replacing it if you already have custom models.
- 3
Paste the block below and replace YOUR_API_KEY with your sk-hub key.
- 4
Restart Continue or run Reload Window in the IDE.
- 5
Test chat, edit, and apply on a small file before a heavy task.
~/.continue/config.yaml
name: ApiClo
version: 1.0.0
schema: v1
models:
- name: Claude Sonnet 5
provider: openai
model: claude-sonnet-5
apiBase: https://apiclo.com/v1
apiKey: YOUR_API_KEY
capabilities:
- tool_use
roles:
- chat
- edit
- apply
- summarize
defaultCompletionOptions:
temperature: 0
context:
- provider: code
- provider: docs
- provider: diff
- provider: terminal
- provider: problems
- provider: folder
- provider: codebase
This example does not impose hard contextLength or maxTokens values. Continue uses the selected model's capabilities and shows the active configuration in Continue Console → Options.
In a long Agent session, click Compact conversation, the converging-arrows icon under the latest response. Once context reaches 60%, the same action is available from the context indicator beside the input. Continue keeps a technical summary and sends it with only the newer turns. This compacts history rather than truncating the active task. After compaction, inspect the next request in Continue Console: it should contain the summary and only newer turns, not hundreds of old tool_result blocks.
If Continue rejects provider: openai, use its OpenAI-compatible/custom provider with the same apiBase/apiKey/model. For model, use claude-sonnet-5 or claude-opus-4-8 without the apiclaude/ prefix.
Images: enable image input/vision for the selected custom model in your Continue version. If the field is unavailable, update Continue; a text-only request does not verify attachment delivery.
Models 21 Model ID
Copy Model ID.
Claude
GPT
VS Code native BYOK
For VS Code built-in Custom Endpoint, add models to the user configuration file.
- 1
Open the VS Code User settings folder and create chatLanguageModels.json if it does not exist.
- 2
Paste the JSON below and replace YOUR_API_KEY with your sk-hub key.
- 3
Check that url ends with /v1/chat/completions.
- 4
Run Developer: Reload Window.
- 5
In VS Code chat, choose Claude Sonnet 5 and send the test Reply only OK.
%APPDATA%\Code\User\chatLanguageModels.json
[
{
"name": "ApiClo",
"vendor": "customendpoint",
"apiKey": "YOUR_API_KEY",
"apiType": "chat-completions",
"models": [
{
"id": "claude-sonnet-5",
"name": "Claude Sonnet 5",
"url": "https://apiclo.com/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 1000000,
"maxOutputTokens": 64000,
"streaming": true
},
{
"id": "claude-opus-4-8",
"name": "Claude Opus 4.8",
"url": "https://apiclo.com/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 1000000,
"maxOutputTokens": 64000,
"streaming": true
}
]
}
]
Developer: Reload Window
Models 21 Model ID
Copy Model ID.
Claude
GPT
IDE and desktop clients
Clients with OpenAI-compatible settings use the same Base URL + API key pair.
Cursor
Use Cursor-safe IDs so Cursor does not replace them with built-in model names.
- 1
Open Cursor Settings → Models → API Keys and save your ApiClo sk-hub key under OpenAI API Key.
- 2
Enable Override OpenAI Base URL and enter exactly https://apiclo.com/v1.
- 3
Add one of the exact custom IDs below. They appear in /v1/models and use the same routing, fallback, and billing as the original model.
- 4
Select the exact apiclo-* entry, not Cursor's built-in GPT-5.6 Sol or Claude entry.
- 5
The setup is the same on macOS and Windows. Cursor Tab and other specialized features may continue to use Cursor's own models.
- 6
Send Reply only OK. If the request does not appear in ApiClo Logs, update Cursor and verify that the selected model is the custom apiclo-* entry.
OpenAI Base URL: https://apiclo.com/v1
OpenAI API Key: sk-hub-...
Model: apiclo-gpt-5-6-sol
Select a vision-capable custom model and enable Supports images / Vision / Attachments if your Cursor version exposes that switch. If the custom model has no attachment button, that is a client limitation; use OpenCode, Harness, OMP, or Crush with an explicit capability flag.
ApiClo supports both /v1/chat/completions and /v1/responses for these IDs. If an error remains, send support the new Cursor Request ID and exact UTC time.
Models 21 Model ID
Copy Model ID.
Claude
GPT
Trae
Trae connects through Settings -> Models -> Add Model -> Custom Config.
- 1
Install Trae and sign in; otherwise the Models section may be hidden.
- 2
Open Settings -> Models -> Add Model -> Custom Config.
- 3
For Claude, choose API Format Anthropic Messages, URL https://apiclo.com or https://apiclo.com/v1 if Trae asks for the full /v1 endpoint.
- 4
For OpenAI Completions, use https://apiclo.com/v1 and model id claude-sonnet-5.
- 5
Paste the API Key, save the model, and run the Reply only OK test.
- 6
If Trae shows an empty answer, reduce max output and check the exact API Format.
API Format: OpenAI Completions
Custom Request URL: https://apiclo.com/v1
Model ID: claude-sonnet-5
Images: select a vision-capable model and enable multimodal/vision/attachments in Custom Config if Trae exposes that option. After saving, always run a separate image + text test.
Models 21 Model ID
Copy Model ID.
Claude
GPT
Open WebUI / LibreChat
Connect ApiClo as an OpenAI-compatible provider.
- 1
Open provider admin settings or the env configuration for your self-hosted UI.
- 2
Choose an OpenAI-compatible provider.
- 3
Set OPENAI_API_BASE_URL=https://apiclo.com/v1 and OPENAI_API_KEY=sk-hub-...
- 4
Add DEFAULT_MODEL=claude-sonnet-5 or choose the model in the UI.
- 5
Restart the UI container/process and send a short test.
OPENAI_API_BASE_URL=https://apiclo.com/v1
OPENAI_API_KEY=sk-hub-...
DEFAULT_MODEL=claude-sonnet-5
Images: in Open WebUI or LibreChat enable vision capability on the custom model/connection. Having an API route alone does not make the UI attach a file.
If the UI adds /v1 itself, use root https://apiclo.com or remove the extra /v1 from the setting.
Models 21 Model ID
Copy Model ID.
Claude
GPT
CLI and terminal agents
For CLI tools, it is especially important not to mix OpenAI-compatible and Anthropic-compatible variables.
OpenCode v2
Recommended quick path: the custom provider lives in opencode.json, and vision is declared in model capabilities.
- 1
Install OpenCode v2 from the official guide: macOS/Linux — npm install -g @opencode/cli; Windows — use the standalone CLI binary from OpenCode.
- 2
Create opencode.json in the project root and paste the configuration below.
- 3
Set APICLO_API_KEY in the OpenCode process environment; do not put the key in the project config.
- 4
Declare each model's actual capabilities. OpenCode v2 assumes text+image for an unknown model, but that is a fallback assumption, not an API check.
- 5
Run opencode, verify a short text response, then attach a small PNG/JPEG and ask it to read visible text.
macOS / Linux:
npm install -g @opencode/cli
{
"$schema": "https://opencode.ai/config.json",
"providers": {
"apiclaude": {
"name": "ApiClo",
"env": ["APICLO_API_KEY"],
"package": "@opencode/ai/providers/openai-compatible",
"settings": {
"baseURL": "https://apiclo.com/v1"
},
"models": {
"gpt-6-astra": {
"name": "GPT 6 Astra",
"capabilities": {
"tools": true,
"input": ["text", "image"],
"output": ["text"]
},
"limit": {
"context": 200000,
"output": 128000
}
},
"claude-fable-5-1": {
"name": "Claude Fable 5.1",
"capabilities": {
"tools": true,
"input": ["text", "image"],
"output": ["text"]
},
"limit": {
"context": 1000000,
"output": 128000
}
}
}
}
},
"model": "apiclaude/gpt-6-astra"
}
opencode
This example targets OpenCode v2. Declare actual capabilities for other models; the v1 config is not interchangeable. On Windows, download the standalone binary below. OpenCode v2
Models 21 Model ID
Copy Model ID.
Claude
GPT
DeepSeek Harness
Harness supports ApiClo as a custom OpenAI-compatible provider. Image input is enabled separately on each model.
- 1
Install DeepSeek Harness from its official instructions. In Settings → Models choose Add model provider → Custom model API.
- 2
Provider ID: apiclo; Display name: ApiClo; Base URL: https://apiclo.com/v1; API protocol: openai-completions.
- 3
Use the APICLO_API_KEY environment variable. If Fetch available models does not list an ID, add the model manually; configure its input types separately.
- 4
In Model options enable Text and Image. In the profile this is input: [text, image] on that model.
- 5
The change applies to the next request without a restart. If a problematic image remains in the session history, create a new session.
- 6
Test text first, then PNG/JPEG. If Harness says model does not support images before the request, the capability still is not saved on the selected model.
For the standard dsh web launch, use $DSH_HOME/profiles/web/cordis.patch.yml; replace web with your profile name otherwise. Preserve other entries when editing an existing file.
$DSH_HOME/profiles/web/cordis.patch.yml
- id: llm-pi-ai
config:
providers:
apiclo:
apiKeyEnv: APICLO_API_KEY
api: openai-completions
baseURL: https://apiclo.com/v1
models:
- id: gpt-6-astra
input: [text, image]
- id: claude-fable-5-1
input: [text, image]
# macOS / Linux
export APICLO_API_KEY="sk-hub-..."
dsh web
# Windows PowerShell
$env:APICLO_API_KEY="sk-hub-..."
dsh web
Models 21 Model ID
Copy Model ID.
Claude
GPT
Claude Code
Claude Code usually expects an Anthropic-compatible base URL without /v1.
- 1
Check Node.js 18+: node --version.
- 2
Install Claude Code: npm install -g @anthropic-ai/claude-code@latest.
- 3
Check the install: claude --version.
- 4
For ApiClo, use ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL; ANTHROPIC_API_KEY is only for clients that require x-api-key.
- 5
Set CLAUDE_CODE_AUTO_COMPACT_WINDOW=180000 so Claude Code summarizes a long session before the 200k boundary. This does not limit response size.
- 6
First verify the gateway with a direct /v1/messages request, then start claude from the same shell session.
- 7
In Claude Code, run /status and confirm it shows the ApiClo base URL and active token source.
npm install -g @anthropic-ai/claude-code@latest
# macOS / Linux
export ANTHROPIC_AUTH_TOKEN="sk-hub-..."
export ANTHROPIC_BASE_URL="https://apiclo.com"
export ANTHROPIC_MODEL="claude-sonnet-5"
export CLAUDE_CODE_AUTO_COMPACT_WINDOW="180000"
claude
# Windows PowerShell
$env:ANTHROPIC_AUTH_TOKEN="sk-hub-..."
$env:ANTHROPIC_BASE_URL="https://apiclo.com"
$env:ANTHROPIC_MODEL="claude-sonnet-5"
$env:CLAUDE_CODE_AUTO_COMPACT_WINDOW="180000"
claude
~/.claude/settings.json
{
"env": {
"ANTHROPIC_BASE_URL": "https://apiclo.com",
"ANTHROPIC_AUTH_TOKEN": "sk-hub-...",
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "180000"
}
}
curl /v1/messages smoke
# macOS / Linux
curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d "{\"model\":\"$ANTHROPIC_MODEL\",\"max_tokens\":1,\"messages\":[{\"role\":\"user\",\"content\":\".\"}]}"
# Windows PowerShell
Invoke-RestMethod -Method Post -Uri "$($env:ANTHROPIC_BASE_URL)/v1/messages" `
-Headers @{ "Authorization" = "Bearer $env:ANTHROPIC_AUTH_TOKEN"; "anthropic-version" = "2023-06-01" } `
-ContentType "application/json" `
-Body (@{ model = $env:ANTHROPIC_MODEL; max_tokens = 1; messages = @(@{ role = "user"; content = "." }) } | ConvertTo-Json -Depth 4)
If the smoke returns JSON with msg_, the URL and key work. If it returns 401, the client sent the key with the wrong header; use ANTHROPIC_API_KEY only for an x-api-key scenario.
Images: in Claude Code attach a local file with the native command/button and select a vision-capable model. A separate provider flag is normally unnecessary, but an image + text smoke is required after changing the endpoint.
Models 21 Model ID
Copy Model ID.
Claude
GPT
Codex
Codex CLI and the IDE extension can use ApiClo through a custom provider in config.toml.
- 1
In the Codex IDE extension, open Codex Settings → Open config.toml; the CLI uses the same ~/.codex/config.toml.
- 2
Add the provider to the user-level config because project .codex/config.toml should not define provider/auth.
- 3
Set APICLAUDE_API_KEY to your sk-hub key. This variable name is chosen by env_key below.
- 4
Keep wire_api = responses: in current Codex this is the supported provider protocol.
- 5
Run codex in a test folder and verify Reply only OK.
~/.codex/config.toml
model = "claude-sonnet-5"
model_provider = "apiclaude"
[model_providers.apiclaude]
name = "ApiClo"
base_url = "https://apiclo.com/v1"
env_key = "APICLAUDE_API_KEY"
wire_api = "responses"
APICLAUDE_API_KEY env
# macOS / Linux
export APICLAUDE_API_KEY="sk-hub-..."
codex
# Windows PowerShell
$env:APICLAUDE_API_KEY="sk-hub-..."
codex
If Codex rejects the provider config, update Codex first. Do not switch wire_api to Chat Completions: current Codex docs describe responses as the supported provider protocol.
Images: in the IDE extension attach the image through the composer; in CLI provide the local path using the native flow. Test an image + text request separately: provider configuration alone does not prove delivery of the attachment.
Models 21 Model ID
Copy Model ID.
Claude
GPT
OpenClaw
OpenClaw can be connected through models.json with two provider modes.
- 1
Install OpenClaw for your platform and check openclaw --version.
- 2
Find the OpenClaw models file or create models.json in the config folder.
- 3
For Claude Messages mode, use provider apiclaude-messages with baseUrl https://apiclo.com.
- 4
For OpenAI Completions mode, use provider apiclaude-openai with baseUrl https://apiclo.com/v1.
- 5
Add input: [text, image] to every vision model, otherwise OpenClaw passes only a text media reference or omits the image.
- 6
Replace apiKey with an sk-hub key and run separate text, tool, and image tests in a project.
{
"models": {
"mode": "merge",
"providers": {
"apiclaude-messages": {
"baseUrl": "https://apiclo.com",
"apiKey": "sk-hub-...",
"auth": "token",
"api": "anthropic-messages",
"models": [
{
"id": "claude-sonnet-5",
"name": "claude-sonnet-5",
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 64000
}
]
},
"apiclaude-openai": {
"baseUrl": "https://apiclo.com/v1",
"apiKey": "sk-hub-...",
"auth": "token",
"api": "openai-completions",
"models": [
{ "id": "claude-opus-4-8", "name": "claude-opus-4-8", "input": ["text", "image"] }
]
}
}
}
}
Models 21 Model ID
Copy Model ID.
Claude
GPT
Qwen Code
If Qwen Code is installed as an OpenAI-compatible client, OPENAI_* variables are enough.
- 1
Check Node.js: node --version.
- 2
Install Qwen Code: npm install -g @qwen-code/qwen-code@latest.
- 3
Check qwen --version and qwen --help.
- 4
For OpenAI-compatible mode, set OPENAI_API_KEY, OPENAI_BASE_URL, and OPENAI_MODEL.
- 5
If your Qwen Code build supports Anthropic env, you can use ANTHROPIC_AUTH_TOKEN + https://apiclo.com for Claude models.
- 6
Use images only if the installed Qwen Code version exposes attachment/image input for a custom endpoint; otherwise the client may send text only.
- 7
Run qwen and perform the OK/read-only test.
npm install -g @qwen-code/qwen-code@latest
export OPENAI_API_KEY="sk-hub-..."
export OPENAI_BASE_URL="https://apiclo.com/v1"
export OPENAI_MODEL="claude-sonnet-5"
qwen
$env:OPENAI_API_KEY="sk-hub-..."
$env:OPENAI_BASE_URL="https://apiclo.com/v1"
$env:OPENAI_MODEL="claude-sonnet-5"
qwen
Models 21 Model ID
Copy Model ID.
Claude
GPT
Aider
Aider works through OpenAI-compatible variables.
- 1
Install Aider: python -m pip install -U aider-chat.
- 2
Open a terminal in a git project where test edits are safe.
- 3
Set OPENAI_API_BASE and OPENAI_API_KEY.
- 4
Run aider --model openai/claude-sonnet-5.
- 5
For an image, run /add image.png or /paste, then ask a text question; the selected model must support vision.
- 6
First ask it to explain a file; only allow edits after the connection is verified.
python -m pip install -U aider-chat
OPENAI_API_BASE=https://apiclo.com/v1
OPENAI_API_KEY=sk-hub-...
aider --model openai/claude-sonnet-5
Models 21 Model ID
Copy Model ID.
Claude
GPT
Oh My Pi (OMP)
OMP connects through ~/.omp/agent/models.yml. Vision capability is declared with the model input field.
- 1
Install OMP with curl -fsSL https://omp.sh/install | sh; on Windows PowerShell use irm https://omp.sh/install.ps1 | iex.
- 2
Create ~/.omp/agent/models.yml and add the apiclo custom provider.
- 3
Set apiKey to the APICLO_API_KEY variable name instead of putting the secret in a repository.
- 4
Keep input: [text, image] on vision models: OMP checks this field before sending an attachment.
- 5
Run omp models find apiclo, then omp and test text, tools, and a separate image.
~/.omp/agent/models.yml
providers:
apiclo:
baseUrl: https://apiclo.com/v1
api: openai-completions
apiKey: APICLO_API_KEY
models:
- id: gpt-6-astra
name: GPT 6 Astra
input: [text, image]
contextWindow: 200000
maxTokens: 128000
- id: claude-fable-5-1
name: Claude Fable 5.1
input: [text, image]
contextWindow: 1000000
maxTokens: 128000
export APICLO_API_KEY="sk-hub-..."
omp models find apiclo
Models 21 Model ID
Copy Model ID.
Claude
GPT
Pi
Pi supports custom OpenAI-compatible models through models.json; declare image capability explicitly.
- 1
Install Pi using its official instructions and create ~/.pi/agent/models.json.
- 2
Set APICLO_API_KEY in the environment; do not store the key in a project file.
- 3
In /model, select apiclo/gpt-6-astra or apiclo/claude-fable-5-1.
- 4
Test a short text request, a tool call, and a separate image with a text question. Declaring input: image alone does not prove delivery.
~/.pi/agent/models.json
{
"providers": {
"apiclo": {
"baseUrl": "https://apiclo.com/v1",
"api": "openai-completions",
"apiKey": "$APICLO_API_KEY",
"models": [
{ "id": "gpt-6-astra", "input": ["text", "image"], "contextWindow": 200000 },
{ "id": "claude-fable-5-1", "input": ["text", "image"], "contextWindow": 1000000 }
]
}
}
}
Models 21 Model ID
Copy Model ID.
Claude
GPT
Kimi Code
Kimi Code accepts a custom OpenAI-compatible provider; ApiClo compatibility is still undergoing our test matrix.
- 1
Install Kimi Code and open ~/.kimi-code/config.toml; preserve your existing settings.
- 2
Set APICLO_API_KEY in the environment and add an openai provider with a /v1 base URL.
- 3
Register the required model with image_in and tool_use, then select it in the client.
- 4
Test text, tools, reasoning, and images separately. Do not treat this integration as validated for autonomous tasks until the tests pass.
~/.kimi-code/config.toml
[providers.apiclo]
type = "openai"
base_url = "https://apiclo.com/v1"
api_key_env = "APICLO_API_KEY"
[models."apiclo/gpt-6-astra"]
provider = "apiclo"
model = "gpt-6-astra"
max_context_size = 200000
capabilities = ["image_in", "tool_use"]
Models 21 Model ID
Copy Model ID.
Claude
GPT
Orca
Orca manages multiple CLI agents and isolated git worktrees. It does not replace the child agent's provider configuration.
- 1
First configure one working ApiClo executor: Codex, Claude Code, OpenCode, or OMP, including a separate vision test.
- 2
Install Orca Desktop/ADE from the official release for your OS and open the target git repository.
- 3
Add the already configured CLI as an agent runtime. The ApiClo key stays in the CLI's secure store or environment, not in Orca project files.
- 4
Use a separate worktree per agent for parallel work and cap the number of concurrent workers.
- 5
Send images to the specific child CLI session. Support is determined by that CLI's model capability: OpenCode modalities, Harness/OMP input, or Crush supports-images.
Orca is an orchestrator, not an OpenAI-compatible provider. Do not put the Base URL and API key into Orca instead of configuring Codex/OpenCode/OMP.
Crush
Crush supports OpenAI-compatible providers and a per-model supports-images flag.
- 1
Install current Crush and open the global crushrc at ~/.config/crush/crushrc or %USERPROFILE%\.config\crush\crushrc.
- 2
Add an apiclo provider of type openai-compat and disable automatic addition of unknown models.
- 3
Register each model with model add and set --supports-images true only for vision models.
- 4
Select the large model with model large and start Crush in a test project.
- 5
On Windows, include a text question with the image: some Crush versions reject an image-only prompt.
~/.config/crush/crushrc
provider add apiclo \
--name "ApiClo" \
--type openai-compat \
--base-url "https://apiclo.com/v1" \
--api-key "$APICLO_API_KEY" \
--discover-models false
model add apiclo/gpt-6-astra \
--name "GPT 6 Astra" \
--context-window 200000 \
--default-max-tokens 128000 \
--can-reason true \
--supports-images true
model large apiclo/gpt-6-astra
Models 21 Model ID
Copy Model ID.
Claude
GPT
Goose
Goose supports custom OpenAI-compatible providers in Desktop and CLI. Verify image capability in the installed version with a separate test.
- 1
Open Settings → Models → Configure providers → Add Custom Provider.
- 2
Provider Type: OpenAI Compatible; Display Name: ApiClo; API URL: https://apiclo.com/v1/chat/completions.
- 3
Enable Authentication, save the sk-hub key, and add gpt-6-astra and claude-fable-5-1.
- 4
Enable Streaming Support and verify a short text request.
- 5
The current Goose custom-provider screen has no universal per-model vision flag. If the attachment button is hidden or the file is removed before the request, use OpenCode, Harness, OMP, or Crush where the capability is explicit.
API URL: https://apiclo.com/v1/chat/completions
Models: gpt-6-astra, claude-fable-5-1
Models 21 Model ID
Copy Model ID.
Claude
GPT
Gemini CLI
Gemini CLI is not a good direct ApiClo target right now unless your build lets you set a custom OpenAI/Anthropic endpoint.
- 1
First check whether your Gemini CLI version has a custom base URL setting.
- 2
If custom endpoint is unavailable, do not try to override Google system variables: use Cline, Roo, Kilo, or Qwen Code.
- 3
If a custom OpenAI-compatible endpoint is available, use Base URL https://apiclo.com/v1, sk-hub API key, and model claude-sonnet-5.
- 4
Verify images with a separate test: the custom endpoint must receive an image part, not only a local path. If that Gemini CLI version cannot do this, use OpenCode, Harness, OMP, or Crush.
- 5
After setup, run only a read-only test. If the client still calls the Google endpoint, switch to a supported CLI.
Recommended alternative: Qwen Code, Cline, Roo Code, Kilo Code
Agents and local router
For managed agents, use the ApiClo interface rather than free models in external API.
Hermes Agent
Built-in Hermes lives inside ApiClo: balance, model, memory, and history are managed from Agents.
- 1
Open Agents and choose Hermes.
- 2
Choose a model from the paid list: claude-sonnet-5, claude-opus-4-8, claude-sonnet-4-6.
- 3
For web pages, enable web context in chat; the URL will be read through the ApiClo reader/browser fallback.
- 4
For an image, use the composer attachment and a vision-capable model; after upload ask a text question to distinguish real image input from a filename.
- 5
To let Hermes work with your computer, download Desktop Bridge, create a pairing code, and grant only the needed file or folder permissions.
- 6
For long tasks, avoid switching models mid-chain without a reason; it helps cache and context.
ApiClo Desktop / Local Router
The local router is useful when a client only talks to localhost or when you want to centralize the key on the machine.
- 1
Download ApiClo Desktop Bridge and run it on the same machine as the IDE/CLI.
- 2
Paste the upstream sk-hub key into Desktop Bridge.
- 3
Click Fetch models and make sure the model list loads.
- 4
Click Start router.
- 5
In the IDE/CLI, set Local Base URL http://127.0.0.1:18441/v1 and any non-empty client API key.
- 6
For images, enable the capability in the IDE/CLI itself: Desktop Router transparently forwards multipart/base64 image content but does not create an attachment button or declare vision for the client.
- 7
Test Reply only OK; if it does not answer, check that the local router is running and port 18441 is free.
Download Windows: https://apiclo.com/downloads/ApiCloDesktopBridge.exe
Python app: https://apiclo.com/downloads/desktop-bridge-app.pyw
Python script: https://apiclo.com/downloads/desktop-bridge.py
Local Base URL: http://127.0.0.1:18441/v1
Client API Key: any non-empty value
Upstream key in Desktop Bridge: sk-hub-...
Click Fetch models first, then Start router. In the IDE, use the local Base URL, not the public one.
Models 21 Model ID
Copy Model ID.
Claude
GPT
Raw API and SDKs
ApiClo accepts OpenAI-compatible, Anthropic-compatible, and Responses-style requests through public /v1.
OpenAI-compatible
Main route for IDEs, SDKs, and most self-hosted interfaces.
curl https://apiclo.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "Hi"}],
"max_tokens": 512,
"stream": true
}'
Anthropic-compatible
Use this for clients expecting Claude Messages API.
curl https://apiclo.com/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 512,
"messages": [{"role": "user", "content": "Hi"}]
}'
Responses API
Use this for clients that need the Responses wire API.
curl https://apiclo.com/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"input": "Write a short checklist for release QA."
}'
Python SDK
Good for scripts, backend jobs, and tests.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://apiclo.com/v1",
)
response = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Hi"}],
max_tokens=512,
)
print(response.choices[0].message.content)
JavaScript / TypeScript
Good for frontend-backed API routes and Node.js services.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.APICLAUDE_API_KEY,
baseURL: "https://apiclo.com/v1",
});
const response = await client.chat.completions.create({
model: "claude-sonnet-5",
messages: [{ role: "user", content: "Hi" }],
max_tokens: 512,
});
console.log(response.choices[0].message.content);
Verify before real work
First prove that the client is connected correctly. This takes a minute and saves money on broken IDE requests.
Open the model list with the same key used by the client. If it does not open, fix the key or Base URL first.
https://apiclo.com/v1/models
Send a short non-stream request: Reply only OK. This checks the key, model, and base chat route.
Reply only OK
If the client supports streaming, repeat the same short test with stream. This catches SSE issues before a large task.
stream: true
For an IDE agent, ask it to read the current folder and say whether README.md exists, without editing files.
Look at the current folder and say whether README.md exists. Do not change anything.
If the client uses tools, run a small read-only tool task before heavy coding. Success should include a normal answer, not an empty tool result.
Test long context only after basic checks pass. Start with specific files, not the whole repository.
Keys, usage, and logs
One balance can serve many clients, but separate keys by project make debugging and cost control easier.
Create a separate API key for each IDE, CLI, backend, or test environment. Then Usage and Logs show exactly what spent tokens.
Balance and top-up are in Dashboard. Detailed requests, tokens, cost, status, and errors are in Logs.
Coding extensions often send tool schemas, terminal output, diffs, history, file maps, and a large system prompt. This is normal agent behavior. To reduce spend, ask for specific files, exclude node_modules/dist/logs/dumps, and do not raise maxTokens without a reason.
If you stop a stream after the model has started replying, part of the request may already be counted. Do not blindly retry file-changing tool calls; check Logs and file state first.
After a valid registration through a referral link, the invited user receives one free spin. The referrer does not receive a registration spin; referral rewards are 10% from the first level and 3% from the second level under the referral program rules. Quest spins use a separate prize pool. Every spin wins non-withdrawable ApiClo service credit; current odds are always published in the full rules.
Models
For IDE and API, use paid model IDs. Leave free aliases to web chat.
GPT 6.1 Sol · API / IDE / Hermes / Web
Same input, output and prompt-cache rates as GPT 6 Sol. See the price table below.
- API / IDE — Use your API key and select gpt-6.1-sol. Send requests to /v1/chat/completions or /v1/responses using the examples below.
- Web Chat — Open the model picker, choose GPT 6.1 Sol and send a message. The effort selector defaults to high.
- Hermes — Choose GPT 6.1 Sol in the agent model settings or chat model picker, then run your task. Tools use the same API route.
Select gpt-6.1-sol explicitly. ApiClo defaults to high and preserves low, medium, high, xhigh or max. none and minimal are unsupported. Text and image inputs are supported. Existing GPT 6 Sol remains a separate model.
For IDE and agent tools, use ApiClo Chat Completions or Responses. ApiClo translates Chat tools to upstream Responses. Return each result with its original tool_call_id or call_id and keep the conversation order. The subscription provider controls the output limit.
{"model":"gpt-6.1-sol","reasoning_effort":"high","messages":[{"role":"user","content":"Hello"}],"stream":true}
{"model":"gpt-6.1-sol","reasoning":{"effort":"high"},"input":"Hello","stream":true}
Claude Sonnet 5.5 · API / Hermes / Web
Use claude-sonnet-5-5. Effort: low, medium, high (default), xhigh or max. Native Messages supports adaptive thinking or between_tools with low/medium/high. Manual thinking budgets, disabled thinking, forced tool choice and assistant prefilling are unsupported. Keep signed thinking blocks and the preceding conversation unchanged in tool loops; do not move these blocks to another model. Use default sampling settings. Claude Code clients require version 2.1.284 or newer.
claude-sonnet-5-5
| Model ID | Recommended for | Provider context | Provider output | ApiClo output | Tools | Vision | Notes |
|---|---|---|---|---|---|---|---|
claude-opus-5-5 |
Medium effort by default; same price as Opus 5 | 1M | 128k | 128k max · 64k default | yes | yes | Use the exact model ID |
gpt-6-sol |
High effort by default; same price as Sol 5.6 | 1.05M | 128k | 128k max · 64k default | yes | client-dependent | Use the exact model ID |
gpt-6-luna |
One tenth of the Sol price | 1.05M | 128k | 128k max · 64k default | yes | client-dependent | Use the exact model ID |
gpt-6-astra |
high effort by default; ApiClo input up to 200k | 1.05M | 128k | Responses: provider-managed output limit | yes | client-dependent | Use the exact model ID |
claude-fable-5-1 |
latest Fable version | 1M | 128k | 128k max · 64k default | yes | yes | Use the exact model ID |
gpt-5-6-sol |
flagship preview route | 1.05M | 128k | 128k max · 64k default | yes | client-dependent | Use the exact model ID |
claude-opus-5 |
new flagship route | 1M | 128k | 128k max · 64k default | yes | yes | Use the exact model ID |
claude-sonnet-5-5 |
High effort by default; adaptive thinking | 1M | 128k | 128k max · 64k default | yes | yes | Use the exact model ID |
claude-sonnet-5 |
balanced paid route | 1M | 128k | 128k max · 64k default | yes | yes | Use the exact model ID |
gpt-5-6-terra |
balanced preview route | 1.05M | 128k | 128k max · 64k default | yes | client-dependent | Use the exact model ID |
gpt-5-6-luna |
fast preview route | 1.05M | 128k | 128k max · 64k default | yes | client-dependent | Use the exact model ID |
claude-fable-5 |
previous Fable version | 1M | 128k | 128k max · 64k default | yes | yes | Use the exact model ID |
claude-opus-4-8 |
strong coding and reasoning | 1M | 128k | 128k max · 64k default | yes | yes | Use the exact model ID |
claude-opus-4-7 |
strong coding and reasoning | 1M | 128k | 128k max · 64k default | yes | yes | Use the exact model ID |
claude-sonnet-4-6 |
stable default | 1M | 128k | 128k max · 64k default | yes | yes | Use the exact model ID |
gpt-5-5 |
GPT paid route | 1.05M | 128k | 128k max · 64k default | yes | client-dependent | Use the exact model ID |
claude-haiku-4-5 |
fast and cheaper | 200k | 64k | 64k | yes | yes | Use the exact model ID |
claude-opus-4-6 |
legacy strong route | 1M | 128k | 128k max · 64k default | yes | yes | Use the exact model ID |
claude-sonnet-4-5 |
stable fallback | 200k | 64k | 64k | yes | yes | Use the exact model ID |
claude-opus-4-5 |
legacy strong route | 200k | 64k | 64k | yes | yes | Use the exact model ID |
gpt-6.1-sol |
High by default; tools through Responses | 1.05M | 128k | Provider-managed output limit | yes | client-dependent | Use the exact model ID |
Context and provider output are the model's official limits. ApiClo no longer applies the old 128k/184k input-token cap: requests are bounded by the selected model's window and the general safe request-size limit. The public API uses a safe 64k output-token default; a client can explicitly request up to 128k on models whose provider limit supports it. On fallback, ApiClo automatically clamps the request to the actual target model's maximum.
Model and prompt-cache pricing
All values are USD per 1 million tokens. Cache rates apply only to tokens explicitly reported by the provider as cache writes or cache reads.
To compare API costs with prompt caching, use the same token mix for every model. The example below uses 1 million total tokens: 400,000 regular input, 400,000 cache-read input, and 200,000 output. The no-cache comparison uses 800,000 regular input and 200,000 output. This is an illustrative scenario, not an observed customer average or a ranking of API providers. Cache writes and refreshes cost extra; your actual price depends on cache hits and model usage.
Formula per 1M total tokens: 0.4 × regular input rate + 0.4 × cache-read rate + 0.2 × output rate.
| Model | Regular input | Cache read | Cache write | Output | Example per 1M total tokens: with / without cache |
|---|---|---|---|---|---|
Claude Opus 5.5claude-opus-5-5 |
$0.40 | $0.04 · 0.10× |
$0.50 · 1.25× · 5 min $0.80 · 2.00× · 1 h |
$0.40 | $0.256 vs $0.400 |
GPT 6 Solgpt-6-sol |
$0.40 | $0.04 · 0.10× | $0.50 · 1.25× | $0.40 | $0.256 vs $0.400 |
GPT 6 Lunagpt-6-luna |
$0.04 | $0.004 · 0.10× | $0.05 · 1.25× | $0.04 | $0.026 vs $0.040 |
GPT 6 Astragpt-6-astra |
$0.60 | $0.12 · 0.20× | $0.75 · 1.25× | $0.60 | $0.408 vs $0.600 |
Claude Fable 5.1claude-fable-5-1 |
$1.20 | $0.16 · 0.13× |
$1.50 · 1.25× · 5 min $2.40 · 2.00× · 1 h |
$1.20 | $0.784 vs $1.200 |
GPT 5.6 Solgpt-5-6-sol |
$0.40 | $0.04 · 0.10× | $0.50 · 1.25× | $0.40 | $0.256 vs $0.400 |
Claude Opus 5claude-opus-5 |
$0.40 | $0.04 · 0.10× |
$0.50 · 1.25× · 5 min $0.80 · 2.00× · 1 h |
$0.40 | $0.256 vs $0.400 |
Claude Sonnet 5.5claude-sonnet-5-5 |
$0.35 | $0.035 · 0.10× |
$0.4375 · 1.25× · 5 min $0.70 · 2.00× · 1 h |
$0.35 | $0.224 vs $0.350 |
Claude Sonnet 5claude-sonnet-5 |
$0.38 | $0.038 · 0.10× |
$0.475 · 1.25× · 5 min $0.76 · 2.00× · 1 h |
$0.38 | $0.243 vs $0.380 |
GPT 5.6 Terragpt-5-6-terra |
$0.30 | $0.03 · 0.10× | $0.375 · 1.25× | $0.30 | $0.192 vs $0.300 |
GPT 5.6 Lunagpt-5-6-luna |
$0.19 | $0.019 · 0.10× | $0.238 · 1.25× | $0.19 | $0.122 vs $0.190 |
Claude Fable 5claude-fable-5 |
$0.80 | $0.08 · 0.10× |
$1.00 · 1.25× · 5 min $1.60 · 2.00× · 1 h |
$0.80 | $0.512 vs $0.800 |
Claude Opus 4.8claude-opus-4-8 |
$0.40 | $0.04 · 0.10× |
$0.50 · 1.25× · 5 min $0.80 · 2.00× · 1 h |
$0.40 | $0.256 vs $0.400 |
Claude Opus 4.7claude-opus-4-7 |
$0.29 | $0.029 · 0.10× |
$0.363 · 1.25× · 5 min $0.58 · 2.00× · 1 h |
$0.29 | $0.186 vs $0.290 |
Claude Sonnet 4.6claude-sonnet-4-6 |
$0.32 | $0.032 · 0.10× |
$0.40 · 1.25× · 5 min $0.64 · 2.00× · 1 h |
$0.32 | $0.205 vs $0.320 |
ChatGPT 5.5gpt-5-5 |
$0.40 | $0.04 · 0.10× | — | $0.40 | $0.256 vs $0.400 |
Claude Haiku 4.5claude-haiku-4-5 |
$0.32 | $0.032 · 0.10× |
$0.40 · 1.25× · 5 min $0.64 · 2.00× · 1 h |
$0.32 | $0.205 vs $0.320 |
Claude Opus 4.6claude-opus-4-6 |
$0.29 | $0.029 · 0.10× |
$0.363 · 1.25× · 5 min $0.58 · 2.00× · 1 h |
$0.29 | $0.186 vs $0.290 |
Claude Sonnet 4.5claude-sonnet-4-5 |
$0.32 | $0.032 · 0.10× |
$0.40 · 1.25× · 5 min $0.64 · 2.00× · 1 h |
$0.32 | $0.205 vs $0.320 |
Claude Opus 4.5claude-opus-4-5 |
$0.40 | $0.04 · 0.10× |
$0.50 · 1.25× · 5 min $0.80 · 2.00× · 1 h |
$0.40 | $0.256 vs $0.400 |
GPT 6.1 Solgpt-6.1-sol |
$0.40 | $0.04 · 0.10× | $0.50 · 1.25× | $0.40 | $0.256 vs $0.400 |
Cache reads cost 2/15 of the input rate (about 13.33%) for Claude Fable 5.1, 20% for GPT 6 Astra, and 10% for other models in the current catalog. Five-minute cache writes cost 125%, and Claude one-hour writes cost 200%. If the provider reports no cache-read or cache-write tokens, no cache amount is charged for that category. Automatic fallback keeps the tariff of the model selected by the customer.
Claude reports regular input, cache reads, and cache writes as separate, mutually exclusive provider-usage categories. A request can therefore show zero regular input while the prompt appears under cache read or cache write; those input tokens are not missing. A coding client can create cache again when it changes the cached prefix or sends new cache_control blocks itself.
The exact calculation, cache-read/cache-write token counts, and applied rates for each request are available in Logs → Why charged?
Jev · typed decisions API (beta)
Jev evaluates state and returns typed noul, choice, or score answers. It is not a chat model: /chat/completions, /responses, /messages, streaming, tools, and prose generation are unsupported.
Model ID: jev-latest · POST: https://apiclo.com/v1/decisions · compatible alias https://apiclo.com/v1/systemone · GET: https://apiclo.com/v1/models?type=decision
ApiClo price: $0.0525 per 1M input tokens; output tokens appear in usage but cost $0. Venice beta. Limits: state plus the longest question up to 32K tokens; state plus all questions up to 64K tokens. Evaluate decision quality on your own data.
Send Authorization: Bearer with your ApiClo key, Content-Type: application/json, and a unique Idempotency-Key (8–128 printable ASCII characters) for each logical request. Repeating the same key and body returns the saved answer; a timeout is never automatically resent.
curl -X POST https://apiclo.com/v1/decisions \
-H 'Authorization: Bearer YOUR_APICLO_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: ticket-123-v1' \
-d '{"model":"jev-latest","state":"Payout failed","questions":{"urgent":{"type":"noul","instructions":"Is this urgent?"}}}'
Choice example: {"model":"jev-latest","state":{"ticket":"Duplicate charge"},"questions":{"team":{"type":"choice","instructions":"Which team?","criteria":{"billing":"Payments","technical":"Bugs"}}}}
Score example: {"model":"jev-latest","state":"Service unavailable","questions":{"severity":{"type":"score","instructions":"How severe?","criteria":["Low","Medium","High"]}}}
The TypeSafe Python SDK uses TYPESAFE_BASE_URL=https://apiclo.com and TYPESAFE_API_KEY=your ApiClo key. Pass an Idempotency-Key through extra_headers and disable automatic retries with RetryPolicy(max_retries=0); the SDK calls /v1/systemone.
from typesafe_sdk import Noul, RetryPolicy, TypeSafeClient
with TypeSafeClient(retry=RetryPolicy(max_retries=0)) as client:
result = client.system_one(
"Payout failed three times",
{"urgent": Noul(instructions="Is this urgent?")},
extra_headers={"Idempotency-Key": "ticket-123-v1"},
)
Errors: invalid_decision_request — fix the JSON; balance_too_low — top up ApiClo; provider_credit_exhausted — temporary provider credit issue, no ApiClo charge; provider_rate_limited — Venice limit; provider_completion_unknown — outcome unknown, keep the Idempotency-Key; provider_response_unverified — invalid answer or usage, no charge.
claude-opus-5-5
Medium effort by default; same price as Opus 5 · 1M context · 128k provider output · 128k max · 64k default ApiClo output
gpt-6-sol
High effort by default; same price as Sol 5.6 · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
gpt-6-luna
One tenth of the Sol price · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
gpt-6-astra
high effort by default; ApiClo input up to 200k · 1.05M context · 128k provider output · Responses: provider-managed output limit ApiClo output
claude-fable-5-1
latest Fable version · 1M context · 128k provider output · 128k max · 64k default ApiClo output
gpt-5-6-sol
flagship preview route · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
claude-opus-5
new flagship route · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-sonnet-5-5
High effort by default; adaptive thinking · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-sonnet-5
balanced paid route · 1M context · 128k provider output · 128k max · 64k default ApiClo output
gpt-5-6-terra
balanced preview route · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
gpt-5-6-luna
fast preview route · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
claude-fable-5
previous Fable version · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-opus-4-8
strong coding and reasoning · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-opus-4-7
strong coding and reasoning · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-sonnet-4-6
stable default · 1M context · 128k provider output · 128k max · 64k default ApiClo output
gpt-5-5
GPT paid route · 1.05M context · 128k provider output · 128k max · 64k default ApiClo output
claude-haiku-4-5
fast and cheaper · 200k context · 64k provider output · 64k ApiClo output
claude-opus-4-6
legacy strong route · 1M context · 128k provider output · 128k max · 64k default ApiClo output
claude-sonnet-4-5
stable fallback · 200k context · 64k provider output · 64k ApiClo output
claude-opus-4-5
legacy strong route · 200k context · 64k provider output · 64k ApiClo output
gpt-6.1-sol
High by default; tools through Responses · 1.05M context · 128k provider output · Provider-managed output limit ApiClo output
GPT 6 Astra /v1/responses: max_output_tokens, max_completion_tokens and max_tokens are unsupported on the current route and are not forwarded. X-ApiClo-Ignored-Parameters lists these fields when present. They do not guarantee a maximum response length or cost. JSON and SSE preserve the complete response, history, tools and usage/cache. Billing uses actual usage, which may exceed the requested limit. Use balance and key-access settings for budgeting instead of these fields.
The route retains metadata and user locally for request history and billing, but does not forward them to the provider. Client-supplied fields are also listed in X-ApiClo-Ignored-Parameters. Message contents and tools are unchanged. The client cache key partitions the session and is converted into an attested route key, as with GPT-5.6.
If the client shows Model not found, open /models with your key first and check the exact id.
https://apiclo.com/v1/models
Troubleshooting
Common errors almost always come down to key, base URL, model id, or protocol mismatch.
Check that the full sk-hub key was pasted without spaces. If the key was shown once and lost, create a new one.
Compare the model id with /models. Do not use a display name instead of an id.
Most often this is the wrong model id for the client. In Continue, SDKs, and raw API calls, use claude-sonnet-5, not apiclaude/claude-sonnet-5.
Check whether the client added a second /v1. OpenAI-compatible needs /v1; Anthropic Messages/custom base usually needs the root without /v1.
Exclude node_modules, dist, logs, binary files, and long dumps. For long tasks, create a handoff summary.
Retry with backoff. If this is an IDE, keep the same key and model id to preserve session affinity.
Some IDEs limit vision in compatible mode. Test a plain text request first, then test images separately.