Skip to main content
idapt
AccueilCodeModèles IATarifs
Sign inStart free

Migrate from OpenRouter

idapt ships an OpenRouter-compatible API. If your app already talks to OpenRouter, you migrate by changing one URL: your SDK, request shapes, and response parsing stay the same.

Change the base URL

Point your client's base URL at the idapt OpenRouter-compat path, the same path-prefix pattern as idapt's OpenAI- and Anthropic-compatible APIs:

- https://openrouter.ai/api/v1
+ https://idapt.app/api/openrouter/v1

Authenticate with an idapt API key as a bearer token (`Authorization: Bearer …`). Create one from your account settings. Your SDK, request shapes, and response parsing stay the same.

What works today

MethodEndpointNotes
POST/api/openrouter/v1/chat/completionsStreaming + non-streaming. OpenRouter provider policy, model suffixes, multi-model fallback, per-key limits, `provider`, and `usage.cost`.
POST/api/openrouter/v1/completionsLegacy text completions bridge.
POST/api/openrouter/v1/anthropic/v1/messagesAnthropic-shape Messages API.
POST/api/openrouter/v1/embeddingsOpenAI-shape embeddings.
POST/api/openrouter/v1/audio/speechText-to-speech.
POST/api/openrouter/v1/audio/transcriptionsSpeech-to-text.
GET/api/openrouter/v1/modelsFull catalog: `architecture`, `pricing`, `top_provider`, `supported_parameters`.
GET/api/openrouter/v1/models/countCatalog size.
GET/api/openrouter/v1/models/{author}/{slug}Single model detail.
GET/api/openrouter/v1/models/{author}/{slug}/endpointsPer-provider endpoint card.
GET/api/openrouter/v1/generationRequest reconciliation by generation id.
GET/api/openrouter/v1/keyCurrent key metadata with per-key usage and limits for bearer calls.
GET/api/openrouter/v1/creditsCredit balance and usage.
GET · POST · PATCH · DELETE/api/openrouter/v1/keysAPI key CRUD with lifetime USD spend caps.
POST/api/openrouter/v1/responsesNon-streaming text Responses bridge.

Compatibility gaps

idapt never silently ignores a request field it cannot honor. If you send an OpenRouter feature that is not implemented yet, the API rejects the request with a clear 422 (unsupported request field) or 501 (unbuilt endpoint), and the error body carries a metadata.roadmap_url linking straight to the matching section below. A misrouted request with the wrong provider and wrong bill is worse than a clear error, so unsupported features are explicit.

Provider routing controls

What: The `provider` request object (`order`, `only`, `ignore`, `allow_fallbacks`, `sort`, `max_price`, `require_parameters`, `quantizations`), plus the legacy `route` string.

Status: Live for chat-compatible requests. The router honors allow/deny/order, fallback disabling, price/throughput/latency/uptime sort, max-price ceilings, required-parameter filtering, quantization labels and legacy route passthrough.

Ships: Live for /chat/completions, /completions, and non-streaming /responses.

Multi-model fallback (`models: [...]`)

What: An array of model ids that the router falls through on upstream failure or rate-limit.

Status: Live. `models` is normalized to an ordered model-candidate list, suffixes are stripped for catalog lookup, and the connector tries the next model when no provider path succeeds.

Ships: Live for chat-compatible requests.

Unified reasoning parameter

What: The `reasoning` object: `effort` (none/minimal/low/medium/high), `max_tokens` budget, `exclude`, `enabled`.

Status: Live. The OpenRouter-shape `reasoning` object is preserved through the canonical chat request and providers that do not support reasoning are filtered when required.

Ships: Live for chat-compatible requests.

Message transforms

What: The `transforms` array: middle-out context compression for under-context models.

Status: Accepted and passed through on OpenRouter-routed calls. Requests using transforms force the OpenRouter connector so direct providers do not receive unknown fields.

Ships: Live for OpenRouter-routed chat-compatible requests.

Plugins

What: The `plugins` array: file-parser (PDF OCR), response-healing (JSON repair), context-compression.

