go2llm API documentation
One account, one USD balance, and API keys for published AI models. The Anthropic-compatible base URL is https://go2llm.tech; the OpenAI-compatible base URL is https://go2llm.tech/v1.
Quickstart
- Register and create an API key in the dashboard.
- Fetch the current catalog with
GET /v1/models. - Choose a model ID and one of its declared endpoints.
- Send a short request and check the charge in the dashboard.
curl https://go2llm.tech/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"MODEL_ID_FROM_CATALOG","max_tokens":120,"messages":[{"role":"user","content":"Reply: OK"}]}'
Authentication
API requests use a user API key. OpenAI-compatible endpoints accept Authorization: Bearer YOUR_API_KEY; Anthropic Messages also accepts x-api-key: YOUR_API_KEY. Dashboard registration and sign-in support email/password, Google, and Telegram. A browser dashboard session does not replace an API key.
Getting and using an API key
Create a key on the keys tab, save the value when it is shown, and never place it in browser JavaScript, a repository, a screenshot, or a support message. Use separate keys for production, development, and CI. Each key has an independent default limit of 20 RPM.
Every documentation example uses only the safe YOUR_API_KEY placeholder.
Model catalog
The table below is built from the same live catalog as GET /v1/models. It lists available models, their exact IDs, prices, capabilities, and endpoints — use them as published; the table updates with each published snapshot.
| Model | Capabilities | Endpoints | Billing unit | Price |
|---|---|---|---|---|
Qwen3.8 Maxqwen3.8-max | text → text, tool | chat.completions, messages | 1M tokens | input $0.166 · output $0.498 · cache read $0.014 · cache write $0.208 |
Claude Haiku 4.5claude-haiku-4-5 | text → text, tool | chat.completions, messages | 1M tokens | input $0.13 · output $0.65 · cache read $0.013 · cache write $0.163 |
DeepSeek V4 Flash Visiondeepseek-v4-flash-vision-exp | text → text, tool | chat.completions, messages | 1M tokens | input $0.04 · output $0.161 · cache read $0.0008 · cache write $0.05 |
DeepSeek V4 Prodeepseek-v4-pro | text → text, tool | chat.completions, messages | 1M tokens | input $0.066 · output $0.198 · cache read $0.0022 · cache write $0.083 |
Gemini 3.1 Flash Imagegemini-3.1-flash-image | text, image → image | images.generations, images.edits | image | size=1024x1024;quality=standard: $0.024 |
Gemini 3.5 Flash Litegemini-3.5-flash-lite | text → text, tool | chat.completions, messages | 1M tokens | input $0.07 · output $0.583 · cache read $0.007 · cache write $0.088 |
Grok Imagine Imagegrok-imagine-image | text → image | images.generations | image | size=1024x1024;quality=standard: $0.0049 |
Grok Imagine Image Progrok-imagine-image-pro | text → image | images.generations | image | size=1024x1024;quality=standard: $0.049 |
MiniMax M3minimax-m3 | text → text, tool | chat.completions, messages | 1M tokens | input $0.04 · output $0.158 · cache read $0.0079 · cache write $0.049 |
Kimi K2.7 Codekimi-k2.7-code | text → text, tool | chat.completions, messages | 1M tokens | input $0.095 · output $0.402 · cache read $0.019 · cache write $0.119 |
Kimi K3kimi-k3 | text → text, tool | chat.completions, messages | 1M tokens | input $0.302 · output $1.51 · cache read $0.03 · cache write $0.378 |
Nano Banana 2nano-banana-2 | text, image → image | images.generations, images.edits | image | size=1024x1024;quality=standard: $0.041 |
Nano Banana Pronano-banana-pro | text, image → image | images.generations, images.edits | image | size=1024x1024;quality=standard: $0.034 |
GPT-5.3 Codexgpt-5.3-codex | text → text, tool | chat.completions, messages | 1M tokens | input $0.519 · output $4.15 · cache read $0.052 · cache write $0.649 |
GPT-5.6 Lunagpt-5.6-luna | text → text, tool | chat.completions, messages | 1M tokens | input $0.04 · output $0.24 · cache read $0.004 · cache write $0.05 |
GPT Image 2gpt-image-2 | text, image → image | images.generations, images.edits | image | size=1024x1024;quality=standard: $0.0058 |
Grok 4.20 Multi-Agentgrok-4.20-multi-agent | text → text, tool | chat.completions, messages | 1M tokens | input $0.286 · output $0.573 · cache read $0.046 · cache write $0.358 |
Grok 4.6grok-4.6 | text → text, tool | chat.completions, messages | 1M tokens | input $0.2 · output $0.601 · cache read $0.05 · cache write $0.25 |
MiMo v2.5 Promimo-v2.5-pro | text → text, tool | chat.completions, messages | 1M tokens | input $0.077 · output $0.153 · cache read $0.0006 · cache write $0.096 |
GLM 5.1glm-5.1 | text → text, tool | chat.completions, messages | 1M tokens | input $0.171 · output $0.537 · cache read $0.032 · cache write $0.214 |
GLM 5.2glm-5.2 | text → text, tool | chat.completions, messages | 1M tokens | input $0.141 · output $0.442 · cache read $0.026 · cache write $0.176 |
GLM 5.3glm-5.3 | text → text, tool | chat.completions, messages | 1M tokens | input $0.141 · output $0.442 · cache read $0.026 · cache write $0.176 |
Claude Fable 5claude-fable-5 | text → text, tool | chat.completions | 1M tokens | input $1.01 · output $5.03 · cache read $0.101 · cache write $1.26 |
Claude Fable 5.1claude-fable-5-1 | text → text, tool | chat.completions | 1M tokens | input $4.5 · output $22.5 · cache read $0.113 · cache write $5.63 |
Claude Opus 4.8claude-opus-4-8 | text → text, tool | chat.completions, messages | 1M tokens | input $0.503 · output $2.51 · cache read $0.05 · cache write $0.629 |
Qwen3.8 Flashqwen3.8-flash | text → text, tool | chat.completions, messages | 1M tokens | input $0.013 · output $0.045 · cache read $0.0017 · cache write $0.017 |
GPT-5.6 Terragpt-5.6-terra | text → text, tool | chat.completions, messages | 1M tokens | input $0.201 · output $1.21 · cache read $0.02 · cache write $0.251 |
Kimi K2.6kimi-k2.6 | text → text, tool | chat.completions, messages | 1M tokens | input $0.129 · output $0.542 · cache read $0.022 · cache write $0.161 |
Gemini 3.8 Flashgemini-3.8-flash | text → text, tool | chat.completions, messages | 1M tokens | input $0.106 · output $0.531 · cache read $0.011 · cache write $0.133 |
GPT-5.6 Solgpt-5.6-sol | text → text, tool | chat.completions, messages | 1M tokens | input $0.402 · output $2.01 · cache read $0.04 · cache write $0.503 |
GPT-5.5gpt-5.5 | text → text, tool | chat.completions, messages | 1M tokens | input $0.503 · output $3.02 · cache read $0.05 · cache write $0.629 |
Claude Opus 5claude-opus-5 | text → text, tool | chat.completions, messages | 1M tokens | input $0.503 · output $2.51 · cache read $0.05 · cache write $0.629 |
Codex Auto Reviewcodex-auto-review | text → text, tool | chat.completions, messages | 1M tokens | input $0.503 · output $3.02 · cache read $0.05 · cache write $0.629 |
MiMo v2.5mimo-v2.5 | text → text, tool | chat.completions, messages | 1M tokens | input $0.056 · output $0.112 · cache read $0.0011 · cache write $0.07 |
MiMo v2.6 Flashmimo-v2.6-flash | text → text, tool | chat.completions, messages | 1M tokens | input $0.042 · output $0.084 · cache read $0.0008 · cache write $0.052 |
Gemini 3.8 Flash Tieredgemini-3.8-flash-tiered | text → text, tool | chat.completions, messages | 1M tokens | input $0.3 · output $1.5 · cache read $0.03 · cache write $0.375 |
Gemini 3.7 Flash Tieredgemini-3.7-flash-tiered | text → text, tool | chat.completions, messages | 1M tokens | input $0.3 · output $1.5 · cache read $0.03 · cache write $0.375 |
GPT-6 Astragpt-6-astra | text → text, tool | chat.completions, messages | 1M tokens | input $1.01 · output $5.03 · cache read $0.101 · cache write $1.26 |
Gemini 3.5 Flash Lowgemini-3.5-flash-low | text → text, tool | chat.completions, messages | 1M tokens | input $0.211 · output $1.05 · cache read $0.021 · cache write $0.264 |
Gemini 3.6 Flash Highgemini-3.6-flash-high | text → text, tool | chat.completions, messages | 1M tokens | input $0.225 · output $1.13 · cache read $0.022 · cache write $0.281 |
Claude Sonnet 5claude-sonnet-5 | text → text, tool | chat.completions, messages | 1M tokens | input $0.329 · output $1.64 · cache read $0.033 · cache write $0.411 |
Claude Sonnet 5.5claude-sonnet-5-5 | text → text, tool | chat.completions, messages | 1M tokens | input $1.5 · output $7.5 · cache read $0.075 · cache write $1.88 |
Claude Opus 4.7claude-opus-4-7 | text → text, tool | chat.completions, messages | 1M tokens | input $0.649 · output $3.25 · cache read $0.065 · cache write $0.811 |
DeepSeek V4 Flashdeepseek-v4-flash | text → text, tool | chat.completions, messages | 1M tokens | input $0.023 · output $0.068 · cache read $0.0007 · cache write $0.028 |
DeepSeek V4.1 Flashdeepseek-v4.1-flash | text → text, tool | chat.completions, messages | 1M tokens | input $0.045 · output $0.18 · cache read $0.0009 · cache write $0.056 |
Claude Opus 4.6claude-opus-4-6 | text → text, tool | chat.completions, messages | 1M tokens | input $0.503 · output $2.51 · cache read $0.05 · cache write $0.629 |
Claude Sonnet 4.6claude-sonnet-4-6 | text → text, tool | chat.completions, messages | 1M tokens | input $0.344 · output $1.72 · cache read $0.034 · cache write $0.43 |
Gemini 2.5 Flashgemini-2.5-flash | text → text, tool | chat.completions, messages | 1M tokens | input $0.036 · output $0.3 · cache read $0.0036 · cache write $0.045 |
Gemini 2.5 Progemini-2.5-pro | text → text, tool | chat.completions, messages | 1M tokens | input $0.212 · output $1.7 · cache read $0.021 · cache write $0.265 |
Gemini 3 Flash Previewgemini-3-flash-preview | text → text, tool | chat.completions, messages | 1M tokens | input $0.094 · output $0.562 · cache read $0.0094 · cache write $0.117 |
Gemini 3.1 Pro Previewgemini-3.1-pro-preview | text → text, tool | chat.completions, messages | 1M tokens | input $0.3 · output $1.8 · cache read $0.03 · cache write $0.375 |
Gemini 3.6 Flashgemini-3.6-flash | text → text, tool | chat.completions, messages | 1M tokens | input $0.128 · output $0.638 · cache read $0.013 · cache write $0.16 |
GLM 5.3 Flashglm-5.3-flash | text → text, tool | chat.completions, messages | 1M tokens | input $0.018 · output $0.06 · cache read $0.0036 · cache write $0.022 |
GPT-5.4gpt-5.4 | text → text, tool | chat.completions, messages | 1M tokens | input $0.348 · output $2.09 · cache read $0.035 · cache write $0.435 |
Grok 4.3grok-4.3 | text → text, tool | chat.completions, messages | 1M tokens | input $0.178 · output $0.356 · cache read $0.028 · cache write $0.222 |
Grok 4.5grok-4.5 | text → text, tool | chat.completions, messages | 1M tokens | input $0.201 · output $0.603 · cache read $0.03 · cache write $0.251 |
Qwen3.7 Maxqwen3.7-max | text → text, tool | chat.completions, messages | 1M tokens | input $0.166 · output $0.498 · cache read $0.017 · cache write $0.208 |
Qwen3.7 Plusqwen3.7-plus | text → text, tool | chat.completions, messages | 1M tokens | input $0.03 · output $0.121 · cache read $0.0031 · cache write $0.038 |
GPT Image 2.5gpt-image-2.5 | text, image → image | images.generations, images.edits | image | size=1024x1024;quality=standard: $0.019 |
GPT-6 Lunagpt-6-luna | text → text, tool | chat.completions, messages | 1M tokens | input $0.028 · output $0.14 · cache read $0.0028 · cache write $0.035 |
GPT-6 Solgpt-6-sol | text → text, tool | chat.completions, messages | 1M tokens | input $0.35 · output $1.75 · cache read $0.035 · cache write $0.438 |
GPT-6.1 Solgpt-6.1-sol | text → text, tool | chat.completions, messages | 1M tokens | input $0.3 · output $1.5 · cache read $0.015 · cache write $0.375 |
Claude Opus 5.5claude-opus-5-5 | text → text, tool | chat.completions, messages | 1M tokens | input $2.57 · output $12.85 · cache read $0.15 · cache write $3.21 |
Grok 4.7grok-4.7 | text → text, tool | chat.completions, messages | 1M tokens | input $0.2 · output $0.601 · cache read $0.05 · cache write $0.25 |
GLM 5.3 FlashXglm-5.3-flashx | text → text, tool | chat.completions, messages | 1M tokens | input $0.046 · output $0.154 · cache read $0.0075 · cache write $0.058 |
A single model can be fetched on its own: GET /v1/models/{id} returns the same record as one element of the /v1/models array and also needs no key. Aliases resolve, but the response id is canonical — asking for claude-sonnet-5 returns claude-sonnet-4-5, so the substitution is visible immediately. An unknown ID returns 404 model_not_found.
curl https://go2llm.tech/v1/models/MODEL_ID_FROM_CATALOG
Endpoint selection
Use only an endpoint declared for the selected model:
messages→POST /v1/messagesusing the Anthropic format;chat.completions→POST /v1/chat/completionsusing the OpenAI format;images.generations→POST /v1/images/generations;images.edits→POST /v1/images/edits(image-to-image).
An incompatible model ID and endpoint pair returns 400 model_protocol_mismatch.
POST /v1/responses never appears in endpoints: that field lists what a model sells, not how you may talk to it. The route serves exactly the same models as chat.completions.
Anthropic Messages
curl https://go2llm.tech/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"MODEL_ID_FROM_CATALOG","max_tokens":120,"messages":[{"role":"user","content":"Reply: OK"}]}'
This route is available to models that declare the messages endpoint.
OpenAI Chat Completions
curl https://go2llm.tech/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{"model":"MODEL_ID_FROM_CATALOG","max_tokens":120,"messages":[{"role":"user","content":"Reply: OK"}]}'
This route is available to models that declare the chat.completions endpoint.
OpenAI Responses API
POST /v1/responses accepts the OpenAI Responses API format and works as an adapter over chat.completions: same models, same reservation, same charge, same usage.cost_usd. A model that declares only messages in the catalog is not reachable through this route.
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://go2llm.tech/v1")
response = client.responses.create(
model="MODEL_ID_FROM_CATALOG",
instructions="Answer in one line.",
input="Reply: OK",
max_output_tokens=64,
)
print(response.output_text)
Supported: input as a string or an array, instructions, tools and tool_choice in the flat Responses form, function_call and function_call_output, max_output_tokens, stream, parallel_tool_calls, response_format.
The shim is stateless: the gateway stores no response history. previous_response_id, store: true, and background: true are rejected with 400 stateful_responses_unsupported — send the whole history in input. Streaming and tool-call examples: Responses API.
Token counting
POST /v1/messages/count_tokens accepts the same body as POST /v1/messages (model, messages, system, tools) and returns the input size. A key is required, but nothing is reserved and nothing is charged — the call is free. Separate limit: 60 RPM per key.
curl https://go2llm.tech/v1/messages/count_tokens \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"MODEL_ID_FROM_CATALOG","messages":[{"role":"user","content":"Reply: OK"}]}'
{
"input_tokens": 14,
"go2llm": { "exact": false, "method": "byte_estimate", "typical_error_pct": null }
}
This is a byte-based estimate, not a vendor tokenizer. The go2llm block says so explicitly with exact: false. Use it to decide whether a context fits the window and to ballpark cost; do not use it as an exact billing counter. Actual token counts and the actual price are in the usage block of a real model response.
typical_error_pct comes back null: we have not measured how far the estimate drifts from the real count, so we do not publish a figure. Once the estimator is calibrated against accumulated usage, this field will carry a number.
Streaming
Send stream: true and read SSE until the normal final event. Do not automatically retry after the first meaningful SSE fragment: fallback is disabled after a response begins.
Tool calls
For models whose public capabilities include tool, send tools and tool_choice in the selected protocol's format. A tool definition includes its name, purpose, and argument JSON Schema. Your application executes the tool; the model only requests the call.
Images and published capabilities
For image understanding, choose a text model whose modalities.input in GET /v1/models includes image. Every text-only model publishes a vision_companion: the closest available multimodal model, from the same family when possible. Audio, video, PDF, and other unsupported blocks return 400 unsupported_content_type.
Image generation is available only when the live catalog declares images.generations. Send a published size, quality, and allowed result count. Use a unique Idempotency-Key for a media request and reuse it only with an identical body.
curl https://go2llm.tech/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: project-image-0001" \
-H "content-type: application/json" \
-d '{"model":"MODEL_ID_FROM_CATALOG","prompt":"Minimal API diagram","n":1,"size":"1024x1024","quality":"standard","response_format":"url"}'
Image-to-image works for models whose endpoints include images.edits. Send the source image as a file, the same way the OpenAI SDK does (client.images.edit(image=open("photo.png", "rb"), ...)). Up to 4 PNG, JPEG or WebP files go in as image[]. The price per result is the same as generation.
curl https://go2llm.tech/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: project-edit-0001" \
-F model=MODEL_ID_FROM_CATALOG \
-F "prompt=Make the background white" \
-F size=1024x1024 \
-F image=@photo.png
Unpublished capabilities are not part of the contract.
Claude Code
Claude Code does not take any catalogue model — only one whose endpoints list in GET /v1/models includes messages. A catalogue model without it answers 400 model_protocol_mismatch. One line prints the list:
curl -s https://go2llm.tech/v1/models \
| python3 -c 'import json,sys; print(*(m["id"] for m in json.load(sys.stdin)["data"] if "messages" in m.get("endpoints",[])), sep="\n")'
export ANTHROPIC_BASE_URL=https://go2llm.tech
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY
export ANTHROPIC_MODEL=claude-opus-4-8
export ANTHROPIC_SMALL_FAST_MODEL=claude-haiku-4-5
claude
Claude Code calls ANTHROPIC_SMALL_FAST_MODEL on its own for housekeeping, so it needs the messages endpoint too.
Use ANTHROPIC_AUTH_TOKEN: if Claude Code is already signed in with a personal account on this machine, ANTHROPIC_API_KEY can lose to that stored login, and the request never reaches go2llm — you get 401 instead.
Codex
Recent Codex CLI (@openai/codex) versions only support wire_api = "responses" for custom providers — the OpenAI Responses API format. That used to be the reason it failed: go2llm had no /v1/responses route, so Codex got a 404.
POST /v1/responses is now published and was verified by a live Codex CLI 0.151.0 run on 2026-09-14: codex exec read a file in a test project, executed tools and applied the edit. The run used the qwen3-8-flash model; we did not exercise the interactive codex TUI. The ~/.codex/config.toml setup and the limits of that check live on the coding tools page and on Codex API (in Russian).
OpenAI SDK
import OpenAI from "openai";
const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://go2llm.tech/v1" });
const response = await client.chat.completions.create({
model: "MODEL_ID_FROM_CATALOG",
messages: [{ role: "user", content: "Reply: OK" }],
});
Anthropic SDK
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ apiKey: "YOUR_API_KEY", baseURL: "https://go2llm.tech" });
const response = await client.messages.create({
model: "MODEL_ID_FROM_CATALOG",
max_tokens: 120,
messages: [{ role: "user", content: "Reply: OK" }],
});
Python
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://go2llm.tech/v1")
response = client.chat.completions.create(
model="MODEL_ID_FROM_CATALOG",
messages=[{"role": "user", "content": "Reply: OK"}],
)
JavaScript and TypeScript
Use the OpenAI SDK for chat.completions and the Anthropic SDK for messages. Send the exact model ID from the catalog, set a reasonable max_tokens, and inspect the HTTP status before reading the response body. Keep the server-side key as YOUR_API_KEY; never ship it in a browser bundle.
That rule is enforced, not merely written down: Access-Control-Allow-Origin: * is set on public reads only — GET /v1/models, GET /v1/models/{id}, GET /api/pricing, GET /status. Routes that take a key deliberately have no CORS, and OPTIONS to them answers 405 with an explanation: call go2llm from your server. Reading the catalog and prices from a browser is fine — building a model picker, for example.
cURL
cURL examples appear in quickstart and the endpoint sections. Add -i while diagnosing to inspect the HTTP status and Retry-After, but never publish a command containing a real key.
Other clients
Use another client only after verifying that it supports a custom base URL, sends the required header, calls a published endpoint, and correctly reads normal or SSE responses. Unverified clients are not claimed as compatible.
Balance and billing
go2llm is pay-as-you-go only, with no subscription. Balances and prices are in USD. You can top up in the dashboard with cryptocurrency; funds are credited after payment confirmation. The API reserves an estimated cost before the external request, then charges actual usage and releases the remainder. The charged USD amount is returned as usage.cost_usd in a regular response or the final SSE usage block. See pricing and billing.
Per-key budget: GET /v1/me
So that an agent does not learn about an empty balance from a 402 in the middle of a long run, the remaining budget and quota can be read with the same key:
curl https://go2llm.tech/v1/me -H "Authorization: Bearer YOUR_API_KEY"
{
"object": "api_key",
"key": { "name": "prod", "masked": "gk_sk_abcd…wxyz", "quota_usd": 50,
"spent_usd": 12.34, "rpm_limit": 20, "allowed_models": ["*"],
"expires_at": null },
"balance": { "spendable_usd": 87.66, "reserved_usd": 0.12, "currency": "USD" },
"limits": { "account_max_concurrency": 2 }
}
Compare your cost estimate against spendable_usd: reserved_usd is money already held against in-flight requests and cannot be spent. expires_at is an ISO-8601 string or null. A key with no account returns "balance": null — its spend is bounded by the key quota alone.
The route returns no email, no other keys on the account, no referral or payment data, and never the full key secret: a leaked key must not become an identified owner or access to their other keys. Limit: 60 RPM per key, with cache-control: no-store. More detail: balance and spend.
Rate limits
The default limit is 20 RPM per API key, independently. When exceeded, the API returns HTTP 429 and Retry-After. Respect that header and use bounded exponential backoff.
Errors
| HTTP | Cause | Action |
|---|---|---|
| 400 | invalid JSON, content, or protocol | fix the request and verify the endpoint |
| 401 | missing or invalid key | send YOUR_API_KEY in the required header |
| 402 | insufficient balance | add funds or reduce the request |
| 403 | disabled, expired, or restricted key | inspect the key settings |
| 404 | model ID is not published | refresh /v1/models |
| 404 | endpoint_not_found | no such route under /v1/; published routes are listed in error.message |
| 405 | method_not_allowed | the route exists but takes another method — see the allow header |
| 409 | idempotency conflict | do not reuse one key for different media requests |
| 429 | rate limit or quota | respect Retry-After |
| 5xx | route temporarily unavailable | save request_id and retry a safe request later |
Errors under /v1/ come back as a JSON envelope with error.type, error.code, error.message, and error.request_id. The x-go2llm-request-id header is present on every /v1/* response, errors included — log it. Full breakdown: API errors.
Fallback behavior
Before a response begins, the service may retry automatically after a temporary network failure, timeout, 429, or 5xx. A client-side 400 does not trigger a retry. Automatic retries stop after the first byte or valid SSE event, preventing mixed or duplicate output.
FAQ
Where do I get a model ID? Only from GET /v1/models or the dynamic table above.
Are prompts and responses stored? No. They are not stored in product logs. They are sent to the selected external AI provider to process the request.
Can one key use multiple models? Yes, when those models are allowed by the key settings.
Is there a subscription? No. go2llm uses a pay-as-you-go USD balance.
Support
Support investigates problems and errors after self-service setup. Configure integrations, SDKs, keys, and environments using the documentation.
Telegram: @go2llm_support. Email: support@go2llm.tech.
Include the time and time zone, endpoint, HTTP status, model ID, and request_id. Never send a password, session cookie, full API key, or payment credentials.