Skip to main content
Every integration channel provides 100% of Auriko’s routing, fallback, cost optimization, and rate limiting — these features are server-side. The channel you choose affects developer ergonomics, not platform capability.

Which integration should I use?

If you…UseTier
Want the full Auriko experienceNative SDK (auriko.AsyncClient)1 — Primary
Already use LangChain, LlamaIndex, CrewAI, or ADKFramework adapter2 — Framework
Want to point existing OpenAI code at AurikoAsyncOpenAI(base_url="https://api.auriko.ai/v1")3 — Migration
Need to pass an OpenAI client to a framework that discards routing metadataAurikoAsyncOpenAI (experimental)4 — Experimental
If you just want to point existing OpenAI code at Auriko, use AsyncOpenAI(base_url=...) directly. AurikoAsyncOpenAI is experimental and only needed when a framework discards routing metadata from responses.

Feature comparison

FeatureNative SDKFramework AdaptersPlain OpenAI APIAurikoAsyncOpenAI (experimental)
Routing optionsgateway={...} or GatewayOptions(...)Adapter-specific paramsextra_body={"gateway": {...}}extra_body={"gateway": {...}}
Metadata accessresponse.routing_metadataAdapter-specificparse_routing_metadata(response) or headersclient.last_routing_metadata
Error typesAurikoAPIError hierarchyAurikoAPIError (automatic)openai.APIStatusErrorDual-inheritance (both hierarchies)
Streaming metadataOn stream objectAdapter-specificResponse headersAutomatic via httpx hook
Dependenciesaurikoauriko[framework]openai (or any HTTP client)auriko[openai-compat]

Error behavior by channel

ChannelError typeAutomatic?
Native SDKAurikoAPIError hierarchyYes
Framework adaptersAurikoAPIError via map_openai_error()Yes
Plain OpenAI APIopenai.APIStatusErrorOpt-in via map_openai_error()
AurikoAsyncOpenAI (experimental)Dual-inheritance (both hierarchies)HTTP-level only
AurikoAsyncOpenAI dual-inheritance errors are catchable as both auriko.RateLimitError and openai.RateLimitError. Mid-stream SSE errors (raised after the HTTP 200 during stream=True) remain unmapped openai.APIError — the bridge covers HTTP-level status errors only.