The OpenAI Agents SDK with a custom base URL
Give the SDK this client, switch it to chat completions and turn tracing off, and your agents run on Claude, GPT and Grok models through your AIGROW key.
Already have a code? Redeem it on API access, then create a key.
Python, before you create an agent
from openai import AsyncOpenAI
from agents import (
Agent,
Runner,
set_default_openai_api,
set_default_openai_client,
set_tracing_disabled,
)
client = AsyncOpenAI(base_url="https://aigrow.gg/v1", api_key="ag_your_key_here")
set_default_openai_client(client, use_for_tracing=False)
set_default_openai_api("chat_completions")
set_tracing_disabled(True)
agent = Agent(name="Assistant", model="claude-opus-5.5")
result = Runner.run_sync(agent, "Reply with the word ready")
print(result.final_output)Swap ag_your_key_here for a key from API access.
Where the setting lives
- Python package
pip install openai-agents
Or one agent at a time
OpenAIChatCompletionsModel puts a single agent on chat completions through its own client and leaves the SDK defaults as they are.
from openai import AsyncOpenAI
from agents import Agent, OpenAIChatCompletionsModel, set_tracing_disabled
set_tracing_disabled(True)
client = AsyncOpenAI(base_url="https://aigrow.gg/v1", api_key="ag_your_key_here")
agent = Agent(
name="Assistant",
model=OpenAIChatCompletionsModel(model="gpt-6-astra", openai_client=client),
)Or with environment variables
The OpenAI client reads these two itself, and the last one turns tracing off. Your code still calls set_default_openai_api("chat_completions") before the first run.
export OPENAI_BASE_URL=https://aigrow.gg/v1
export OPENAI_API_KEY=ag_your_key_here
export OPENAI_AGENTS_DISABLE_TRACING=1Which model to use
Put the id in exactly as it is written here.
- Claude Opus 5.5
claude-opus-5.5 - The default in every block on this page, and the cheapest Claude model here per token sent and received. Context: 1,000,000 tokens.
- Grok 4.7
grok-4.7 - The lowest output price here. Its context is half the size of the Claude models. Context: 500,000 tokens.
- GPT-6 Astra
gpt-6-astra - For a GPT model. It costs as much per token as Fable, more than Opus. Context: 1,050,000 tokens.
- Claude Fable 5.1
claude-fable-5.1 - Costs more per token than Opus. Compare the two on the coding leaderboard before you switch. Context: 1,000,000 tokens.
The price list has every id and its credit rate, Claude API pricing has the list prices, and the coding leaderboard compares the models on coding prompts.
Check that it works
First the key on its own, then OpenAI Agents SDK with it.
The key
Ask for the model list. It needs a valid key and costs nothing.
curl https://aigrow.gg/v1/models -H "Authorization: Bearer ag_your_key_here"{
"object": "list",
"data": [
{ "id": "claude-opus-5.5", "object": "model", ... },
{ "id": "claude-fable-5.1", "object": "model", ... },
{ "id": "gpt-6-astra", "object": "model", ... },
{ "id": "claude-sonnet-5.5", "object": "model", ... },
{ "id": "gpt-6.1-sol", "object": "model", ... },
{ "id": "grok-4.7", "object": "model", ... },
...
],
"has_more": false
}OpenAI Agents SDK
Save the block as check.py, put your key in and run it.
python check.pyreadyWhen it fails
The OpenAI Agents SDK errors first, then the answers the endpoint gives any tool.
- 404 on every run
- The SDK is still on the Responses API, its default. Call set_default_openai_api("chat_completions") before the first run, or give the agent an OpenAIChatCompletionsModel.
- Tracing client error 401
- Tracing uploads each run to OpenAI with the same key as the model calls, and an AIGROW key is not an OpenAI key. set_tracing_disabled(True) stops it; set_tracing_export_api_key with a key from platform.openai.com keeps it.
- My tool says 401 or authentication error
- 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.
- I get 402 or a message about credit
- 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.
- It says 404 or Unknown model
- 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.
- Requests are rejected with 429
- 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.
- The model is unavailable right now
- 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.
- I get a 502 or 503
- 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.
What does not work through AIGROW
The hosted tools, such as WebSearchTool and FileSearchTool, which OpenAI offers only on the Responses API. Function tools you write run in your own code and work.
Traces on the OpenAI dashboard without an OpenAI key. The upload needs a key from platform.openai.com, set with set_tracing_export_api_key.
Fields only the Responses API knows, such as previous_response_id and conversation_id. On chat completions the SDK drops them without an error.
Live web search inside the model. A web search tool sent with a request is answered from what the model already knows, with no live results. A tool that fetches pages on your own machine still works.
Any endpoint past these three: /v1/messages, /v1/chat/completions and /v1/models. The Responses API, embeddings and token counting answer 404.
Router fields such as models, route, provider and plugins. They are dropped, so a request always goes to the one model it names.
What a month of OpenAI Agents SDK costs
OpenAI Agents SDK is billed per token at the credit rates in the price list. An agent sends the whole conversation again with each step, so a long task costs more than its last message suggests; the activity log on API access shows what each request cost.
Questions about OpenAI Agents SDK and a custom API
- Can the OpenAI Agents SDK use another provider?
- Yes, any endpoint that speaks the OpenAI protocol. Pass an AsyncOpenAI client with base_url https://aigrow.gg/v1 and your key to set_default_openai_client, and call set_default_openai_api("chat_completions").
- Why does the Agents SDK give a 404 with a custom base URL?
- It calls the Responses API by default, and the endpoint serves chat completions only. set_default_openai_api("chat_completions") or OpenAIChatCompletionsModel switches it.
- What does tracing do without an OpenAI key?
- Tracing is on by default and uploads each run to OpenAI with the same key as the model calls, so with an AIGROW key the upload fails with a 401 tracing error. Turn it off with set_tracing_disabled(True) or OPENAI_AGENTS_DISABLE_TRACING=1, or give it an OpenAI key with set_tracing_export_api_key.
- Can an agent run on a Claude model?
- Yes. The endpoint serves Claude models on the OpenAI protocol, so model="claude-opus-5.5" works with the client in the block, with no adapter to install.
Sources: OpenAI Agents SDK Models · OpenAI Agents SDK Configuration · OpenAI Agents SDK Tracing · OpenAI Agents SDK Tools. Read 21 October 2026.
Set up another tool
- 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.
- LangChainAnthropic and OpenAI protocols
ChatOpenAI with base_url for every model, or ChatAnthropic for Claude.
The API guide has the SDKs, curl, the endpoints and the rate limits.
Paste the block and OpenAI Agents SDK runs on your credit.
Buy a credit pack, redeem the code from your email on API access, create a key and put it in place of ag_your_key_here.