API guide

Set up Claude Code, Cline or any SDK on AIGROW credit

A short, plain setup for the AIGROW endpoint. Redeem your code, create a key, point any OpenAI- or Anthropic-compatible tool at the base URL, and send a request. No SDK of ours to install.

Works with Claude Code, Cline, Aider, OpenCode, Zed, the OpenAI and Anthropic SDKs, and curl.

The AIGROW API endpoint is a drop-in replacement for the OpenAI and Anthropic APIs. Use https://aigrow.gg as the Anthropic base URL or https://aigrow.gg/v1 as the OpenAI base URL, authenticate with your ag_ key, and send the exact model id from the catalogue. Credit arrives by redeeming the code from your receipt on the dashboard.

Setting it up with an AI agent

Most people hand this to a coding agent. Paste the block into Claude Code, Cursor, Cline or any agent and it configures itself, then replace the key with one of yours.

AIGROW API gateway: an OpenAI- and Anthropic-compatible endpoint.
Configure a client with ONE of these two wires. The key starts with ag_.

Anthropic wire
  base URL   https://aigrow.gg            (the SDK appends /v1/messages)
  header     x-api-key: ag_your_key_here  (or Authorization: Bearer ag_your_key_here)
  header     anthropic-version: 2023-06-01
  body       max_tokens is required on every request

OpenAI wire
  base URL   https://aigrow.gg/v1         (POST /chat/completions)
  header     Authorization: Bearer ag_your_key_here

Model ids: claude-opus-5.5, claude-fable-5.1, gpt-6-astra, claude-sonnet-5.5, gpt-6.1-sol, grok-4.7
The provider's own spellings work too (claude-opus-5-5, anthropic/claude-opus-5.5).
A date suffix or any other model is rejected with 404 "Unknown model" before
the request is forwarded, and nothing is billed.
Claude Code: also set ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-sonnet-5.5, since its
background calls default to a Haiku model the endpoint does not serve.
Call GET /v1/models with the key for the live list of ids.

Endpoints: POST /v1/messages (Anthropic), POST /v1/chat/completions (OpenAI),
GET /v1/models. Streaming is supported on both wires.
Capacity: about 20 requests per minute and 4 in flight, shared. Past it a
request gets 429 with a retry-after header; wait that long and send it again.
Full guide: https://aigrow.gg/ai-api/guide

It carries both wires, the header names, the exact-id rule and the limits, which is everything an agent gets wrong on the first try.

Redeem your code

This is the only step unique to AIGROW. It takes under a minute.

Sign in to the dashboardOpen aigrow.gg/dashboard and sign in, or create an account with any email address. The code is not tied to the address you paid with.1 minute
Paste your codeGo to API access, paste the code from your redemption email into Redeem a code, and your balance updates at once.Instant
Create a keyStill on API access, create a key. It starts with ag_ and is shown once, so copy it straight into your tool.Shown once

The two things every tool needs

A base URL and your key. Pick the base URL that matches the tool.

Anthropic base URL

For Claude Code, Claude Desktop and the Anthropic SDK.

https://aigrow.gg
OpenAI base URL

For Cline, Aider, OpenCode, the OpenAI SDK and most other tools.

https://aigrow.gg/v1

Send the model id exactly as the catalogue lists it, for example claude-opus-5.5. The price list has every id and what it costs, or request GET /v1/models with your key for the live list.

Connect your tool

Each tool has its own page: the exact block, where it goes, which model id to send and what each error means.

  • Claude CodeAnthropic protocol

    Four environment variables, in the shell or in settings.json.

  • ClineOpenAI protocol

    The OpenAI Compatible provider, four fields in the settings screen.

  • Roo CodeOpenAI protocol

    The OpenAI Compatible provider, the same fields as Cline.

  • Kilo CodeOpenAI protocol

    A custom provider in the Providers tab; the model list fills itself.

  • ContinueOpenAI protocol

    A models entry in config.yaml, with provider openai and an apiBase.

  • AiderOpenAI protocol

    OPENAI_API_BASE and OPENAI_API_KEY, then openai/ before the model id.

  • OpenCodeOpenAI protocol

    A provider block in opencode.json and the key through /connect.

  • ZedAnthropic and OpenAI protocols

    An Anthropic compatible provider for Claude, an OpenAI compatible one for GPT and Grok.

  • GooseOpenAI protocol

    The OpenAI provider with OPENAI_HOST, or a custom provider file.

  • Vercel AI SDKAnthropic and OpenAI protocols

    The OpenAI Compatible provider for every model, or the Anthropic provider for Claude.

  • OpenAI Agents SDKOpenAI protocol

    Your own AsyncOpenAI client, switched to chat completions, with tracing off.

  • LangChainAnthropic and OpenAI protocols

    ChatOpenAI with base_url for every model, or ChatAnthropic for Claude.

