{"id":"online-bandit-model-routing-adaptation","slug":"online-bandit-model-routing-adaptation","name":"Online Bandit & Pareto Model Routing Adaptation (Cost / Latency / Quality Learning)","shortName":"Online bandit model routing adaptation","problemStatement":"Continuously adapt model and provider routing weights per task class using live latency, error-rate, and verifier pass-rate telemetry — routing routine steps to fast/cheap models while escalating hard steps to frontier reasoning models.","whenNotTopPick":"Enterprise AI gateway with semantic caching, guardrails, and virtual keys across teams — Portkey; observability-first proxy with header-based caching and cost analytics — Helicone; offline dataset Pareto scoring to set initial routing priors — Braintrust.","categoryIds":["cat-inference-apis","cat-observability"],"depotPickProviderId":"openrouter","depotPickRationale":"OpenRouter exposes unified routing across 300+ models with real-time provider latency/uptime telemetry, automatic fallback chains, price/throughput sorting, and zero markup on token rates (5.5% credit purchase fee as of 2026-10-28), making it the cleanest actuator for adaptive multi-model routing.","runnersUpIds":["portkey","helicone","braintrust"],"weights":{"capabilityFit":0.24,"pricePerformance":0.2,"latencyReliability":0.2,"developerDx":0.16,"privacyPosture":0.08,"lockInRisk":0.06,"maturity":0.06},"methodologyNotes":"Contextual bandit routing requires a trustworthy reward signal: never route purely on token price or TTFT without joining downstream task success (`verifiedSolvedCount`), or the router will collapse onto a fast model that fails silently.","tags":["learning","routing","bandit","pareto","model-routing","self-improvement","fallbacks"],"scoreMargin":-0.32,"isNearTie":true,"pickConfidenceBand":"near_tie_co_pick","nearTie":{"isNearTie":true,"scoreMargin":-0.32,"threshold":0.35,"pickConfidenceBand":"near_tie_co_pick","coPickProviderId":"portkey","coPickProviderName":"Portkey","coPickScore":8.36,"decidingFactor":"developerDx (9.2 vs 9)","methodologyWarning":"Top pick (8.04) and #2 runner-up (8.36) are separated by 0.32 points (<= 0.35 weight-sensitivity band). Treat them as co-picks and use the workload tie-breaker rule below rather than the raw composite decimal.","tieBreakerRule":"Enterprise AI gateway with semantic caching, guardrails, and virtual keys across teams — Portkey; observability-first proxy with header-based caching and cost analytics — Helicone; offline dataset Pareto scoring to set initial routing priors — Braintrust."},"evidenceStatus":{"decisionRole":"independent_prior_and_candidate_generator","positioning":"The independent, agent-readable prior for choosing AI infrastructure — not a universal router, generic marketplace, or synthetic leaderboard.","freshnessThresholdDays":30,"freshness_policy":{"policy_version":"agentdepot.freshness_policy.v1","threshold_days":30},"freshness_state":"fresh","editorial_freshness_state":"stale_prior","unqualified_current_pick_allowed":true,"pick_qualification":"qualified_current_pick","promotionClass":"deterministic_source_reverified","evidenceClass":"editorial_prior","staleDowngraded":false,"effectiveConfidence":"medium_reverified","confidenceHalfWidth":0.5,"pickScoreAgeDays":0,"editorialJudgmentAgeDays":44,"pricingAgeDays":3,"isPickScoreStale":false,"isPricingStale":false,"editorialJudgmentAsOf":"2026-09-14","pricingVerifiedAt":"2026-10-25","outcomeVerifiedAt":null,"effectiveVerifiedAsOf":"2026-10-28","downgradeReasons":[],"stalenessWarning":"Editorial judgment scored on 2026-09-14 (44d ago); promoted to deterministic_source_reverified on 2026-10-28 via deterministic pricing/source gate.","promotionGate":{"deterministicPricingCheck":true,"approvedScoreReaffirm":false,"pendingHumanReviewBlock":false,"zeroUnverifiedSkus":true,"costEfficiencyConsistent":true,"lockInAndReliabilityConsistent":true,"secondModelOrRuleAudit":true,"countersignReceiptIds":["cs-ed6287b1","cs-60b8a296","cs-3260f758"],"otsAttestationHead":"b32634d5784cbfe663be0a16cce4f60a3ff1c3d4490437be00361cb4ae5d5d59","sourceCheckDate":"2026-10-27","activePricingRowsCount":4,"freeResourcesCount":1,"runnerUpPricingRowsCount":57},"claimProvenance":{"claim_id":"claim:online-bandit-model-routing-adaptation:openrouter:depot-pick","provider_id":"openrouter","jtbd_id":"online-bandit-model-routing-adaptation","primary_url":"https://openrouter.ai/models","source_type":"primary_docs","source_revision":"sha256:45124cb1475229b7","observed_at":"2026-10-28","checked_at":"2026-10-28","claim_support_state":"claim_specific_supported","max_allowed_evidence_class":"replicated_outcome","defect_codes":[],"sources":[{"original_url":"https://openrouter.ai","final_url":"https://openrouter.ai","redirected":false,"http_status":200,"reachable":true,"source_type":"generic_homepage","is_claim_specific":false,"source_revision":"sha256:59c72dc88e3f789a","observed_at":"2026-10-28","checked_at":"2026-10-28"},{"original_url":"https://openrouter.ai/models","final_url":"https://openrouter.ai/models","redirected":false,"http_status":200,"reachable":true,"source_type":"primary_docs","is_claim_specific":true,"source_revision":"sha256:45124cb1475229b7","observed_at":"2026-10-28","checked_at":"2026-10-28"},{"original_url":"https://openrouter.ai/docs","final_url":"https://openrouter.ai/docs","redirected":false,"http_status":200,"reachable":true,"source_type":"primary_docs","is_claim_specific":true,"source_revision":"sha256:2bdfb05d7f903f95","observed_at":"2026-10-28","checked_at":"2026-10-28"}]},"verifiedOutcomeSummary":{"totalVerifiedReceipts":0,"byEvidenceTier":{"E0_ASSERTION":0,"E1_SOURCE_BOUND":0,"E2_DELIVERY":0,"E3_INDEPENDENT_OUTCOME":0,"E4_REPLICATED_OUTCOME":0},"bySubjectLayer":{"provider":0,"product":0,"model_version":0,"runtime_route":0}}},"pickScoreDetails":{"scoreRange":[7.54,8.54],"formattedScore":"8.0 ± 0.5 (7.5–8.5 · editorial_prior)","evidenceClass":"editorial_prior","promotionClass":"deterministic_source_reverified","staleDowngraded":false,"freshState":"fresh","freshness_state":"fresh","effectiveConfidence":"medium_reverified","confidenceInterval":{"low":7.54,"mid":8.04,"high":8.54,"halfWidth":0.5,"confidenceLevel":0.8,"basis":"deterministic_source_reverified_interval_0.5"},"editorialJudgmentAsOf":"2026-10-28","sourceAgeDays":44,"pricingVerifiedAt":"2026-10-25","pricingAgeDays":3,"outcomeVerifiedAt":null,"effectiveVerifiedAsOf":"2026-10-28","dissentingEvidence":["Extra platform fee and abstraction layer","End reliability = weakest upstream","Not ideal as sole production critical path without pinning providers","When not to use top pick: Enterprise AI gateway with semantic caching, guardrails, and virtual keys across teams — Portkey; observability-first proxy with header-based caching and cost analytics — Helicone; offline dataset Pareto scoring to set initial routing priors — Braintrust.","Runner-up Portkey (portkey) is the primary alternative when constraints disqualify OpenRouter."],"whatWouldChangePick":["Caller constraint matching: Enterprise AI gateway with semantic caching, guardrails, and virtual keys across teams — Portkey; observability-first proxy with header-based caching and cost analytics — Helicone; offline dataset Pareto scoring to set initial routing priors — Braintrust.","Live quota or rate-limit exhaustion on openrouter (pass ?exhausted=openrouter or liveQuota.exhaustedProviders=[\"openrouter\"] to promote portkey).","Active subscription or enterprise commit on portkey combined with low switching-cost tolerance (existingSubscriptions + switchingCost.maxMigrationEffort=\"low\").","Sourced price increase >20% on https://openrouter.ai or unverified SKU drift detected by npm run check:sources."],"claimProvenance":{"claim_id":"claim:online-bandit-model-routing-adaptation:openrouter:depot-pick","provider_id":"openrouter","jtbd_id":"online-bandit-model-routing-adaptation","primary_url":"https://openrouter.ai/models","source_type":"primary_docs","source_revision":"sha256:45124cb1475229b7","observed_at":"2026-10-28","checked_at":"2026-10-28","claim_support_state":"claim_specific_supported","max_allowed_evidence_class":"replicated_outcome","defect_codes":[],"sources":[{"original_url":"https://openrouter.ai","final_url":"https://openrouter.ai","redirected":false,"http_status":200,"reachable":true,"source_type":"generic_homepage","is_claim_specific":false,"source_revision":"sha256:59c72dc88e3f789a","observed_at":"2026-10-28","checked_at":"2026-10-28"},{"original_url":"https://openrouter.ai/models","final_url":"https://openrouter.ai/models","redirected":false,"http_status":200,"reachable":true,"source_type":"primary_docs","is_claim_specific":true,"source_revision":"sha256:45124cb1475229b7","observed_at":"2026-10-28","checked_at":"2026-10-28"},{"original_url":"https://openrouter.ai/docs","final_url":"https://openrouter.ai/docs","redirected":false,"http_status":200,"reachable":true,"source_type":"primary_docs","is_claim_specific":true,"source_revision":"sha256:2bdfb05d7f903f95","observed_at":"2026-10-28","checked_at":"2026-10-28"}]},"calibratedScore":{"point":8.04,"band":[7.54,8.54],"interval":{"lower":7.54,"upper":8.54,"half_width":0.5},"score_kind":"source_bound_prior_band","evidence_class":"source_bound","confidence":"low","confidence_ceiling":"medium","age_days":0,"dissent":["Extra platform fee and abstraction layer","End reliability = weakest upstream","Not ideal as sole production critical path without pinning providers","When not to use top pick: Enterprise AI gateway with semantic caching, guardrails, and virtual keys across teams — Portkey; observability-first proxy with header-based caching and cost analytics — Helicone; offline dataset Pareto scoring to set initial routing priors — Braintrust.","Runner-up Portkey (portkey) is the primary alternative when constraints disqualify OpenRouter."],"what_would_change_this":["Caller constraint matching: Enterprise AI gateway with semantic caching, guardrails, and virtual keys across teams — Portkey; observability-first proxy with header-based caching and cost analytics — Helicone; offline dataset Pareto scoring to set initial routing priors — Braintrust.","Live quota or rate-limit exhaustion on openrouter (pass ?exhausted=openrouter or liveQuota.exhaustedProviders=[\"openrouter\"] to promote portkey).","Active subscription or enterprise commit on portkey combined with low switching-cost tolerance (existingSubscriptions + switchingCost.maxMigrationEffort=\"low\").","Sourced price increase >20% on https://openrouter.ai or unverified SKU drift detected by npm run check:sources."],"subject_layer":"provider"},"subject_ref":{"layer":"provider","provider_id":"openrouter","product_id":"openrouter-core","model_id":null,"version":null,"route_class":null,"inheritance_policy":"no_cross_layer_inheritance"}},"runtimeRoutes":[{"routeId":"online-bandit-model-routing-adaptation:openrouter:primary","roleForJob":"depot_pick","provider":{"id":"openrouter","slug":"openrouter","name":"OpenRouter","website":"https://openrouter.ai","status":"active"},"model":{"representativeModelId":"anthropic/claude-sonnet-5.5","skuId":"openrouter-claude-sonnet-55-input","unit":"usd_per_million_input_tokens","amountUsd":2,"sourceUrl":"https://openrouter.ai/api/v1/models","asOf":"2026-10-28"},"servingRoute":{"primaryRouteType":"multi_provider_aggregator","endpointPattern":"https://openrouter.ai (multi provider aggregator)","aggregatorAlternatives":[]},"accountAndQuota":{"freeTierAvailable":true,"freeTierSummary":"OpenRouter :free variants and openrouter/free (free, asOf 2026-10-25)","rateLimitsSummary":"Free tier limits: {\"appliesTo\":\"model variants with an ID ending in :free\",\"requestsPerMinute\":20,\"requestsPerDayCreditsPurchasedLessThan10\":50,\"requestsPerDayCreditsPurchasedAtLeast10\":1000,\"dailyWindow\":\"UTC day\"}","subscriptionFirstEligible":true,"documentedPlansCount":0},"regions":{"supportedRegions":["global"],"multiRegionFailover":true,"euResidencyAvailable":true},"toolSchemaSupport":{"strictJsonSchema":true,"parallelToolCalls":true,"mcpServerAvailable":true,"streamingSupported":true},"latencyTier":{"tier":"standard_1s_to_5s","latencyReliabilityScore":7.6,"coldStartNotes":"Standard warm pool; check provider SLA for burst concurrency"},"privacyConfig":{"privacyPostureScore":6.8,"zeroDataRetentionAvailable":false,"trainsOnApiDataByDefault":false,"hipaaEligible":false,"selfHostable":false},"availabilityStatus":{"providerStatus":"active","verifiedActiveSkus":4,"unverifiedSkus":0,"liveFailoverTargetId":"portkey"},"subject_ref":{"layer":"runtime_route","subject_id":"runtime_route:openrouter:anthropic/claude-sonnet-5.5:multi_provider_aggregator:global","provider_id":"openrouter","product_id":"openrouter-core","model_id":"anthropic/claude-sonnet-5.5","version":"2026-10-28","route_class":"multi_provider_aggregator","region":"global","score_status":"unknown","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"},"distinctRouteSubjects":[{"layer":"runtime_route","subject_id":"runtime_route:openrouter:anthropic/claude-sonnet-5.5:direct_api:global","provider_id":"openrouter","product_id":"openrouter-core","model_id":"anthropic/claude-sonnet-5.5","version":"2026-10-28","route_class":"direct_api","region":"global","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"}]},{"routeId":"online-bandit-model-routing-adaptation:portkey:primary","roleForJob":"runner_up","provider":{"id":"portkey","slug":"portkey","name":"Portkey","website":"https://portkey.ai","status":"active"},"model":{"representativeModelId":"Production","skuId":"portkey-production-usd-per-month","unit":"usd_per_month","amountUsd":49,"sourceUrl":"https://portkey.ai/pricing","asOf":"2026-10-28"},"servingRoute":{"primaryRouteType":"multi_provider_aggregator","endpointPattern":"https://portkey.ai (multi provider aggregator)","aggregatorAlternatives":[]},"accountAndQuota":{"freeTierAvailable":false,"freeTierSummary":null,"rateLimitsSummary":"Developer: Developer Free Forever Free Forever Perfect for prototyping and testing or evaluating ente","subscriptionFirstEligible":true,"documentedPlansCount":2},"regions":{"supportedRegions":["global","us"],"multiRegionFailover":true,"euResidencyAvailable":true},"toolSchemaSupport":{"strictJsonSchema":true,"parallelToolCalls":true,"mcpServerAvailable":true,"streamingSupported":true},"latencyTier":{"tier":"standard_1s_to_5s","latencyReliabilityScore":8.6,"coldStartNotes":"Standard warm pool; check provider SLA for burst concurrency"},"privacyConfig":{"privacyPostureScore":8.2,"zeroDataRetentionAvailable":true,"trainsOnApiDataByDefault":false,"hipaaEligible":false,"selfHostable":false},"availabilityStatus":{"providerStatus":"active","verifiedActiveSkus":1,"unverifiedSkus":0,"liveFailoverTargetId":"openrouter"},"subject_ref":{"layer":"runtime_route","subject_id":"runtime_route:portkey:Production:multi_provider_aggregator:global","provider_id":"portkey","product_id":"portkey-core","model_id":"Production","version":"2026-10-28","route_class":"multi_provider_aggregator","region":"global","score_status":"unknown","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"},"distinctRouteSubjects":[{"layer":"runtime_route","subject_id":"runtime_route:portkey:Production:direct_api:global","provider_id":"portkey","product_id":"portkey-core","model_id":"Production","version":"2026-10-28","route_class":"direct_api","region":"global","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"}]},{"routeId":"online-bandit-model-routing-adaptation:helicone:primary","roleForJob":"runner_up","provider":{"id":"helicone","slug":"helicone","name":"Helicone","website":"https://www.helicone.ai","status":"active"},"model":{"representativeModelId":"Helicone Primary Runtime","skuId":null,"unit":null,"amountUsd":null,"sourceUrl":"https://www.helicone.ai","asOf":"2026-10-28"},"servingRoute":{"primaryRouteType":"managed_cloud_service","endpointPattern":"https://www.helicone.ai (managed cloud service)","aggregatorAlternatives":[{"aggregatorId":"direct-only","name":"Helicone Direct API","routeType":"first_party","tradeoff":"Direct vendor SDK/REST contract; pair with runner-up for multi-vendor failover."}]},"accountAndQuota":{"freeTierAvailable":false,"freeTierSummary":null,"rateLimitsSummary":"Hobby: Hobby Free Kickstart your AI project. 10,000 free requests 1 GB storage 1 seat, 1 organiza","subscriptionFirstEligible":true,"documentedPlansCount":3},"regions":{"supportedRegions":["global"],"multiRegionFailover":true,"euResidencyAvailable":true},"toolSchemaSupport":{"strictJsonSchema":true,"parallelToolCalls":false,"mcpServerAvailable":true,"streamingSupported":true},"latencyTier":{"tier":"standard_1s_to_5s","latencyReliabilityScore":8.4,"coldStartNotes":"Standard warm pool; check provider SLA for burst concurrency"},"privacyConfig":{"privacyPostureScore":7.5,"zeroDataRetentionAvailable":false,"trainsOnApiDataByDefault":false,"hipaaEligible":false,"selfHostable":false},"availabilityStatus":{"providerStatus":"active","verifiedActiveSkus":0,"unverifiedSkus":0,"liveFailoverTargetId":"openrouter"},"subject_ref":{"layer":"runtime_route","subject_id":"runtime_route:helicone:helicone-primary:managed_cloud_service:global","provider_id":"helicone","product_id":"helicone-core","model_id":"helicone-primary","version":"2026-10-28","route_class":"managed_cloud_service","region":"global","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"},"distinctRouteSubjects":[{"layer":"runtime_route","subject_id":"runtime_route:helicone:helicone-primary:direct_api:global","provider_id":"helicone","product_id":"helicone-core","model_id":"helicone-primary","version":"2026-10-28","route_class":"direct_api","region":"global","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"}]},{"routeId":"online-bandit-model-routing-adaptation:braintrust:primary","roleForJob":"runner_up","provider":{"id":"braintrust","slug":"braintrust","name":"Braintrust","website":"https://www.braintrust.dev","status":"active"},"model":{"representativeModelId":"Braintrust Primary Runtime","skuId":null,"unit":null,"amountUsd":null,"sourceUrl":"https://www.braintrust.dev","asOf":"2026-10-28"},"servingRoute":{"primaryRouteType":"managed_cloud_service","endpointPattern":"https://www.braintrust.dev (managed cloud service)","aggregatorAlternatives":[{"aggregatorId":"direct-only","name":"Braintrust Direct API","routeType":"first_party","tradeoff":"Direct vendor SDK/REST contract; pair with runner-up for multi-vendor failover."}]},"accountAndQuota":{"freeTierAvailable":false,"freeTierSummary":null,"rateLimitsSummary":"Starter: Starter For everyone $0 / month - $10 credits + tok rates - 1 GB processed data + $4/GB - ","subscriptionFirstEligible":true,"documentedPlansCount":2},"regions":{"supportedRegions":["us","global"],"multiRegionFailover":true,"euResidencyAvailable":true},"toolSchemaSupport":{"strictJsonSchema":true,"parallelToolCalls":false,"mcpServerAvailable":true,"streamingSupported":true},"latencyTier":{"tier":"standard_1s_to_5s","latencyReliabilityScore":8.6,"coldStartNotes":"Standard warm pool; check provider SLA for burst concurrency"},"privacyConfig":{"privacyPostureScore":8,"zeroDataRetentionAvailable":true,"trainsOnApiDataByDefault":false,"hipaaEligible":false,"selfHostable":false},"availabilityStatus":{"providerStatus":"active","verifiedActiveSkus":0,"unverifiedSkus":0,"liveFailoverTargetId":"openrouter"},"subject_ref":{"layer":"runtime_route","subject_id":"runtime_route:braintrust:braintrust-primary:managed_cloud_service:us","provider_id":"braintrust","product_id":"braintrust-core","model_id":"braintrust-primary","version":"2026-10-28","route_class":"managed_cloud_service","region":"us","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"},"distinctRouteSubjects":[{"layer":"runtime_route","subject_id":"runtime_route:braintrust:braintrust-primary:direct_api:us","provider_id":"braintrust","product_id":"braintrust-core","model_id":"braintrust-primary","version":"2026-10-28","route_class":"direct_api","region":"us","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"}]}],"depth":{"whenNotToUse":{"text":"Enterprise AI gateway with semantic caching, guardrails, and virtual keys across teams — Portkey; observability-first proxy with header-based caching and cost analytics — Helicone; offline dataset Pareto scoring to set initial routing priors — Braintrust.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"portkey","name":"Portkey","overallForJob":8.36,"pickOverallForJob":8.04,"beatsPickOn":["pricePerformance","latencyReliability","privacyPosture","maturity"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":4,"runnerUpLockInRisk":5,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":["OpenAI-compatible API (provider tag `openai-compat`)"],"runnerUpExitSignals":["OpenAI-compatible API (provider tag `openai-compat`)"],"pickNotes":[],"selfHostFallback":[],"migration":"The pick has lower stored lock-in risk than runner-up Portkey (4 vs 5). Pick exit signals: OpenAI-compatible API (provider tag `openai-compat`).","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"freshness":{"pick":{"score":{"asOf":"2026-10-28","ageDays":1,"stale":false,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-10-28","ageDays":1,"stale":false,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-28","sourceUrls":3,"sourcesReachable":3,"pricingRows":4,"pricingRowsReconfirmed":4,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}}},"whenNotTopPickRules":[{"ifConstraint":"exit:self_host_or_open_weights","recommendedProviderId":"portkey","activeModelOrSku":"portkey-production-usd-per-month","reason":"Enterprise AI gateway with semantic caching, guardrails, and virtual keys across teams — Portkey"},{"ifConstraint":"budget:cost_floor_priority","recommendedProviderId":"helicone","activeModelOrSku":"helicone-standard","reason":"observability-first proxy with header-based caching and cost analytics — Helicone"},{"ifConstraint":"escape_hatch_clause_3","recommendedProviderId":"braintrust","activeModelOrSku":"braintrust-pro","reason":"offline dataset Pareto scoring to set initial routing priors — Braintrust."}],"bootstrap":{"authType":"api_key","envVars":["OPENROUTER_API_KEY"],"signupUrl":"https://openrouter.ai/","apiKeyUrl":"https://openrouter.ai/settings/keys","docsUrl":"https://openrouter.ai/docs/quickstart","mcpServer":null,"cliInit":null,"sdkInstall":{"npm":"npm install @openrouter/ai-sdk-provider openai","pip":"pip install openai"},"installCommand":"npm install openai","activeModelOrSku":"anthropic/claude-sonnet-4-6","canonicalSnippet":"import OpenAI from \"openai\";\nconst client = new OpenAI({ baseURL: \"https://openrouter.ai/api/v1\", apiKey: process.env.OPENROUTER_API_KEY });\nconst res = await client.chat.completions.create({ model: \"anthropic/claude-sonnet-4-6\", messages: [{ role: \"user\", content: \"Hello\" }] });","verifyCommand":"curl -sS https://openrouter.ai/api/v1/auth/key -H \"Authorization: Bearer $OPENROUTER_API_KEY\""},"quickstartSpec":{"installCommand":"npm install openai","envVars":["OPENROUTER_API_KEY"],"activeModelOrSku":"anthropic/claude-sonnet-4-6","canonicalSnippet":"import OpenAI from \"openai\";\nconst client = new OpenAI({ baseURL: \"https://openrouter.ai/api/v1\", apiKey: process.env.OPENROUTER_API_KEY });\nconst res = await client.chat.completions.create({ model: \"anthropic/claude-sonnet-4-6\", messages: [{ role: \"user\", content: \"Hello\" }] });","sdkInstall":{"npm":"npm install @openrouter/ai-sdk-provider openai","pip":"pip install openai"},"verifyCommand":"curl -sS https://openrouter.ai/api/v1/auth/key -H \"Authorization: Bearer $OPENROUTER_API_KEY\"","apiKeyUrl":"https://openrouter.ai/settings/keys","docsUrl":"https://openrouter.ai/docs/quickstart","mcpServer":null,"bootstrapReason":null},"operationalGotchas":[{"code":"hidden_spend_tier_gates","severity":"warning","summary":"Extra platform fee and abstraction layer","sourceDate":"2026-10-28"},{"code":"hidden_spend_tier_gates","severity":"warning","summary":"End reliability = weakest upstream","sourceDate":"2026-10-28"}],"relatedPacks":[],"depotPick":{"id":"openrouter","slug":"openrouter","name":"OpenRouter","tagline":"Best multi-model router for agents that need failover and experimentation. Pin providers in production; don’t…","overall":8.04},"runnersUp":[{"id":"portkey","slug":"portkey","name":"Portkey","tagline":"Depot pick for production AI gateway (fallbacks, virtual keys, budgets). OpenRouter when you want a model…","overall":8.36},{"id":"helicone","slug":"helicone","name":"Helicone","tagline":"Maintenance mode since 2026-03-03 (Mintlify); site now says 'no longer part of Mintlify'. Runner-up only, not a pick.","overall":8.2},{"id":"braintrust","slug":"braintrust","name":"Braintrust","tagline":"Depot pick when evals are the product quality gate. Pair with Helicone/Langfuse for cheap request logs if…","overall":8.27}]}