{"jtbd":{"id":"multi-model-router","slug":"multi-model-router","name":"Multi-provider model routing","shortName":"Multi-provider model routing","problemStatement":"One integration to A/B models and fail over across vendors."},"pick":{"id":"openrouter","slug":"openrouter","name":"OpenRouter","tagline":"Best multi-model router for agents that need failover and experimentation. Pin providers in production; don’t…","website":"https://openrouter.ai","overall":8,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":8,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14: Multi-provider LLM router with OpenAI-compatible API; pass-through model pricing plus small platform fee. Best for prototyping multi-model and failover; production should pin critical paths to direct providers.","scores":{"capabilityFit":8.8,"pricePerformance":7.8,"latencyReliability":7.6,"developerDx":9.2,"privacyPosture":6.8,"lockInRisk":4,"maturity":7.8,"overall":8,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},"runnersUp":[{"id":"amazon-bedrock","slug":"amazon-bedrock","name":"Amazon Bedrock","tagline":"Enterprise multi-model switchboard. Great when AWS is mandatory; mediocre when you just want the best Claude…","website":"https://aws.amazon.com/bedrock/","overall":7.75,"scoreBand":{"low":7.2,"mid":7.8,"high":8.4,"halfWidth":0.6,"basis":"editorial_prior","display":"7.2–8.4 (editorial prior)"},"scoreLayers":{"editorialPrior":7.75,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"Pay-per-token for Claude, Llama, Amazon, Cohere, etc.; Provisioned Throughput for steady load. AWS marketplace billing.","scores":{"capabilityFit":8.8,"pricePerformance":6,"latencyReliability":9.2,"developerDx":6.8,"privacyPosture":9,"lockInRisk":7,"maturity":9.6,"overall":7.75,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"vertex-ai","slug":"vertex-ai","name":"Google Vertex AI","tagline":"Enterprise Gemini path. Use AI Studio for prototypes, Vertex when security review starts asking questions.","website":"https://cloud.google.com/vertex-ai","overall":7.96,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":7.96,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14: Google Cloud Vertex AI model garden + Gemini; billed in GCP currency with enterprise controls, VPC-SC, and committed use discounts. Prefer Google AI Studio/API for indie DX; Vertex for enterprise residency/IAM.","scores":{"capabilityFit":9,"pricePerformance":7,"latencyReliability":9,"developerDx":7.2,"privacyPosture":8.8,"lockInRisk":7.5,"maturity":9.6,"overall":7.96,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"together","slug":"together","name":"Together AI","tagline":"Best catalog breadth for OSS models. Watch minimums and lifetime spend gates before you design around a gated…","website":"https://www.together.ai","overall":8.2,"scoreBand":{"low":7.6,"mid":8.2,"high":8.8,"halfWidth":0.6,"basis":"editorial_prior","display":"7.6–8.8 (editorial prior)"},"scoreLayers":{"editorialPrior":8.2,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14: Open-model inference + fine-tune on one OpenAI-compatible API; competitive per-token rates (often ~$0.15–$0.90/MTok class depending on model). Strong for Llama/Qwen/DeepSeek families; Dedicated endpoints available.","scores":{"capabilityFit":8.5,"pricePerformance":9,"latencyReliability":8,"developerDx":8.4,"privacyPosture":7.2,"lockInRisk":3.5,"maturity":8.2,"overall":8.2,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"portkey","slug":"portkey","name":"Portkey","tagline":"Depot pick for production AI gateway (fallbacks, virtual keys, budgets). OpenRouter when you want a model…","website":"https://portkey.ai","overall":8.31,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.31,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (portkey.ai/pricing): Developer free forever (10k logs/mo, 3-day log / 30-day metrics retention). Production $49/mo (100k logs, +$9/100k overage, 30/90-day retention, guardrails, RBAC). Enterprise custom (10M+ logs, VPC, HIPAA/BAA, private cloud). OSS self-host gateway available. Note: packaging increasingly tied to Palo Alto Prisma AIRS AI Gateway narrative — same lineage as catalogued prisma-airs enterprise SKU.","scores":{"capabilityFit":8.8,"pricePerformance":8.2,"latencyReliability":8.6,"developerDx":9,"privacyPosture":8.2,"lockInRisk":5,"maturity":8.2,"overall":8.31,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}}],"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":8,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"whyPickOverHigherScore":{"pickId":"openrouter","pickName":"OpenRouter","pickScore":8,"highestScoredCandidateId":"portkey","highestScoredCandidateName":"Portkey","highestScore":8.31,"pickHasLowerCompositeScore":true,"delta":-0.31,"pickLeadsOnDimensions":["developerDx (9.2 vs 9)","lower lockInRisk (4 vs 5)"],"explanation":"OpenRouter (8) is the editorial pick for Multi-provider model routing over higher-composite Portkey (8.31) because composite scores are provider-wide priors while OpenRouter wins on developerDx (9.2 vs 9), lower lockInRisk (4 vs 5): dx + capability breadth; reliability discounted because upstream variance."},"cheapest":{"providerId":"amazon-bedrock","providerName":"Amazon Bedrock","skuId":"amazon-bedrock-gemma-3-4b-in","item":"Gemma 3 4B","plan":"Gemma 3 4B — Standard on-demand","unit":"usd_per_million_input_tokens","amountUsd":0.04,"isFloorPrice":true,"floorWarning":"Provider-wide floor SKU; may not be the flagship model scored for this JTBD.","skuCountInUnit":26,"isDepotPick":false,"sourceUrl":"https://aws.amazon.com/bedrock/pricing/","asOf":"2026-10-03","verifiedAsOf":"2026-10-27"},"recommendedWorkloadQuote":{"providerId":"openrouter","providerName":"OpenRouter","skuId":"openrouter-claude-sonnet-55-input","item":"anthropic/claude-sonnet-5.5","plan":"anthropic/claude-sonnet-5.5 — OpenRouter pass-through field, not copied onto the anthropic provider","unit":"usd_per_million_input_tokens","amountUsd":2,"outputSkuId":"openrouter-claude-sonnet-55-output","outputItem":"anthropic/claude-sonnet-5.5","outputAmountUsd":10,"outputUnit":"usd_per_million_output_tokens","sourceUrl":"https://openrouter.ai/api/v1/models","asOf":"2026-10-03","pricingLastVerifiedAt":"2026-10-27","isFlagshipForJob":false,"differsFromFloorCheapest":false,"representativeQuote":{"skuId":"openrouter-claude-sonnet-55-input","item":"anthropic/claude-sonnet-5.5","plan":"anthropic/claude-sonnet-5.5 — OpenRouter pass-through field, not copied onto the anthropic provider","amountUsd":2,"inputOrUnitUsd":2,"unit":"usd_per_million_input_tokens","outputUsd":10,"outputUnit":"usd_per_million_output_tokens","sourceUrl":"https://openrouter.ai/api/v1/models","asOf":"2026-10-03"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"inputTokensPerTask":4000,"outputTokensPerTask":1000,"baseCostPer1kTasksUsd":18,"totalUsd":20.7,"estimatedTotalUsd":20.7,"perTaskUsd":0.0207,"estimatedCostPerTaskUsd":0.0207,"formula":"((4,000 in * $2/1M + 1,000 out * $10/1M) * 1,000 tasks) * 1.15 overhead","assumptions":"1,000 agent tasks @ 4k input + 1k output tokens/task with 1.15x retry/tool-call overhead."}},"representativeQuote":{"skuId":"openrouter-claude-sonnet-55-input","item":"anthropic/claude-sonnet-5.5","plan":"anthropic/claude-sonnet-5.5 — OpenRouter pass-through field, not copied onto the anthropic provider","amountUsd":2,"inputOrUnitUsd":2,"unit":"usd_per_million_input_tokens","outputUsd":10,"outputUnit":"usd_per_million_output_tokens","sourceUrl":"https://openrouter.ai/api/v1/models","asOf":"2026-10-03"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"inputTokensPerTask":4000,"outputTokensPerTask":1000,"baseCostPer1kTasksUsd":18,"totalUsd":20.7,"estimatedTotalUsd":20.7,"perTaskUsd":0.0207,"estimatedCostPerTaskUsd":0.0207,"formula":"((4,000 in * $2/1M + 1,000 out * $10/1M) * 1,000 tasks) * 1.15 overhead","assumptions":"1,000 agent tasks @ 4k input + 1k output tokens/task with 1.15x retry/tool-call overhead."},"freeAlternatives":[{"id":"litellm-oss","name":"LiteLLM","kind":"dev_tool","jtbdIds":["llm-ai-gateway","multi-model-router"],"whatYouGet":"Self-hosted OpenAI-compatible gateway. Code outside enterprise/ is MIT. Provider tokens are not included.","cost":"oss","license":"MIT outside enterprise/","sourceUrl":"https://github.com/BerriAI/litellm/blob/main/LICENSE","notes":"enterprise/ uses enterprise/LICENSE. No free hosted quota is stated here. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): GitHub blob page HTTP 200, no redirect (page chrome differs between fetches); raw LICENSE fetched twice too, HTTP 200, byte-identical: 'available under the MIT license' / 'Copyright (c) 2023 Berri AI'. The LICENSE still names only the 'enterprise/' directory. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"dev_tool","substitutable":true},{"id":"openrouter-free-variants","name":"OpenRouter :free variants and openrouter/free","kind":"free_inference","providerId":"openrouter","jtbdIds":["cheap-volume-llm","multi-model-router","budget-open-inference"],"whatYouGet":"Model ids ending in :free, and the openrouter/free router, are priced at zero on OpenRouter. Which models have a free entry changes.","cost":"free","sourceUrl":"https://openrouter.ai/docs/api_reference/limits","notes":"Fetched twice 2026-10-25 about 10 s apart without logging in: https://openrouter.ai/docs/api/reference/limits answers HTTP 308 to https://openrouter.ai/docs/api_reference/limits (HTTP 200; same tag-stripped text both times; no last-modified header; page metadata dateModified 2026-10-10T16:11:54Z). The HTML table cells are empty until scripts run (the page defines the values as constants), so the numbers are taken from the page's markdown view https://openrouter.ai/docs/api_reference/limits.md (HTTP 200, fetched twice, identical): 'Free usage limits: If you're using a free model variant (with an ID ending in `:free`), the following limits apply:' table 'Credits purchased (all time) | Requests per minute | Requests per day', 'Less than 10 | 20 | 50', 'At least 10 | 20 | 1000'. 'Free-model requests allowed per UTC day (see the free usage limits below)'. 'On free variants, purchase at least 10 credits to raise your daily limit, or switch to the paid variant of the model, which has no platform-level request cap.' 'If your account has a negative credit balance, you may see errors, including for free models.' (the HTML renders the status code as a component: 402 Payment Required). The one-credit-below-threshold grace is shown only as the unrendered placeholder '{FREE_MODEL_CREDITS_THRESHOLD - 1}', so it is not stored. The page does not say whether openrouter/free draws on the same caps. Third-party tables were not copied. Do not copy OpenRouter prices or limits onto other Depot providers.","limits":{"appliesTo":"model variants with an ID ending in :free","requestsPerMinute":20,"requestsPerDayCreditsPurchasedLessThan10":50,"requestsPerDayCreditsPurchasedAtLeast10":1000,"dailyWindow":"UTC day"},"license":null,"asOf":"2026-10-25","freeType":"free_inference","substitutable":true}],"referenceDocs":[],"falsification":{"jtbdId":"multi-model-router","jtbdName":"Multi-provider model routing","currentPickId":"openrouter","currentPickScore":8,"challengerId":"amazon-bedrock","challengerScore":7.75,"currentScoreGap":0.25,"minVerifiedOutcomes":10,"requiredOutcomeMargin":0.4,"requiredSuccessRateDelta":0.15,"maxPickPriceIncreasePct":25,"whatWouldChangePick":["Amazon Bedrock (amazon-bedrock) outperforms OpenRouter (openrouter) by >= 0.4 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on OpenRouter's representative SKU for multi-model-router without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=openrouter) or sustained >= 30% degraded/failed rate in verified production outcomes."],"frozenHoldoutPolicy":{"holdoutSplit":"20% frozen benchmark holdout tasks + 80% live production outcome receipts","requireCountersignReceipt":true,"requiredEvidenceTiers":["outcome_verified","reference_checked"],"minDistinctContributors":2,"antiGamingRule":"Unverified self-reports and seed/editorial rows never mutate picks or scores."},"triggers":[{"kind":"verified_outcomes_outperformance","challengerId":"amazon-bedrock","minVerifiedOutcomes":10,"requiredOutcomeMargin":0.4,"requiredWorkedRateDelta":0.15},{"kind":"verified_price_increase","providerId":"openrouter","maxPriceIncreasePct":25},{"kind":"live_rail_exhaustion_or_degradation","providerId":"openrouter","immediateOverrideUrl":"/api/decide?jtbd=multi-model-router&exhausted=openrouter"}],"submissionSpec":{"falsifyEndpoint":"/api/falsify?jtbd=multi-model-router","outcomesEndpoint":"POST /api/feedback","correctionsEndpoint":"POST /api/corrections","payloadTemplate":{"agentIdentity":"agent:<your-agent-id>","jtbdId":"multi-model-router","providerId":"amazon-bedrock","outcome":"worked","detail":"Comparative production evaluation on multi-model-router (n>=10 tasks) with Countersign receipt.","confidence":"high","receipt":{"countersign":{"claim_id":"cs-00000000","status":"verified","evidence_tier":"outcome_verified","counts_as_verified":true}}}}},"whatWouldChangePick":["Amazon Bedrock (amazon-bedrock) outperforms OpenRouter (openrouter) by >= 0.4 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on OpenRouter's representative SKU for multi-model-router without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=openrouter) or sustained >= 30% degraded/failed rate in verified production outcomes."],"routePlan":{"jtbdId":"multi-model-router","primary":{"providerId":"openrouter","name":"OpenRouter","overall":8,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":8,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"primary","reason":"Editorial Depot Pick for Multi-provider model routing; healthy/eligible under caller constraints."},"fallback":[{"providerId":"amazon-bedrock","name":"Amazon Bedrock","overall":7.75,"scoreBand":{"low":7.2,"mid":7.8,"high":8.4,"halfWidth":0.6,"basis":"editorial_prior","display":"7.2–8.4 (editorial prior)"},"scoreLayers":{"editorialPrior":7.75,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Multi-provider model routing."},{"providerId":"vertex-ai","name":"Google Vertex AI","overall":7.96,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":7.96,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Multi-provider model routing."},{"providerId":"together","name":"Together AI","overall":8.2,"scoreBand":{"low":7.6,"mid":8.2,"high":8.8,"halfWidth":0.6,"basis":"editorial_prior","display":"7.6–8.8 (editorial prior)"},"scoreLayers":{"editorialPrior":8.2,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Multi-provider model routing."},{"providerId":"portkey","name":"Portkey","overall":8.31,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.31,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Multi-provider model routing."},{"providerId":"cloudflare-ai-gateway","name":"Cloudflare AI Gateway","overall":8.41,"scoreBand":{"low":7.8,"mid":8.4,"high":9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.8–9.0 (editorial prior)"},"scoreLayers":{"editorialPrior":8.41,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Multi-provider model routing."},{"providerId":"helicone","name":"Helicone","overall":8.13,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.13,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-10-19","role":"fallback","reason":"Ranked fallback route for Multi-provider model routing."}],"disqualified":[],"expectedRegret":{"scoreDeltaVsUnconstrainedPick":0,"unconstrainedPickId":"openrouter","activePrimaryId":"openrouter","summary":"0.00 score regret: unconstrained editorial pick satisfies all caller constraints."},"evidenceAgeDays":{"editorialScoreAgeDays":43,"pricingVerifiedAgeDays":0,"editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27"},"confidenceBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"constraintsApplied":false,"constraintBundle":{"task":null,"jtbd":"multi-model-router","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]}},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","tie":false,"scoreGap":0.25,"decidingFactor":null,"tieNote":null,"rationale":"dx + capability breadth; reliability discounted because upstream variance.","whenNotTopPick":"Need a single-vendor enterprise SLA — pin Anthropic/OpenAI or use Bedrock/Vertex as the governed router.","skipTopPick":false,"skipReason":null,"matchedConstraints":[],"pricingSummary":"As of 2026-09-14: Multi-provider LLM router with OpenAI-compatible API; pass-through model pricing plus small platform fee. Best for prototyping multi-model and failover; production should pin critical paths to direct providers.","cite":"Depot Pick for multi-model-router: openrouter (asOf 2026-09-14). See GET /api/jtbds/multi-model-router + GET /api/methodology.","nextActions":[{"step":1,"title":"Inspect full JTBD + embeds","href":"/api/jtbds/multi-model-router?embed=providers","why":"Confirm pick, runners-up, and methodology notes."},{"step":2,"title":"Quote sourced SKUs","href":"/api/quote?jtbd=multi-model-router","why":"Depot Pick SKUs plus the cheapest sourced SKU whose unit matches this job. Does not change the pick. Does not blend input and output or borrow a chat rate for a non-chat job."},{"step":3,"title":"Open provider detail","href":"/api/providers/openrouter","why":"Scores, pricingNotes, strengths/weaknesses, communitySignals (claims only)."},{"step":4,"title":"Cite methodology","href":"/api/methodology","why":"Required when publishing a Depot Pick citation."},{"step":5,"title":"Grab badge SVG","href":"/api/badge?type=depot-pick&jtbd=multi-model-router","why":"Embed in README / agent passport."},{"step":6,"title":"Post production insight","method":"POST","href":"/api/insights","why":"Unverified until curated; never auto-mutates official scores."}],"honesty":["Do not invent scores or benches.","Insights are claims until curated/reviewed; they never silently mutate official scores.","lockInRisk higher = more lock-in (worse).","normalizedUsdPerMillionTokens is set only for a single sourced token row. Otherwise null, with a machine-readable reason. Do not coerce GPU, minute, or per-1k search units.","Runners-up are not Depot Picks.","Depot overall is editorial_weighted, not Arena Elo and not an Artificial Analysis index."],"asOf":"2026-09-14","depth":{"whenNotToUse":{"text":"Need a single-vendor enterprise SLA — pin Anthropic/OpenAI or use Bedrock/Vertex as the governed router.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"amazon-bedrock","name":"Amazon Bedrock","overallForJob":7.75,"pickOverallForJob":8,"beatsPickOn":["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":7,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":["OpenAI-compatible API (provider tag `openai-compat`)"],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[{"id":"litellm-oss","name":"LiteLLM","license":"MIT outside enterprise/","sourceUrl":"https://github.com/BerriAI/litellm/blob/main/LICENSE"}],"migration":"The pick has lower stored lock-in risk than runner-up Amazon Bedrock (4 vs 7). Pick exit signals: OpenAI-compatible API (provider tag `openai-compat`). Self-host fallback listed for this job: LiteLLM.","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."}},"citation":{"text":"Agent Provider Depot (v0.12.147), Depot Pick for multi-model-router: openrouter, scores as of 2026-09-14, retrieved 2026-10-27. https://getagentdepot.com/jtbds/multi-model-router","markdown":"[Agent Provider Depot](https://getagentdepot.com/jtbds/multi-model-router) (v0.12.147) — Depot Pick for `multi-model-router`: **openrouter** (scores as of 2026-09-14, retrieved 2026-10-27)","fields":{"publisher":"Agent Provider Depot","version":"0.12.147","role":"depot_pick","jtbdId":"multi-model-router","providerId":"openrouter","scoreAsOf":"2026-09-14","retrievedOn":"2026-10-27","page":"https://getagentdepot.com/jtbds/multi-model-router","api":"https://getagentdepot.com/api/decide?jtbd=multi-model-router"},"howToCite":"Cite Depot as an editorial, dated recommendation, not a benchmark: name the job, the Depot Pick (or runner-up), the score asOf date and the day you retrieved it, and link the job page. Format: “Agent Provider Depot (v{version}), Depot Pick for {jobId}: {providerId}, scores as of {scoreAsOf}, retrieved {retrievedOn}. {baseUrl}/jtbds/{jobId}”. Quote prices only with their own sourceUrl and asOf. If the pick's score is stale (freshness.pick.score.stale), say so."},"freshness":{"pick":{"score":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","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}},"scoreAsOf":"2026-09-14","editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27","pickLastReviewed":"2026-09-14","runnersUpScoreAsOf":["2026-09-14","2026-09-14","2026-09-14","2026-09-14"],"contractAsOf":"2026-10-03","pricingShape":"sourced_rows","normalizedUsdPerMillionTokens":null,"normalizationStatus":"ambiguous","normalizationReason":"input_output_split_not_a_single_rate"},"pricingContract":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"ambiguous","normalizationReason":"input_output_split_not_a_single_rate","shape":"sourced_rows","filterable":false,"priceSortEligible":true,"priceSortKeyUsdPerMillionInputTokens":2,"rows":[{"id":"openrouter-claude-sonnet-55-input","providerId":"openrouter","sku":"anthropic/claude-sonnet-5.5","unit":"usd_per_million_input_tokens","amountUsd":2,"currency":"USD","sourceUrl":"https://openrouter.ai/api/v1/models","asOf":"2026-10-03","normalizationStatus":"sourced_token_price","normalizedUsdPerMillionTokens":2,"normalizationReason":"per_token_field_times_1e6","priceSortEligible":true,"qualifier":"OpenRouter pass-through field, not copied onto the anthropic provider. pricing.prompt raw 0.000002. Docs: cost per input token, USD.","raw":{"field":"pricing.prompt","amount":"0.000002","unit":"usd_per_token","unitSourceUrl":"https://openrouter.ai/docs/guides/overview/models"}},{"id":"openrouter-claude-sonnet-55-output","providerId":"openrouter","sku":"anthropic/claude-sonnet-5.5","unit":"usd_per_million_output_tokens","amountUsd":10,"currency":"USD","sourceUrl":"https://openrouter.ai/api/v1/models","asOf":"2026-10-03","normalizationStatus":"sourced_token_price","normalizedUsdPerMillionTokens":10,"normalizationReason":"per_token_field_times_1e6","priceSortEligible":false,"qualifier":"pricing.completion raw 0.00001","raw":{"field":"pricing.completion","amount":"0.00001","unit":"usd_per_token","unitSourceUrl":"https://openrouter.ai/docs/guides/overview/models"}},{"id":"openrouter-grok-47-input","providerId":"openrouter","sku":"x-ai/grok-4.7","unit":"usd_per_million_input_tokens","amountUsd":2,"currency":"USD","sourceUrl":"https://openrouter.ai/api/v1/models","asOf":"2026-10-03","normalizationStatus":"sourced_token_price","normalizedUsdPerMillionTokens":2,"normalizationReason":"per_token_field_times_1e6","priceSortEligible":true,"qualifier":"Base prompt field only. Response also has overrides at min_prompt_tokens 200000 (prompt 0.000004). Not blended.","raw":{"field":"pricing.prompt","amount":"0.000002","unit":"usd_per_token","unitSourceUrl":"https://openrouter.ai/docs/guides/overview/models"}},{"id":"openrouter-grok-47-output","providerId":"openrouter","sku":"x-ai/grok-4.7","unit":"usd_per_million_output_tokens","amountUsd":6,"currency":"USD","sourceUrl":"https://openrouter.ai/api/v1/models","asOf":"2026-10-03","normalizationStatus":"sourced_token_price","normalizedUsdPerMillionTokens":6,"normalizationReason":"per_token_field_times_1e6","priceSortEligible":false,"qualifier":"pricing.completion raw 0.000006","raw":{"field":"pricing.completion","amount":"0.000006","unit":"usd_per_token","unitSourceUrl":"https://openrouter.ai/docs/guides/overview/models"}}],"notesExcerpt":"As of 2026-09-14: Multi-provider LLM router with OpenAI-compatible API; pass-through model pricing plus small platform fee. Best for prototyping multi-model and failover; production should pin critical paths to direct providers.","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-09-14","scoreAsOf":"2026-09-14","website":"https://openrouter.ai","doNotParse":"Do not parse pricingNotes. Use rows only. normalizedUsdPerMillionTokens is a single number only when this provider has exactly one sourced token row. Input/output, context tiers, and non-token units stay null at this level.","gap":"Partial coverage. Providers without a fetched SKU are omitted. See GET /api/pricing."},"links":{"jtbd":"/jtbds/multi-model-router","jtbdApi":"/api/jtbds/multi-model-router","leaderboard":"/api/leaderboards?jtbd=multi-model-router","methodology":"/api/methodology","badge":"/api/badge?type=depot-pick&jtbd=multi-model-router","decide":"/api/decide?jtbd=multi-model-router","humanPage":"/jtbds/multi-model-router","alternatives":"/api/alternatives?provider=openrouter","canonical":"/api/canonical","quote":"/api/quote?jtbd=multi-model-router","falsify":"/api/falsify?jtbd=multi-model-router"},"constraintBundle":{"task":null,"jtbd":"multi-model-router","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]},"stackContext":{"host":null,"framework":null,"repo":null,"lang":null,"existing":[],"volume":null,"sender":null,"detectedFromTask":[]},"keep":null,"contextAdvice":null,"communityFeedback":{"pickOnThisJob":{"failed":0,"degraded":0,"worked":0,"insights":0,"withVerifiedReceipt":0,"failureModes":{},"latestAt":null,"note":"Agent-reported claims (unverified unless a receipt is verified by Depot's re-check). They never change scores or picks."},"outcomes":{"job":{"n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"verifiedReports":0,"contributors":0,"excluded":{"seed_editorial":0,"test":0,"notFeedback":0},"reason":"no_submitted_outcome_reports_yet"},"pick":{"providerId":"openrouter","n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"evidenceTiers":{"agent_claim":0,"self_declared":0,"reference_checked":0,"outcome_verified":0},"reason":"no_submitted_outcome_reports_yet"},"scoresMutated":false,"more":"/api/outcomes?jtbd=multi-model-router"},"report":"POST /api/feedback {agentIdentity, outcome: failed|degraded|worked, detail, providerId, jtbdId, failureModeId?, receipt?}"}}