Status: Accepted and passed through on OpenRouter-routed calls. The `:online` suffix injects the web plugin automatically.

Ships: Live for OpenRouter-routed chat-compatible requests.

Service tiers

What: The `service_tier` field: `flex` (cheaper, slower) / `priority` (faster, costlier) provider QoS.

Status: Accepted and preserved in the canonical request. Providers that advertise support can be selected with `provider.require_parameters`.

Ships: Live for chat-compatible requests.

Server-side tools

What: Autonomous tools the gateway executes: `openrouter:web_search`, `web_fetch`, `image_generation`, and similar `openrouter:`-prefixed tool names.

Status: Accepted and forced through the OpenRouter connector so gateway-owned tools are not sent to direct native providers.

Ships: Live for OpenRouter-routed chat-compatible requests.

Generation lookup (`GET /generation`)

What: Fetch token counts, exact cost, latency and finish reason for a past request by id.

Status: Live for idapt-recorded compatible API calls. Look up by provider generation id, with internal usage-id fallback for historical rows.

Ships: Live.

Rerank (`POST /rerank`)

What: Cohere / Voyage-shape document reranking.

Status: Planned. Not yet available on the compatibility surface.

Ships: Planned.

Video generation (`POST /videos`)

What: Async video generation with job polling: `POST /videos`, `GET /videos/{jobId}`, `GET /videos/{jobId}/content`, `GET /videos/models`.

Status: Planned. Not yet available on the compatibility surface.

Ships: Planned.

Responses API (`POST /responses`)

What: The stateless OpenAI Responses-shape endpoint.

Status: Live for common non-streaming stateless text requests by adapting Responses `input` / `instructions` into chat completions. Streaming Responses events are planned.

Ships: Non-streaming live; streaming remains a follow-up.

OAuth / PKCE key exchange (`POST /auth/keys`)

What: The PKCE-secured endpoint that exchanges an auth code for a user-bound API key, used by editor integrations for a 'Sign in' flow.

Status: Planned. Create an API key from your account settings in the meantime.

Ships: Planned.

Live endpoint telemetry

What: Per-provider latency percentiles (p50/p75/p90/p99), throughput and uptime windows on `GET /models/{author}/{slug}/endpoints`.

Status: Live for pricing and capabilities per provider; the latency, throughput, and uptime fields show indicative values while live telemetry is in beta.

Ships: Planned.

The surface above is production-supported. The roadmap items are landing in phases, and unsupported fields always fail with a clear error. For the full developer surface (REST API, CLI, MCP) see the developer hub.

  • Accueil
  • Tarifs
  • Modèles IA
  • Modèles d'image
  • Modèles de voix
  • Modèles vidéo
  • Classements
  • New models
  • Model status
  • Multi-Model Chat
  • Voice Mode
  • Voice HUD
  • Web Search
  • Image Generation
  • Video Generation
  • Audio Generation
  • Transcription
  • Drive
  • Credentials
  • Sharing
  • Workspaces
  • Tasks
  • Memory
  • Agents
  • Subagents
  • Automations
  • Skills
  • idapt Code
  • Code Execution
  • Computers
  • Computer Use
  • Computer Assist · Bientôt
  • Containers · Bientôt
  • Cloud Computers
  • Local AI
  • AI Gateway
  • API & SDK
  • CLI
  • MCP
  • Tunnels
  • All features →
  • LLM cost calculator
  • Token counter
  • Context window checker
  • Can I run it
  • Model picker quiz
  • Savings finder
  • Video cost estimator
  • Text to speech cost
  • Transcription cost
  • API endpoint tester
  • All free tools →
  • Blog
  • Cas d'usage
  • Comparisons
  • Best of
  • Skills
  • Learn
  • Changelog
  • Centre d'aide
  • FAQ
  • Confidentialité
  • Comparer tous les modèles
  • Support
  • idapt Code
  • Développeurs
  • Quickstarts
  • Référence API
  • Tarifs API
  • CLI
  • MCP
  • Downloads
  • Desktop
  • Badges and embeds
© idapt[email protected]ConditionsPolitique de confidentialitéMentions légalesSignaler un contenu
X (Twitter)