Update client initialization
Change the client initialization to point at Auriko:Python
TypeScript
Check compatibility
Standard OpenAI API features work through Auriko, 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:
| Feature | Behavior |
|---|---|
| Response API | Preview. See Response API overview and API reference. |
Legacy functions/function_call | Auriko auto-converts to tools/tool_choice |
Structured output (json_object) | Model-dependent. See Structured output. |
Use additional features
Auriko adds capabilities on top of the OpenAI-compatible interface:- Routing options: Optimize for cost, latency, or throughput across providers.
- Cost optimization: Auriko computes the expected cost of each request at every available provider and routes to the cheapest one.
- Prompt caching: Auriko 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 Auriko package:
Map errors
If you use the OpenAI SDK directly, Auriko errors arrive as genericopenai.APIStatusError. You can convert them to typed Auriko 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 Auriko SDK. See Error Handling for the full guide.Access routing metadata
Every Auriko 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 Auriko SDK
Both the Python and TypeScript SDKs exposerouting_metadata as a typed property on each response:
With the OpenAI SDK
Auriko includes routing metadata in every response. If you use the OpenAI SDK, theauriko Python package provides two helpers to extract it with full typing:
parse_routing_metadata() extracts routing metadata from an OpenAI SDK response:
AurikoAsyncOpenAI (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 "auriko[openai-compat]". See AurikoAsyncOpenAI for framework wiring details.
These helpers are Python-only. For typed routing metadata in TypeScript, use the Auriko SDK or
@auriko/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