Find a page

Where do you want to go?

Your first request.

Create an account, verify your email, then issue an API key. Store it in INFERAFT_API_KEY. The examples below use the current service endpoint.

export ANTHROPIC_BASE_URL="https://inferaft.com"
export ANTHROPIC_API_KEY="$INFERAFT_API_KEY"
unset ANTHROPIC_AUTH_TOKEN
export ANTHROPIC_MODEL="custom/YOUR_MODEL_ID"
export ANTHROPIC_CUSTOM_MODEL_OPTION="$ANTHROPIC_MODEL"
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=8192
export ANTHROPIC_DEFAULT_SONNET_MODEL="$ANTHROPIC_MODEL"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="$ANTHROPIC_MODEL"
export ANTHROPIC_DEFAULT_OPUS_MODEL="$ANTHROPIC_MODEL"
export ANTHROPIC_SMALL_FAST_MODEL="custom/glm-5.3-flash"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

claude --model "$ANTHROPIC_MODEL"
OpenAI Chat Completions · Anthropic Messages · OpenAI ResponsesClient setup guide

For OpenCode, save the configuration as opencode.json in your project, set INFERAFT_API_KEY in your shell, then select your Inferaft model with /models.

For Claude Code, the Anthropic base URL has no /v1 suffix. Claude Code also validates model names against its own catalog and rejects bare Inferaft ids, so select a model with the custom/ prefix — for example custom/glm-5.3 or custom/kimi-k3, matching any model listed on the Models page. The same prefix selects a cheaper background model via ANTHROPIC_SMALL_FAST_MODEL. Other clients accept Inferaft model ids as they are.

Client setup

The base URL is the only thing that changes. Your key, your model name, your prompts and your tools stay as they are. These logos identify independent tools, not a partnership or a subscription to their models.

Claude Code

Messages and token counting. Text, streaming and function-tool roundtrips tested. Select models as custom/<model-id>; Claude Code rejects bare model ids.

export ANTHROPIC_BASE_URL="https://inferaft.com"
Official guide
OpenCode

Use the OpenAI-compatible provider configuration below. Client features depend on the selected model.

"baseURL": "https://inferaft.com/v1"
Official guide
Codex

Preview configuration for stateless Responses. Hosted tools, stored conversations and media are unavailable. Full agent compatibility is not yet certified.

base_url = "https://inferaft.com/v1"
Official guide
Cline

Choose OpenAI Compatible, enter your endpoint and key, then set the model context and output limits.

https://inferaft.com/v1
Official guide
Cursor

Custom endpoint availability depends on your Cursor version. API keys do not replace a Cursor subscription or unlock every feature. Inferaft integration is not yet validated.

Official guide

Supported API surface

EndpointSupported behavior
GET /v1/modelsDiscover the model and context limits.
POST /v1/chat/completionsText, function tools, JSON output, SSE, usage.
POST /v1/messagesNative Anthropic text/function tools and SSE.
POST /v1/messages/count_tokensToken count for a formatted Messages request.
POST /v1/responsesStateless text and caller-executed function tools. Send store: false.

Stored Responses, previous_response_id, background jobs, hosted tools, files, media URLs and image inputs are not supported in this preview. Streaming tool calls are returned to your client; Inferaft never executes the tools.

Limits and retries

Up to 10 in-flight requests per workspace, including queued requests. All keys share the same limit. Up to 1,200 starts per rolling minute. Longer prompts use the same plan allowances, with no separate hourly request quota.

Context is checked before generation. Input plus maximum output must fit the selected model's published context window, and output is capped at the model's published output ceiling. A request can queue for up to 45 seconds and has a 15-minute overall deadline.

Before generation, allowance is reserved for the context ceiling and the requested output; the measured usage of the completed request replaces it. If a rolling window cannot cover the reservation, the request stops with plan_usage_limit: wait for usage to roll back or change plans. model_not_in_plan means the model left the catalog while your key was active. Compare plans

429 Too Many Requests
Retry-After: 5
x-request-id: …

Wait at least Retry-After seconds.
Then retry with exponential backoff + random jitter.

Do not open extra API keys to bypass limits. When a client disconnects, its model request is canceled. Retry interrupted generation deliberately: a retry is a new generation.

Reasoning and function tools

Reasoning is off by default to keep short requests predictable. With OpenAI clients, pass extra_body={"chat_template_kwargs":{"enable_thinking":true}}. With Anthropic clients, use the thinking option. Reasoning consumes the output allowance. Models take their native reasoning controls — Claude models accept the thinking object, GPT models accept reasoning effort — so use what your client already sends.

Provide ordinary function schemas, inspect returned tool calls, execute authorized actions in your own client, and return tool results. API compatibility does not guarantee that every agent workflow succeeds; evaluate your actual tasks.

Inspect metadata, keep content local

The console records status, model, timestamps, token counts, queue time and duration. Inferaft’s application database does not store prompt or completion bodies. Keep regulated or confidential material out of prompts.

Incomplete streams can lack final token usage. These are marked incomplete rather than zero. x-request-id identifies a request when investigating a failure.

Read the privacy notice