The SDKs and curl

Copy the block and replace the key with your own.

OpenAI SDK (Python)

Set base_url and api_key when you create the client.

from openai import OpenAI

client = OpenAI(
    base_url="https://aigrow.gg/v1",
    api_key="ag_your_key_here",
)

resp = client.chat.completions.create(
    model="claude-opus-5.5",
    messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)

Anthropic SDK (Python)

Set base_url and api_key when you create the client.

from anthropic import Anthropic

client = Anthropic(
    base_url="https://aigrow.gg",
    api_key="ag_your_key_here",
)

msg = client.messages.create(
    model="claude-opus-5.5",
    max_tokens=512,
    messages=[{"role": "user", "content": "Hello"}],
)
print(msg.content[0].text)

curl (OpenAI)

A first request from the command line, to confirm the key works.

curl https://aigrow.gg/v1/chat/completions \
  -H "Authorization: Bearer ag_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-5.5",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

curl (Anthropic)

The same request on the Anthropic protocol.

curl https://aigrow.gg/v1/messages \
  -H "x-api-key: ag_your_key_here" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-5.5",
    "max_tokens": 512,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

On the Vercel AI SDK, the OpenAI Agents SDK or LangChain? Each needs one more setting to stay on chat completions, and its page has the block with it.

Endpoints and limits

The same paths as the official APIs, with a shared ceiling on traffic.

Endpoints

Send requests to these paths.

POST /v1/messages          (Anthropic)
POST /v1/chat/completions  (OpenAI)
GET  /v1/models            (list the model ids)
Rate limits

Shared across everyone on the endpoint.

20 requests / minute
4 requests in flight at once

On the Anthropic wire every request must include max_tokens. Streaming works on both wires and a streamed request costs exactly the same as a non-streamed one.

Watch your credit

Every request is billed at its model’s published rate and drawn from your balance.

The API access page shows your balance, your keys and an activity log with the model and cost of each request, so the balance is never a guess. When it runs low, redeem another code or buy a pack; the credit is added to the same account and every key keeps working.

If something does not work

The handful of things that trip people up, and the one-line fix for each.

The key is missing or mistyped. Copy it again from API access on the dashboard, and make sure it is sent as the key, not as a model name. A revoked key fails the same way: create a new one and swap it in.

Your balance is empty. Open API access on the dashboard, redeem a code or buy another pack, and the next request goes through. Nothing else needs to change.

The model has to be one the endpoint serves, for example claude-opus-5.5. The provider’s own spellings work too (claude-opus-5-5, anthropic/claude-opus-5.5), but a dated id or any model outside the catalogue is rejected before the request is forwarded, and nothing is billed. Request GET /v1/models with your key for the live list, or read the ids on the price list.

On the Anthropic protocol (/v1/messages) every request must set max_tokens. Add it, for example "max_tokens": 512, and the request goes through. The OpenAI protocol does not require it.

The endpoint’s capacity is shared by every buyer: about 20 requests a minute and 4 at once. Each 429 carries a retry-after header, and the OpenAI and Anthropic SDKs wait that long and retry on their own. In a loop of your own, wait the seconds it names or lower your concurrency.

A 404 that says the model is not available right now means it is briefly down at the upstream provider, not a problem with your key or balance. Retry in a moment or send the request to another model.

A transient upstream or configuration hiccup, not a charge against your balance. Retry the request; if it keeps failing, reach us through the store and we will look into it.

Yes. Streaming responses pass straight through on both the OpenAI and the Anthropic protocol, and usage is metered from the stream, so a streamed request costs the same as a non-streamed one.

That is the whole setup.

Redeem, create a key, set the base URL, send a request. The same models, up to 75% below list price.

OpenAI- and Anthropic-compatible · usage dashboard included · no lock-in