go2llm API documentation

Coding tools

go2llm speaks three standard protocols: Anthropic Messages (/v1/messages), OpenAI Chat Completions (/v1/chat/completions) and OpenAI Responses (/v1/responses). Any tool that lets you set a custom base URL and API key for one of these formats connects without modification. Below are exact steps for specific coding agents, with an honest status for each.

What we actually verified

ToolProtocolStatus
Claude CodeAnthropic Messages✅ verified with a live request
OpenCodeOpenAI Chat Completions✅ verified with a live request
Kilo CodeOpenAI Chat Completions📄 from Kilo Code's own docs, not hands-on tested
Codex CLIOpenAI Responses✅ verified with a live request on 2026-09-14: codex exec 0.151.0, wire_api = "responses", model qwen3-8-flash
Claude Agent SDK, LangChain ChatAnthropicAnthropic Messages📄 POST /v1/messages/count_tokens answers, so context management no longer raises; we have not built a full agent hands-on
Cursor—not tested with a live request, we claim no status
Other OpenAI-compatible clients (Cline, RooCode, Continue.dev, Aider, etc.)OpenAI Chat Completions📄 works if the client supports a custom base URL
Other Anthropic-compatible clientsAnthropic Messages📄 works if the client supports a custom base URL

Claude Code

export ANTHROPIC_BASE_URL=https://go2llm.tech
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY
export ANTHROPIC_MODEL=claude-haiku-4-5
claude

Use ANTHROPIC_AUTH_TOKEN, not ANTHROPIC_API_KEY. If Claude Code is already signed in with a personal account (claude.ai or Anthropic Console) on the same machine, ANTHROPIC_API_KEY can lose to that stored login and the request never reaches go2llm — you get a 401 instead. ANTHROPIC_AUTH_TOKEN always routes through the ANTHROPIC_BASE_URL you set.

Before running it, confirm the chosen model lists messages in endpoints from GET /v1/models.

OpenCode

Add a provider to opencode.json (project file or ~/.config/opencode/opencode.json):

{
  "provider": {
    "go2llm": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "go2llm",
      "options": { "baseURL": "https://go2llm.tech/v1" },
      "models": { "claude-haiku-4-5": {}, "gpt-5.6-luna": {} }
    }
  }
}

Provide the key via opencode auth login (stored in ~/.local/share/opencode/auth.json, not in your repo) or add "apiKey": "YOUR_API_KEY" to options for a local test. Run it with:

opencode run "..." -m go2llm/claude-haiku-4-5

Kilo Code

Kilo Code is a VS Code extension with no standalone CLI, so the steps below come from Kilo Code's own documentation and were not tested by us hands-on.

  1. Settings → Providers → Custom provider.
  2. Provider API — OpenAI Compatible.
  3. Base URL — https://go2llm.tech/v1.
  4. API key — your go2llm key.
  5. You don't need to type models by hand: Kilo Code queries GET /v1/models itself and offers a picker.

Codex CLI

go2llm's POST /v1/responses endpoint is published and was verified by a live Codex CLI run on 2026-09-14: CLI version 0.151.0, codex exec read a file in a test project, executed tools, applied the edit and printed a correct diff — 21,432 tokens. The run used the qwen3-8-flash model; /v1/responses serves the same models as /v1/chat/completions. We did not exercise the interactive codex TUI — only codex exec.

model = "gpt-5.3-codex"
model_provider = "go2llm"

[model_providers.go2llm]
name = "go2llm"
base_url = "https://go2llm.tech/v1"
env_key = "GO2LLM_API_KEY"
wire_api = "responses"

model and model_provider are top-level keys of ~/.codex/config.toml and must sit above any […] table. The key travels through the environment variable named in env_key — never put it in the file:

export GO2LLM_API_KEY=gk_sk_YOUR_KEY
codex

The shim is stateless: previous_response_id and store: true are rejected with 400 stateful_responses_unsupported, background: true with 400 background_unsupported. The same models are served as on /v1/chat/completions. usage.cost_usd is returned.

The full walkthrough, a curl you can use to check the endpoint without Codex, and the "why this was broken for a year" write-up live on the Codex API page (in Russian). The other coding agents verified with a live request are OpenCode and Claude Code from this page.

Claude Agent SDK and LangChain

POST /v1/messages/count_tokens answers in Anthropic's shape: the body matches /v1/messages, the response is {"input_tokens": N}. This route did not exist before, and the Anthropic SDK, Claude Agent SDK and LangChain ChatAnthropic raised on context management before they ever reached a model. They no longer do.

The count is an estimate, not a vendor tokenizer, and the response says so out loud: next to input_tokens there is a go2llm block with "exact": false and the method name. SDKs read input_tokens and ignore the extra fields. The call needs a key but costs nothing.

We have not built a full agent hands-on — the status in the table above reflects exactly that.

Cursor

No live test has been done, so we claim neither that Cursor works nor that it doesn't. Once it is tested, this section will carry either instructions or a write-up of why it fails — the same way we handled Codex CLI.

Any other OpenAI Chat Completions-compatible client

Covers tools like Cline, RooCode, Continue.dev, Aider and similar — we haven't verified each one individually, but go2llm's protocol is standard:

  • Base URL: https://go2llm.tech/v1
  • Key: Authorization: Bearer YOUR_API_KEY header
  • Model catalog: GET https://go2llm.tech/v1/models
  • Requests: POST /v1/chat/completions

Any other Anthropic Messages-compatible client

  • Base URL: https://go2llm.tech
  • Key: x-api-key: YOUR_API_KEY header
  • Requests: POST /v1/messages

Before treating a client as compatible, send a test request and check usage.cost_usd in the dashboard.

CI and servers

  • Keep the key in CI secrets, not in YAML or the repository.
  • Use a separate key with a minimal quota and an explicit allowed-model list.
  • Before real workloads, check /status, /v1/models and a short test request.
  • Never print the Authorization or x-api-key header in logs.

Prices for every model are on the billing page; the technical reference is in the docs.

Get a key and make your first request in 3 minutes → https://go2llm.tech/