Update client initialization
Change the client initialization to point at Arbytra:Python
TypeScript
Check compatibility
Standard OpenAI API features work through Arbytra, including chat completions, the Response API, streaming, tool calling, structured output (json_schema), error classes, async clients, and the models list endpoint.
Some features have special handling:
Use additional features
Arbytra adds capabilities on top of the OpenAI-compatible interface:- Routing options: Optimize for cost, latency, or throughput across providers.
- Cost optimization: Arbytra computes the expected cost of each request at every available provider and routes to the cheapest one.
- Prompt caching: Arbytra optimizes prompt caching automatically, reducing cost and latency on repeated requests.
- Budget management: Set spending limits per workspace, API key, or BYOK provider. See Error codes for the
budget_exhaustedcode. - Response headers: Every response includes
request_id, rate limit headers, and credit usage. See Python SDK or TypeScript SDK.
Use OpenAI SDK directly
You can use the OpenAI SDK with abase_url override instead of the Arbytra package:
Map errors
If you use the OpenAI SDK directly, Arbytra errors arrive as genericopenai.APIStatusError. You can convert them to typed Arbytra errors with map_openai_error() to branch on specific error codes like budget_exhausted or rate_limit_error:
map_openai_error() is Python-only. TypeScript users get typed errors automatically with the Arbytra SDK. See Error Handling for the full guide.Access routing metadata
Every Arbytra response includes routing metadata: which provider handled the request, the cost, and latency. How you access it depends on which SDK you use.With the Arbytra SDK
Both the Python and TypeScript SDKs exposerouting_metadata as a typed property on each response:
With the OpenAI SDK
Arbytra includes routing metadata in every response. If you use the OpenAI SDK, thearbytra Python package provides two helpers to extract it with full typing:
parse_routing_metadata() extracts routing metadata from an OpenAI SDK response:
ArbytraAsyncOpenAI (experimental) is a drop-in AsyncOpenAI subclass that captures routing metadata on every response. Use it when a framework (OpenAI Agents SDK, LangChain, LlamaIndex) requires an AsyncOpenAI instance:
pip install "arbytra[openai-compat]". See ArbytraAsyncOpenAI for framework wiring details.
These helpers are Python-only. For typed routing metadata in TypeScript, use the Arbytra SDK or
@arbytra/ai-sdk-provider with the Vercel AI SDK.Resources
- Python SDK — full native client reference
- TypeScript SDK — TypeScript client reference
- Error handling — complete error handling guide