{
  "data": {
    "a": {
      "slug": "litellm",
      "name": "LiteLLM",
      "vendor": "BerriAI",
      "vendorUrl": "https://www.litellm.ai",
      "kind": "router",
      "category": "inference",
      "summary": "Open-source Python SDK and self-hosted AI gateway from BerriAI that puts 100+ model providers behind one OpenAI-compatible API, with virtual keys, spend tracking, budgets, fallbacks, guardrails and an MCP gateway.",
      "url": "https://www.anchorterminal.com/tools/litellm",
      "markdownUrl": "https://www.anchorterminal.com/tools/litellm.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/litellm.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/litellm.json",
      "dns": "litellm.grade.anchorterminal.com",
      "repo": "https://github.com/BerriAI/litellm",
      "license": "MIT, except the enterprise/ directory, which is under its own licence and needs an Enterprise licence key",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "litellm"
        },
        {
          "registry": "docker",
          "name": "docker.litellm.ai/berriai/litellm"
        }
      ],
      "auth": "api-key",
      "authNotes": "The gateway takes a Bearer key. `LITELLM_MASTER_KEY` is required at start-up and has full admin rights. Virtual keys, stored hashed, carry model, route, MCP server, budget, rate-limit and expiry limits and can be blocked. Key rotation with a grace period, SSO beyond five users, SCIM and JWT/OIDC auth need an Enterprise licence. `/key/info` takes the key being looked up as a `?key=` query parameter.",
      "pricing": "freemium",
      "pricingNotes": "Free to self-host under MIT, with no account or card. Model calls bill at each upstream provider's own prices on the operator's keys. Enterprise (SSO, audit logs, key rotation, team-scoped guardrails, support SLAs) is an annual licence priced through sales, with a 30-day trial key emailed after a form and no card (https://www.litellm.ai/pricing, https://www.litellm.ai/enterprise).",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index or the llms-full.txt file, read 2026-10-06. The gateway forwards to providers on the operator's keys.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 62841,
        "npmWeekly": null,
        "pypiWeekly": 22493278,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.litellm.ai",
      "llmsTxt": "https://docs.litellm.ai/llms.txt",
      "openapi": "https://docs.litellm.ai/api-reference/",
      "capabilities": [
        "inference.router",
        "obs.gateway",
        "agent.mcp-client",
        "guard.pii"
      ],
      "tags": [
        "self-hosted",
        "open-source",
        "router",
        "gateway",
        "mcp",
        "openapi",
        "llms-txt",
        "python",
        "docker",
        "bug-bounty",
        "soc2"
      ],
      "lastRelease": "2026-11-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.4,
        "grade": "B",
        "agentReady": false,
        "rank": 559,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 20,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 82,
          "payments": 60,
          "reliability": 70,
          "schema": 91,
          "security": 72,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": -12,
        "negativeNotes": [
          "2026-03-24, -6. litellm 1.82.7 and 1.82.8 were uploaded to PyPI with a credential stealer that read environment variables, SSH keys, cloud and Kubernetes credentials and sent them to models.litellm.cloud. They were live for about 40 minutes before PyPI quarantined them, after a token leaked through the Trivy compromise. BerriAI published indicators, checksums and a rebuilt pipeline (v1.83.0, 30 March). A supply-chain incident that reached users, fixed, documented and six months old. https://docs.litellm.ai/blog/security-update-march-2026, https://api.osv.dev/v1/vulns/GHSA-5mg7-485q-xm76",
          "2026-04-24, -2. GHSA-r75f-5x8p-qvmc (CVE-2026-42208, critical). An unauthenticated SQL injection through the `Authorization` header in proxy key verification, affecting 1.81.16 up to 1.83.7. Fixed and published, inside six months. https://api.osv.dev/v1/vulns/GHSA-r75f-5x8p-qvmc",
          "2026-06-16, -2. GHSA-4xpc-pv4p-pm3w (CVE-2026-49468, critical). A crafted Host header could reach protected management routes without authentication where nothing upstream normalises Host. Fixed in 1.84.0. https://api.osv.dev/v1/vulns/GHSA-4xpc-pv4p-pm3w",
          "2026-08-27, -2. GHSA-6wvf-77m9-58rm (CVE-2026-37004, critical). Server-side template injection in /prompts/test let unauthenticated callers run OS commands in 1.82.4 and earlier, fixed in 1.83.7. Published months after the fix. https://api.osv.dev/v1/vulns/GHSA-6wvf-77m9-58rm",
          "Not deducted separately. 26 other GitHub advisories published between 6 November 2025 and 6 November 2026 (one more critical, ten high, six moderate and nine low), among them an OIDC cache-key collision (GHSA-jjhc-v7c2-5hh6), authenticated credential exfiltration through request-body routing (GHSA-3cv6-jpf6-8222, 30 September 2026) and, on 27 October 2026, privilege escalation from internal_user to proxy_admin through reuse of the salt key (GHSA-7hp6-4w63-5g45, high) and an arbitrary local file read by internal_user_viewer (GHSA-g5ff-637f-6q2m, high). All handled in public with fixes. https://api.osv.dev/v1/query"
        ],
        "verdict": "An MIT-licensed gateway that puts 100+ model providers behind one OpenAI-compatible API, with virtual keys, budgets, fallbacks and an MCP gateway, released several times a week. Its security record is the main limitation. Two PyPI releases carried a credential stealer on 24 March 2026, and 30 GitHub advisories followed in 12 months, five of them critical.",
        "bestFor": "Teams that want one OpenAI-compatible endpoint over many providers on their own infrastructure, with per-key budgets, model allowlists and an MCP gateway.",
        "strengths": [
          "MIT core, self-hosted, with no telemetry when self-hosted per the data security page",
          "Virtual keys limited by model, route, MCP server, budget, rate and expiry, and blockable at once",
          "Every proxy serves Swagger, ReDoc and /openapi.json, and the docs have llms.txt with a Markdown twin of every page",
          "Error reference tells a gateway 429 (with `retry-after`, `rate_limit_type`, `reset_at`) from a provider 429",
          "v1.108.1 on 5 November 2026, 125 tags since 8 August, and four stable minor lines supported with patches"
        ],
        "weaknesses": [
          "litellm 1.82.7 and 1.82.8 on PyPI carried a credential stealer for about 40 minutes on 24 March 2026",
          "30 GitHub advisories from 6 November 2025 to 6 November 2026, five critical, including unauthenticated SQL injection fixed in 1.83.7",
          "Key rotation, audit logs and SSO beyond five users need an Enterprise licence, priced only through sales",
          "Breaking changes ship in weekly minor releases on the 1.x line, and lines older than the latest four stop getting fixes",
          "The default Docker image runs as root, and the Swagger, ReDoc and OpenAPI pages are public until switched off"
        ],
        "agentNotes": [
          "Pin an exact litellm version or image digest, verify the cosign signature, and never install an unpinned latest in CI",
          "Give each agent a virtual key limited to its models, routes and MCP servers, with a budget and an expiry",
          "Treat a 429 with `retry-after` as the gateway's own limit and wait that long; a 429 without it came from the provider",
          "Set `NO_DOCS`, `NO_REDOC` and `NO_OPENAPI` to True in production, and use the `-non_root` image variant",
          "Set `LITELLM_LOCAL_MODEL_COST_MAP=True` where egress is blocked, since start-up otherwise fetches the price map from GitHub"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.4
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 82,
          "payments": 60,
          "reliability": 70,
          "schema": 91,
          "security": 72,
          "transparency": 77
        },
        "provenanceScore": 49,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install litellm   # SDK; gateway: curl -sSLO https://github.com/BerriAI/litellm/raw/main/docker/docker-compose.quickstart.yml \u0026\u0026 docker compose -f docker-compose.quickstart.yml up -d",
        "http": "curl http://localhost:4000/v1/chat/completions \\\n  -H 'Authorization: Bearer sk-\u003cyour-virtual-key\u003e' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"model\": \"gpt-5.6-terra\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Say hello in five words.\"}]\n  }'",
        "claudeCode": "export ANTHROPIC_BASE_URL=\"http://localhost:4000\"\nexport ANTHROPIC_AUTH_TOKEN=\"sk-\u003cyour-virtual-key\u003e\"\nexport ANTHROPIC_MODEL=\"\u003ca model_name from your config\u003e\"\nclaude"
      },
      "letme": {
        "capability": "https://letme.dev/inference.router",
        "tool": "https://letme.dev/litellm"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Berrie AI Incorporated",
        "domain": "litellm.ai",
        "domainRegistered": "2023-08-07",
        "endpointOnVendorDomain": false,
        "terms": "",
        "privacy": "https://docs.litellm.ai/docs/data_security",
        "statusPage": "",
        "changelog": "https://docs.litellm.ai/release_notes",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The data security page names the legal entity as Berrie AI Incorporated, with krrish@berri.ai as the security contact.",
          "The gateway is software the operator runs, so there's no vendor endpoint and no status page.",
          "No terms of service or privacy policy found on www.litellm.ai (/terms, /privacy and /legal return 404). The data security page in the docs covers self-hosted data handling.",
          "www.litellm.ai/.well-known/security.txt and the docs host both return 404. Reports go to GitHub private vulnerability reporting under security.md.",
          "RDAP for litellm.ai gives a registration date of 2023-08-07.",
          "Rechecked 2026-11-06: www.litellm.ai/terms, /privacy, /legal, /terms-of-service and /privacy-policy all return 404, and neither host serves security.txt. Both robots.txt files allow all."
        ],
        "score": 49
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/litellm.json",
      "live": {
        "slug": "litellm",
        "versions": [
          {
            "registry": "github",
            "name": "BerriAI/litellm",
            "version": "v1.108.2",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:40:24.985518384Z"
          },
          {
            "registry": "pypi",
            "name": "litellm",
            "version": "1.108.2",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:40:24.735967257Z"
          }
        ],
        "githubStars": 62845,
        "pypiWeekly": 22493278,
        "securityTxt": {
          "url": "https://litellm.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:25.60777972Z"
        },
        "llmsTxt": {
          "url": "https://docs.litellm.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:52.845519783Z"
        },
        "pages": [
          {
            "url": "https://docs.litellm.ai/release_notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:55.608946935Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e493aadf92b2"
          },
          {
            "url": "https://www.litellm.ai/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:56.79408028Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "45e60222905c"
          },
          {
            "url": "https://docs.litellm.ai/docs/data_security",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:53.531435979Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a2363610f7ad"
          }
        ],
        "updatedAt": "2026-11-07T16:01:25.60777972Z"
      }
    },
    "answer": "LiteLLM scores 62.4 (B) on agent readiness against RouterPlus's 50.3 (D), and leads in every scored category.",
    "b": {
      "slug": "routerplus",
      "name": "RouterPlus",
      "vendor": "RouterPlus",
      "vendorUrl": "https://routerplus.com",
      "kind": "router",
      "category": "inference",
      "summary": "RouterPlus is an LLM gateway that puts Claude, GPT, open-weight, image, video and decision models behind one API key and a prepaid balance, with OpenAI-compatible and Anthropic-compatible endpoints.",
      "url": "https://www.anchorterminal.com/tools/routerplus",
      "markdownUrl": "https://www.anchorterminal.com/tools/routerplus.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/routerplus.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/routerplus.json",
      "dns": "routerplus.grade.anchorterminal.com",
      "license": "Closed service. No terms of service for the gateway were found on routerplus.com or app.routerplus.com on 13 October 2026. The only terms on the site govern the capacity request form and name EVO HQ Inc, a Delaware corporation (https://routerplus.com/capacity/terms/).",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.routerplus.com/v1",
      "packages": [],
      "auth": "api-key",
      "authNotes": "A `tm_vk_` virtual key, sent as `Authorization: Bearer` or `x-api-key` on every route. A person signs up in the browser through Clerk with email verification, and the first key is shown once after sign-in. More keys come from the console or from `POST /api/identity/keys` with a console session. The programmatic signup route `POST /v1/signup` was removed and returns 404 (https://app.routerplus.com/docs/authentication.md, https://app.routerplus.com/docs/api-signup.md).",
      "pricing": "usage",
      "pricingNotes": "Provider list prices per 1M tokens with no markup, paid from prepaid credits. Purchases start at $10, and RouterPlus matches the first $100 of purchases for eligible accounts. Signup adds no free credit. Inference through the caller's own provider keys (BYOK) carries no RouterPlus charge and needs no credit. Prices are public in the docs catalogue and the model pages without a login (https://app.routerplus.com/docs/models.md, https://app.routerplus.com/docs/pricing.md).",
      "priceSummary": "0% fee",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in https://app.routerplus.com/llms-full.txt, checked 13 October 2026. Calls draw on a prepaid balance bought in the console's Billing page.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-13"
      },
      "docsUrl": "https://app.routerplus.com/docs/overview",
      "llmsTxt": "https://app.routerplus.com/llms.txt",
      "capabilities": [
        "inference.router",
        "inference.llm",
        "inference.decision",
        "image.generate"
      ],
      "tags": [
        "hosted",
        "router",
        "closed-source",
        "usage-priced",
        "prepaid",
        "llms-txt",
        "openai-compatible",
        "anthropic-compatible",
        "streaming"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.3,
        "grade": "D",
        "agentReady": false,
        "rank": 1071,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 36,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 44,
          "payments": 40,
          "reliability": 42,
          "schema": 59,
          "security": 59,
          "transparency": 41
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": -2,
        "negativeNotes": [
          "Misleading claims, seen 13 October and again on 4 November 2026, one term. The banner on https://routerplus.com/ reads \"Try RouterPlus with free credits\", while the quickstart (https://app.routerplus.com/docs/quickstart.md) says \"Signup does not add free credit\" and the playground bills the organisation's credits. Only an invitation link adds credit. On 4 November 2026 the homepage FAQ also says \"The gateway does not store prompts or completions\", while the data policy (https://app.routerplus.com/docs/data-policy.md) says requests and responses to non-dedicated endpoints are logged for up to 30 days. Repeats of one kind fold into one term. -2."
        ],
        "verdict": "The docs are written for agents, every model price is public, and each response carries its own cost. No terms of service, privacy policy, status page or changelog were found. Request content is now logged for 30 days by default while the homepage says prompts aren't stored, and signup adds no free credit.",
        "bestFor": "Teams that call Claude, GPT and open-weight models from one key and want the cost of every call in the response, with their own provider keys where they have them.",
        "strengths": [
          "llms.txt, llms-full.txt and a Markdown copy of every page, with an integration guide written for coding agents",
          "Every billed response carries `usage.cost` in USD, and `GET /v1/generation` lists each attempt behind a request",
          "Any chat model answers on both the OpenAI-compatible and Anthropic-compatible surfaces, with the format translated by the gateway",
          "Typed errors with a stable `error_type`, an origin header, a retry rule per class and `retry-after` on rate-limit 429s",
          "105 chat models from 18 providers on 4 November 2026, and BYOK inference carries no RouterPlus charge"
        ],
        "weaknesses": [
          "No terms of service, privacy policy, status page, changelog or security.txt found for the gateway",
          "Request and response content to non-dedicated endpoints is logged for up to 30 days by default, and opting out takes a request to support",
          "Signup adds no free credit, purchases start at $10, and keys stay at 20 requests a minute until the first purchase",
          "No idempotency keys, no batch route and no embeddings, and the `zdr` and `regions` filters remove every marketplace route",
          "Optimize, the eval-based model search the homepage leads with, is paused"
        ],
        "agentNotes": [
          "Send `max_tokens` on every request. Without it the balance hold assumes up to 32,768 output tokens and can return `insufficient_quota` on a small balance",
          "Switch on `error_type`. Retry `rate_limit` after `retry-after`, and stop on `insufficient_quota`, which needs a person to add credit or raise a cap",
          "Don't add a retry loop on top of the SDK's. There is no idempotency key, so a retry that reaches a provider is billed again",
          "Keep secrets out of prompts. Request content is logged for up to 30 days unless the organisation has opted out through support",
          "Use `/v1/messages` for Claude when you need `thinking` or server tools. `response_format` works for GPT ids and open models, not Claude"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.3
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 44,
          "payments": 40,
          "reliability": 42,
          "schema": 59,
          "security": 59,
          "transparency": 26
        },
        "provenanceScore": 55,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -N https://api.routerplus.com/v1/chat/completions \\\n  -H \"Authorization: Bearer $TM_API_KEY\" \\\n  -H \"content-type: application/json\" \\\n  -d '{\"model\":\"claude-haiku-4-5\",\"stream\":true,\"max_tokens\":60,\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}]}'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.router",
        "tool": "https://letme.dev/routerplus"
      },
      "area": "models",
      "unitPrices": [
        {
          "item": "Markup on provider token prices",
          "unit": "pct",
          "usd": 0,
          "note": "Pass-through per the pricing docs. Credits are bought in $10 steps or more"
        },
        {
          "item": "Claude Opus 5.5 input",
          "unit": "1m-tokens",
          "usd": 4,
          "note": "claude-opus-5-5, served by Anthropic's API"
        },
        {
          "item": "Claude Opus 5.5 output",
          "unit": "1m-tokens",
          "usd": 20
        },
        {
          "item": "GPT-6.1 Sol input",
          "unit": "1m-tokens",
          "usd": 2,
          "note": "gpt-6.1-sol, served by OpenAI's API, 1,050,000-token context"
        },
        {
          "item": "GPT-6.1 Sol output",
          "unit": "1m-tokens",
          "usd": 10
        },
        {
          "item": "Anthropic web search server tool",
          "unit": "1k-requests",
          "usd": 10,
          "note": "$10 per 1,000 searches, Anthropic's price, on top of tokens"
        }
      ],
      "provenance": {
        "legalEntity": "EVO HQ Inc",
        "domain": "routerplus.com",
        "domainRegistered": "2014-04-15",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-04",
        "notes": [
          "EVO HQ Inc, a Delaware corporation, is named only in the terms of the capacity request form at https://routerplus.com/capacity/terms/ (effective and last updated 1 August 2026), which govern form submissions and not the gateway. The footer elsewhere reads © 2026 RouterPlus.",
          "No terms of service or privacy policy for the gateway were found, re-checked on 4 November 2026. The footer's Privacy and Security links open an email to founders@evo-hq.com. The docs' data policy page (https://app.routerplus.com/docs/data-policy.md) is the only data statement for the gateway.",
          "No status page. Model pages show per-provider uptime over the last 24 hours, with no incident history. Requests to status.routerplus.com failed at our proxy with a 502 on 13 October and 4 November 2026, so whether it exists is unchecked.",
          "No changelog found. The blog's newest post is dated 27 October 2026, and its 13 October 2026 post dates the ScaleDown models' launch. The docs date one console change, key copying from 17 October 2026.",
          "routerplus.com/.well-known/security.txt and app.routerplus.com/.well-known/security.txt answered 404 on 4 November 2026.",
          "routerplus.com/robots.txt carries only commented content-signal definitions and a sitemap line, with no rules and no Content-Signal directive (4 November 2026)."
        ],
        "score": 55
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/routerplus.json",
      "live": {
        "slug": "routerplus",
        "probe": {
          "target": "https://api.routerplus.com/v1",
          "method": "get",
          "lastAt": "2026-11-07T19:22:30.383043598Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 571,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 99.41,
          "p50ms24h": 512,
          "p95ms24h": 599,
          "samples24h": 238,
          "samples30d": 6145,
          "days": [
            {
              "date": "2026-10-13",
              "probes": 4,
              "ok": 4
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 252
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 249
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 239
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 230
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 248
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 245
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ],
          "outages": [
            {
              "start": "2026-10-24T05:05:33.613541379Z",
              "end": "2026-10-24T07:08:12.366400327Z",
              "note": "HTTP 522 server error"
            },
            {
              "start": "2026-10-23T17:39:27.824091162Z",
              "end": "2026-10-23T17:56:26.642152403Z",
              "note": "timed out"
            }
          ]
        },
        "securityTxt": {
          "url": "https://routerplus.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:23.622290323Z"
        },
        "llmsTxt": {
          "url": "https://app.routerplus.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:51.409195847Z"
        },
        "domain": {
          "domain": "routerplus.com",
          "registered": "2014-04-15",
          "source": "https://rdap.verisign.com/com/v1/domain/routerplus.com",
          "checkedAt": "2026-11-01T14:22:51.180116459Z"
        },
        "pages": [
          {
            "url": "https://app.routerplus.com/docs/pricing.md",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T13:59:31.728346224Z",
            "changedAt": "2026-11-07T13:59:31.728346224Z",
            "fingerprint": "54b0c65abbd3"
          }
        ],
        "updatedAt": "2026-11-07T19:22:30.383043598Z"
      }
    },
    "edges": [
      {
        "by": 38,
        "category": "maintenance",
        "leads": "litellm",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "v1.108.1 tagged on 5 November 2026, v1.108.0 and v1.106.7 on 3 and 4 November (30). 125 tags between 8 August and 6 November, stable, patch, release-candidate and dev builds, with patch releases for four minor lines at once (20). Reply times not measured. On the issues page 7 of the 15 newest had a reply on the day, workflows auto-close duplicates and label issues, and Discord is the listed community channel (12 of 25). The package is the official SDK, current, with OpenAI and Anthropic SDKs working against the gateway (12 of 15). Dependency and image scanning (OSV, zizmor, Scorecard, grype) run in CI, with pass state unchecked (8 of 10).",
          "b": "Router, read on the model lines. No changelog or release notes found. The blog, re-read on 4 November 2026, dates the launch of ScaleDown's extract-1 and summarize-1 on chat completions and classify-1 on the decisions API to 13 October 2026, and the catalogue now lists 105 chat models against 19 on 13 October, so the API changed within the last 30 days (30). The docs also date a console change on 17 October 2026 (keys can be copied again), which isn't counted, since it changes the console and not the API. Models carry a `deprecation_date` that delists them automatically, with no notice period stated (3 of 12). `POST /v1/signup` and the magic-link route were removed and Optimize is paused, none with a date we could find (3 of 8). No public changelog. Support is reached through the console and an email address, and wasn't tested (3 of 15). No public issue tracker for the gateway (0 of 10). No official SDK. The docs rely on the OpenAI and Anthropic SDKs and give client setups (5 of 15). No package or public repository to check (0 of 10)."
        },
        "scores": {
          "a": 82,
          "b": 44
        }
      },
      {
        "by": 32,
        "category": "schema",
        "leads": "litellm",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Every gateway serves Swagger at /, ReDoc at /redoc and the raw schema at /openapi.json, and the docs host a public Swagger explorer (25). llms.txt, llms-full.txt and a Markdown twin of every page via `.md` (10). Pages say what a feature is for and where its limits are, and the key-auth page explains how permissions are inherited and where they aren't, but the reference is very large for a model to navigate (16 of 20). OpenAI-shaped request schemas from Pydantic models, with `metadata`, `litellm_params` and config blocks left as free-form objects (10 of 15). A full error reference with the envelope, every status, response headers and how to tell gateway limits from provider limits, plus examples on every page (15). Release notes per version with dates, newest v1.108.0 and v1.106.7 on 4 November 2026 (15).",
          "b": "Router, scored on the API lines. No OpenAPI or other machine-readable contract for the gateway was found. It follows the OpenAI and Anthropic wire formats, which this checklist doesn't credit to a reseller, the same reading as Antseed (0 of 25). llms.txt, llms-full.txt and a Markdown copy of every page (10). Each route page says what it is for, what isn't available, and which route to use for which model, and the agent integration guide lists what not to build on (18 of 20). Request fields follow the upstream formats, and the wire compatibility page tables which fields pass, translate, drop or fail with a typed 400 (12 of 15). Curl, Python and TypeScript examples on every page, and an error reference with a class, status and remedy for each error (15). Routes are versioned under /v1 and the wire compatibility page says changing it needs a recorded decision, but no changelog or dated release notes were found, re-read on 4 November 2026 (4 of 15)."
        },
        "scores": {
          "a": 91,
          "b": 59
        }
      },
      {
        "by": 28,
        "category": "reliability",
        "leads": "litellm",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the local-software lines, since the gateway runs on the operator's hardware and BerriAI hosts nothing an agent calls. litellm on PyPI states Python 3.10 to 3.14, and the gateway ships as a Docker image, a Helm chart and Terraform modules, with GHCR images signed by cosign (20). 51 GitHub Actions workflows plus a CircleCI config cover unit, proxy-database, end-to-end, chaos, mutation and UI tests. The GitHub API was rate-limited for our reader on 6 November and Actions pages refused it on 6 October, so we couldn't confirm main is passing (15 of 25). The issue tracker showed 1,674 open issues on 6 November, with eight bug reports among the 15 newest, seven of them with a reply, against a project that tags several releases a day (10 of 25, down from an unchecked 12). Release notes carry breaking-change bullets, but breaking changes land in weekly minor releases on the 1.x line, so version numbers don't signal them (10 of 15). 1.108.1, past 1.0 (15).",
          "b": "Hosted reading. No status page found. Model pages show each provider's uptime over the last 24 hours and no incident history, and status.routerplus.com failed at our proxy again on 4 November 2026 (0). No readable incident history (5). The limits page, re-read on 4 November 2026, gives 20 requests a minute until the organisation's first purchase, then 300 per console key and 60 for the managed Playground key, with token-per-minute and in-flight limits per organisation and key (15). Rate-limit 429s carry `retry-after` from 1 to 59 seconds and `metadata.retry_at`, the errors page gives a retry or no-retry rule for each error class, and the docs say a retry is a new billed request because there is no idempotency key. That is safe-retry guidance without keys on the billed call, the value this run settled for routers such as ramp-router (12, 15 before). The homepage says \"Production-grade SLAs\", but no SLA terms were found, and the only terms on the site say a stated response time is not a service level (0). The chat and messages surfaces carry no beta label. The Responses API is a preview for non-OpenAI models and Optimize is paused, neither of which is the main surface (10). 0 + 5 + 15 + 12 + 0 + 10 = 42."
        },
        "scores": {
          "a": 70,
          "b": 42
        }
      },
      {
        "by": 22,
        "category": "transparency",
        "leads": "litellm",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "MIT for everything outside enterprise/, which has its own licence (25 of 30). The data security page (updated 6 November 2026) and security.md agree that a self-hosted gateway sends no data or telemetry to BerriAI, and the gateway stores prompts and spend in the operator's own Postgres. We found no terms of service or privacy policy on litellm.ai for its site, trial or Enterprise licence (20 of 30). A version support policy since 29 June 2026 (four stable minor lines), deprecated pages labelled in the docs, and release notes with breaking-change bullets (15 of 20). Usage telemetry, new in v1.107.0, is off by default, lists every field it can send and goes only to a table or endpoint the operator sets. A main-branch commit of 23 October 2026 made the Admin UI chat post a hashed user id to chat-telemetry.litellm.ai, and it was removed on 24 October before any tagged release contained it, so it isn't deducted. The start-up fetch of the price map from GitHub is documented with an opt-out (17 of 20).",
          "b": "Closed service with no terms of service found. The only terms on the site govern the capacity request form, under EVO HQ Inc (0 of 30). The data policy page is detailed, lists what is stored and why, and gives a 30-day period for request logs and each provider's retention flag. Its 4 November 2026 text, which logs request content by default, no longer agrees with the homepage FAQ; that contradiction is charged once as a misleading claim under negative events, not on this line. There is no privacy policy, no DPA and no retention period for account data such as email addresses (14 of 30, held). Model retirement by `deprecation_date` is documented with no notice period, and no dated deprecation notices were found (4 of 20). The docs name Clerk, Resend and an AWS bucket, and say RouterPlus's own GPUs run in the United States. The form's terms name Supabase, Cloudflare and Resend. No complete subprocessor list or gateway hosting location was found (8 of 20)."
        },
        "scores": {
          "a": 63,
          "b": 41
        }
      },
      {
        "by": 20,
        "category": "payments",
        "leads": "litellm",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Read with the self-hosted rule, since an agent uses the free gateway and Enterprise is a sales-led licence for the same software. No x402, MPP or L402 (0). MIT with no account and no card, so 20, 20 and 20 on the last three lines. Model calls cost what the operator's provider keys cost.",
          "b": "No machine payment protocol found in llms-full.txt. Calls draw on a prepaid balance (0). Per-token prices for every model are public in the docs catalogue and on the model pages with no login, re-read on 4 November 2026 (20). Signup adds no free credit, but inference through the caller's own provider keys carries no RouterPlus charge and needs no credit, the reading Cloudflare AI Gateway's dossier took for the same arrangement. We did not sign up to confirm that no card is asked for (20). A person signs up in the browser through Clerk with email verification, and the programmatic signup route was removed (0)."
        },
        "scores": {
          "a": 60,
          "b": 40
        }
      },
      {
        "by": 13,
        "category": "security",
        "leads": "litellm",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Read with the tool checklist for self-hosted software. Virtual keys are hashed, revocable and blockable, with model, route, MCP server, budget, rate and expiry limits, and a `proxy_admin_viewer` read-only role exists. Rotation with a grace period is Enterprise only, so 25, less 10 because the docs pass a key as `?key=` on `/key/info` and on the Claude Code marketplace manifest (15 of 30). `allowed_routes`, MCP permissions by key and team, an approval queue for submitted MCP servers and stdio MCP servers off by default from 1.104.0 (15 of 20). Guardrails can run before a model call and on MCP tool results, and an OWASP LLM Top 10 page maps each risk to a control, but prompt-injection detectors such as Lakera need an Enterprise licence and all of it is off by default (12 of 15). Request and spend logs per key in the open-source build; audit logs of admin actions are Enterprise only (12 of 15). security.md with GitHub private reporting, a bug bounty from $500 to $3,000 for P0 and P1 reports, a security announcements list, SOC 2 Type II per the data security page, CodeQL, OSV and Scorecard workflows, and advisories published on GitHub. No security.txt, and reports without a video are closed unread (18 of 20).",
          "b": "Router, read on the model lines. `tm_vk_` keys are stored as SHA-256 hashes and revocable, each bound to a workspace and principal, with per-key RPM and monthly spend caps. Since 17 October 2026 the console also keeps an encrypted copy so an owner or admin can copy a key again, and an organisation can ask for copying to be turned off. Inference keys have no management rights. There are no permission scopes on a key and no SSO or SCIM (24 of 30). RouterPlus says it does not train on request logs and does not share them, and deletes them after 30 days. Most Claude and GPT routes are marked `prompt_logging: retained` with no ZDR, so retention and training upstream rest on each provider's API terms, while DeepInfra's open models, Perplexity, Cloudflare Workers AI, Fastino and RouterPlus's own models declare `none` (12 of 20, held). The data policy re-read on 4 November 2026 says requests and responses to non-dedicated endpoints are now logged by default for up to 30 days for debugging, with recognised keys removed. On 13 October it said content was kept only for hackathon accounts. Opting out takes a request to support, dedicated endpoints are excluded, and the `zdr` and `data_collection: deny` filters still remove every marketplace route, so they work only on the caller's own provider keys. Cloudflare AI Gateway, with default logging and a per-request header to switch it off, has 11 here (7 of 15, 10 before). `GET /v1/generation` lists every attempt behind a request with provider, tokens and cost, and the console has usage and logs (14 of 15). No security.txt (404 on both hosts on 4 November 2026), disclosure policy, bug bounty or certification found. The footer's Security link is an email to founders@evo-hq.com (2 of 20). 24 + 12 + 7 + 14 + 2 = 59."
        },
        "scores": {
          "a": 72,
          "b": 59
        }
      }
    ],
    "facts": [
      {
        "a": "Model router",
        "b": "Model router",
        "name": "Kind"
      },
      {
        "a": "BerriAI",
        "b": "RouterPlus",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.routerplus.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT, except the enterprise/ directory, which is under its own licence and needs an Enterprise licence key",
        "b": "Closed service. No terms of service for the gateway were found on routerplus.com or app.routerplus.com on 13 October 2026. The only terms on the site govern the capacity request form and name EVO HQ Inc, a Delaware corporation (https://routerplus.com/capacity/terms/).",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-05",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "63k stars, 22.5M PyPI/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "LiteLLM scores 62.4 (B) on agent readiness against RouterPlus's 50.3 (D), and leads in every scored category.",
        "question": "Which is better for AI agents, LiteLLM or RouterPlus?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do LiteLLM and RouterPlus need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for LiteLLM. RouterPlus has a hosted endpoint at https://api.routerplus.com/v1.",
        "question": "Can an agent call LiteLLM and RouterPlus without installing anything?"
      },
      {
        "answer": "LiteLLM is open source (MIT, except the enterprise/ directory, which is under its own licence and needs an Enterprise licence key). No open-source release is listed for RouterPlus.",
        "question": "Are LiteLLM and RouterPlus open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 70 against 42",
          "Schema \u0026 documentation, 91 against 59",
          "Agent ergonomics, 79 against 71",
          "Security \u0026 auth, 72 against 59",
          "Payments \u0026 pricing, 60 against 40",
          "Maintenance \u0026 community, 82 against 44",
          "Transparency \u0026 trust, 63 against 41"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Teams that want one OpenAI-compatible endpoint over many providers on their own infrastructure, with per-key budgets, model allowlists and an MCP gateway.",
        "slug": "litellm",
        "watchFor": "litellm 1.82.7 and 1.82.8 on PyPI carried a credential stealer for about 40 minutes on 24 March 2026"
      },
      {
        "aheadOn": null,
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "Teams that call Claude, GPT and open-weight models from one key and want the cost of every call in the response, with their own provider keys where they have them.",
        "slug": "routerplus",
        "watchFor": "No terms of service, privacy policy, status page, changelog or security.txt found for the gateway"
      }
    ],
    "history": {
      "litellm": null,
      "routerplus": [
        {
          "causes": [
            "product",
            "correction"
          ],
          "date": "2026-11-04",
          "delta": -1.1,
          "from": 51.4,
          "fromGrade": "D",
          "to": 50.3,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-28",
          "delta": 0.1,
          "from": 51.3,
          "fromGrade": "D",
          "to": 51.4,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 51.2,
          "fromGrade": "D",
          "to": 51.3,
          "toGrade": "D"
        }
      ]
    },
    "job": {
      "capability": "inference.router",
      "name": "Model routing"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-bedrock-vs-routerplus.json",
        "title": "Amazon Bedrock vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/amazon-bedrock-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anthropic-api-vs-routerplus.json",
        "title": "Claude API vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/anthropic-api-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-openai-vs-routerplus.json",
        "title": "Azure OpenAI in Foundry Models vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/azure-openai-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blockrun-ai-vs-routerplus.json",
        "title": "BlockRun.AI vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/blockrun-ai-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cerebras-inference-vs-routerplus.json",
        "title": "Cerebras Inference vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/cerebras-inference-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-ai-gateway-vs-routerplus.json",
        "title": "Cloudflare AI Gateway vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/cloudflare-ai-gateway-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-workers-ai-vs-routerplus.json",
        "title": "Cloudflare Workers AI vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/cloudflare-workers-ai-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cohere-chat-vs-routerplus.json",
        "title": "Cohere Chat API (Command models) vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/cohere-chat-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepinfra-vs-routerplus.json",
        "title": "DeepInfra vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/deepinfra-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-api-vs-routerplus.json",
        "title": "DeepSeek API vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/deepseek-api-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/elorian-glimpse-vs-routerplus.json",
        "title": "Glimpse vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/elorian-glimpse-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fireworks-inference-vs-routerplus.json",
        "title": "Fireworks AI Inference vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/fireworks-inference-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-api-vs-routerplus.json",
        "title": "Gemini Developer API vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/gemini-api-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/groq-vs-routerplus.json",
        "title": "GroqCloud vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/groq-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/inkling-2-small-vs-routerplus.json",
        "title": "Inkling 2 Small vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/inkling-2-small-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jais-3-vs-routerplus.json",
        "title": "Jais 3 vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/jais-3-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meta-model-api-vs-routerplus.json",
        "title": "Meta Model API vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/meta-model-api-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-api-vs-routerplus.json",
        "title": "MiniMax API vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/minimax-api-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-api-vs-routerplus.json",
        "title": "Mistral AI API vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/mistral-api-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-spark-open-vs-routerplus.json",
        "title": "Muse Spark Open vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/muse-spark-open-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nemotron-3-5-super-vl-vs-routerplus.json",
        "title": "Nemotron 3.5 Super VL vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/nemotron-3-5-super-vl-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/novita-ai-vs-routerplus.json",
        "title": "Novita AI vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/novita-ai-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-api-vs-routerplus.json",
        "title": "OpenAI API vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/openai-api-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-routerplus.json",
        "title": "OpenRouter vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prism-inference-vs-routerplus.json",
        "title": "Prism Inference vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/prism-inference-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/reflection-beam-vs-routerplus.json",
        "title": "Beam 1.0 vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/reflection-beam-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/routerplus-vs-sambanova.json",
        "title": "RouterPlus vs SambaCloud",
        "url": "https://www.anchorterminal.com/compare/routerplus-vs-sambanova"
      },
      {
        "json": "https://www.anchorterminal.com/compare/routerplus-vs-siliconflow.json",
        "title": "RouterPlus vs SiliconFlow",
        "url": "https://www.anchorterminal.com/compare/routerplus-vs-siliconflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/routerplus-vs-simplismart.json",
        "title": "RouterPlus vs Simplismart",
        "url": "https://www.anchorterminal.com/compare/routerplus-vs-simplismart"
      },
      {
        "json": "https://www.anchorterminal.com/compare/routerplus-vs-stepfun-api.json",
        "title": "RouterPlus vs StepFun API",
        "url": "https://www.anchorterminal.com/compare/routerplus-vs-stepfun-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/routerplus-vs-swe-2-flash.json",
        "title": "RouterPlus vs SWE-2 Flash",
        "url": "https://www.anchorterminal.com/compare/routerplus-vs-swe-2-flash"
      },
      {
        "json": "https://www.anchorterminal.com/compare/routerplus-vs-together-inference.json",
        "title": "RouterPlus vs Together AI Inference",
        "url": "https://www.anchorterminal.com/compare/routerplus-vs-together-inference"
      },
      {
        "json": "https://www.anchorterminal.com/compare/routerplus-vs-vertex-ai.json",
        "title": "RouterPlus vs Vertex AI (Gemini Enterprise Agent Platform)",
        "url": "https://www.anchorterminal.com/compare/routerplus-vs-vertex-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/routerplus-vs-xai-api.json",
        "title": "RouterPlus vs xAI API (Grok)",
        "url": "https://www.anchorterminal.com/compare/routerplus-vs-xai-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antseed-vs-litellm.json",
        "title": "Antseed vs LiteLLM",
        "url": "https://www.anchorterminal.com/compare/antseed-vs-litellm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antseed-vs-routerplus.json",
        "title": "Antseed vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/antseed-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-ai-gateway-vs-litellm.json",
        "title": "Cloudflare AI Gateway vs LiteLLM",
        "url": "https://www.anchorterminal.com/compare/cloudflare-ai-gateway-vs-litellm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/eden-ai-vs-litellm.json",
        "title": "Eden AI vs LiteLLM",
        "url": "https://www.anchorterminal.com/compare/eden-ai-vs-litellm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/eden-ai-vs-routerplus.json",
        "title": "Eden AI vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/eden-ai-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hugging-face-inference-providers-vs-litellm.json",
        "title": "Hugging Face Inference Providers vs LiteLLM",
        "url": "https://www.anchorterminal.com/compare/hugging-face-inference-providers-vs-litellm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hugging-face-inference-providers-vs-routerplus.json",
        "title": "Hugging Face Inference Providers vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/hugging-face-inference-providers-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/litellm-vs-openrouter.json",
        "title": "LiteLLM vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/litellm-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/litellm-vs-ramp-router.json",
        "title": "LiteLLM vs Router.com (Ramp Router)",
        "url": "https://www.anchorterminal.com/compare/litellm-vs-ramp-router"
      },
      {
        "json": "https://www.anchorterminal.com/compare/litellm-vs-tencent-tokenhub.json",
        "title": "LiteLLM vs Tencent Cloud TokenHub",
        "url": "https://www.anchorterminal.com/compare/litellm-vs-tencent-tokenhub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/litellm-vs-vercel-ai-gateway.json",
        "title": "LiteLLM vs Vercel AI Gateway",
        "url": "https://www.anchorterminal.com/compare/litellm-vs-vercel-ai-gateway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ramp-router-vs-routerplus.json",
        "title": "Router.com (Ramp Router) vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/ramp-router-vs-routerplus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/routerplus-vs-tencent-tokenhub.json",
        "title": "RouterPlus vs Tencent Cloud TokenHub",
        "url": "https://www.anchorterminal.com/compare/routerplus-vs-tencent-tokenhub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/routerplus-vs-vercel-ai-gateway.json",
        "title": "RouterPlus vs Vercel AI Gateway",
        "url": "https://www.anchorterminal.com/compare/routerplus-vs-vercel-ai-gateway"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 28,
        "edge": "litellm",
        "key": "reliability",
        "litellm": 70,
        "name": "Reliability",
        "routerplus": 42,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 32,
        "edge": "litellm",
        "key": "schema",
        "litellm": 91,
        "name": "Schema \u0026 documentation",
        "routerplus": 59,
        "weight": 13
      },
      {
        "by": 8,
        "edge": "litellm",
        "key": "ergonomics",
        "litellm": 79,
        "name": "Agent ergonomics",
        "routerplus": 71,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "litellm",
        "key": "security",
        "litellm": 72,
        "name": "Security \u0026 auth",
        "routerplus": 59,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "litellm",
        "key": "payments",
        "litellm": 60,
        "name": "Payments \u0026 pricing",
        "routerplus": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 38,
        "edge": "litellm",
        "key": "maintenance",
        "litellm": 82,
        "name": "Maintenance \u0026 community",
        "routerplus": 44,
        "weight": 7
      },
      {
        "by": 22,
        "edge": "litellm",
        "key": "transparency",
        "litellm": 63,
        "name": "Transparency \u0026 trust",
        "routerplus": 41,
        "weight": 7
      }
    ],
    "summary": "LiteLLM scores 62.4 (B) on agent readiness against RouterPlus's 50.3 (D), and leads in every scored category. Both do model routing.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "litellm": "An MIT-licensed gateway that puts 100+ model providers behind one OpenAI-compatible API, with virtual keys, budgets, fallbacks and an MCP gateway, released several times a week. Its security record is the main limitation. Two PyPI releases carried a credential stealer on 24 March 2026, and 30 GitHub advisories followed in 12 months, five of them critical.",
      "routerplus": "The docs are written for agents, every model price is public, and each response carries its own cost. No terms of service, privacy policy, status page or changelog were found. Request content is now logged for 30 days by default while the homepage says prompts aren't stored, and signup adds no free credit."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/litellm-vs-routerplus",
    "json": "https://www.anchorterminal.com/compare/litellm-vs-routerplus.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/litellm-vs-routerplus.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/litellm-vs-routerplus.min.md"
  },
  "markdown": "LiteLLM scores 62.4 (B) on agent readiness against RouterPlus's 50.3 (D), and leads in every scored category. Both do model routing.\n\n- LiteLLM: grade B, 62.4/100, rank #559 of 1510. Markdown https://www.anchorterminal.com/tools/litellm.md · JSON https://www.anchorterminal.com/api/v1/tools/litellm.json\n- RouterPlus: grade D, 50.3/100, rank #1071 of 1510. Markdown https://www.anchorterminal.com/tools/routerplus.md · JSON https://www.anchorterminal.com/api/v1/tools/routerplus.json\n- Best model APIs and inference for AI agents: https://www.anchorterminal.com/best/inference/index.md\n- All 830 models comparisons: https://www.anchorterminal.com/compare/inference/index.md\n\n## Which one, for what\n\n### LiteLLM (B)\n\nGood for: Teams that want one OpenAI-compatible endpoint over many providers on their own infrastructure, with per-key budgets, model allowlists and an MCP gateway.\n\nAhead on:\n- Reliability, 70 against 42\n- Schema \u0026 documentation, 91 against 59\n- Agent ergonomics, 79 against 71\n- Security \u0026 auth, 72 against 59\n- Payments \u0026 pricing, 60 against 40\n- Maintenance \u0026 community, 82 against 44\n- Transparency \u0026 trust, 63 against 41\n\nAlso in its favour:\n- Open source\n\nWatch for: litellm 1.82.7 and 1.82.8 on PyPI carried a credential stealer for about 40 minutes on 24 March 2026\n\n### RouterPlus (D)\n\nGood for: Teams that call Claude, GPT and open-weight models from one key and want the cost of every call in the response, with their own provider keys where they have them.\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: No terms of service, privacy policy, status page, changelog or security.txt found for the gateway\n\n\n## Why the edge\n\n### Maintenance \u0026 community: LiteLLM +38\n\n- LiteLLM (82): v1.108.1 tagged on 5 November 2026, v1.108.0 and v1.106.7 on 3 and 4 November (30). 125 tags between 8 August and 6 November, stable, patch, release-candidate and dev builds, with patch releases for four minor lines at once (20). Reply times not measured. On the issues page 7 of the 15 newest had a reply on the day, workflows auto-close duplicates and label issues, and Discord is the listed community channel (12 of 25). The package is the official SDK, current, with OpenAI and Anthropic SDKs working against the gateway (12 of 15). Dependency and image scanning (OSV, zizmor, Scorecard, grype) run in CI, with pass state unchecked (8 of 10).\n- RouterPlus (44): Router, read on the model lines. No changelog or release notes found. The blog, re-read on 4 November 2026, dates the launch of ScaleDown's extract-1 and summarize-1 on chat completions and classify-1 on the decisions API to 13 October 2026, and the catalogue now lists 105 chat models against 19 on 13 October, so the API changed within the last 30 days (30). The docs also date a console change on 17 October 2026 (keys can be copied again), which isn't counted, since it changes the console and not the API. Models carry a `deprecation_date` that delists them automatically, with no notice period stated (3 of 12). `POST /v1/signup` and the magic-link route were removed and Optimize is paused, none with a date we could find (3 of 8). No public changelog. Support is reached through the console and an email address, and wasn't tested (3 of 15). No public issue tracker for the gateway (0 of 10). No official SDK. The docs rely on the OpenAI and Anthropic SDKs and give client setups (5 of 15). No package or public repository to check (0 of 10).\n\n### Schema \u0026 documentation: LiteLLM +32\n\n- LiteLLM (91): Every gateway serves Swagger at /, ReDoc at /redoc and the raw schema at /openapi.json, and the docs host a public Swagger explorer (25). llms.txt, llms-full.txt and a Markdown twin of every page via `.md` (10). Pages say what a feature is for and where its limits are, and the key-auth page explains how permissions are inherited and where they aren't, but the reference is very large for a model to navigate (16 of 20). OpenAI-shaped request schemas from Pydantic models, with `metadata`, `litellm_params` and config blocks left as free-form objects (10 of 15). A full error reference with the envelope, every status, response headers and how to tell gateway limits from provider limits, plus examples on every page (15). Release notes per version with dates, newest v1.108.0 and v1.106.7 on 4 November 2026 (15).\n- RouterPlus (59): Router, scored on the API lines. No OpenAPI or other machine-readable contract for the gateway was found. It follows the OpenAI and Anthropic wire formats, which this checklist doesn't credit to a reseller, the same reading as Antseed (0 of 25). llms.txt, llms-full.txt and a Markdown copy of every page (10). Each route page says what it is for, what isn't available, and which route to use for which model, and the agent integration guide lists what not to build on (18 of 20). Request fields follow the upstream formats, and the wire compatibility page tables which fields pass, translate, drop or fail with a typed 400 (12 of 15). Curl, Python and TypeScript examples on every page, and an error reference with a class, status and remedy for each error (15). Routes are versioned under /v1 and the wire compatibility page says changing it needs a recorded decision, but no changelog or dated release notes were found, re-read on 4 November 2026 (4 of 15).\n\n### Reliability: LiteLLM +28\n\n- LiteLLM (70): Read with the local-software lines, since the gateway runs on the operator's hardware and BerriAI hosts nothing an agent calls. litellm on PyPI states Python 3.10 to 3.14, and the gateway ships as a Docker image, a Helm chart and Terraform modules, with GHCR images signed by cosign (20). 51 GitHub Actions workflows plus a CircleCI config cover unit, proxy-database, end-to-end, chaos, mutation and UI tests. The GitHub API was rate-limited for our reader on 6 November and Actions pages refused it on 6 October, so we couldn't confirm main is passing (15 of 25). The issue tracker showed 1,674 open issues on 6 November, with eight bug reports among the 15 newest, seven of them with a reply, against a project that tags several releases a day (10 of 25, down from an unchecked 12). Release notes carry breaking-change bullets, but breaking changes land in weekly minor releases on the 1.x line, so version numbers don't signal them (10 of 15). 1.108.1, past 1.0 (15).\n- RouterPlus (42): Hosted reading. No status page found. Model pages show each provider's uptime over the last 24 hours and no incident history, and status.routerplus.com failed at our proxy again on 4 November 2026 (0). No readable incident history (5). The limits page, re-read on 4 November 2026, gives 20 requests a minute until the organisation's first purchase, then 300 per console key and 60 for the managed Playground key, with token-per-minute and in-flight limits per organisation and key (15). Rate-limit 429s carry `retry-after` from 1 to 59 seconds and `metadata.retry_at`, the errors page gives a retry or no-retry rule for each error class, and the docs say a retry is a new billed request because there is no idempotency key. That is safe-retry guidance without keys on the billed call, the value this run settled for routers such as ramp-router (12, 15 before). The homepage says \"Production-grade SLAs\", but no SLA terms were found, and the only terms on the site say a stated response time is not a service level (0). The chat and messages surfaces carry no beta label. The Responses API is a preview for non-OpenAI models and Optimize is paused, neither of which is the main surface (10). 0 + 5 + 15 + 12 + 0 + 10 = 42.\n\n### Transparency \u0026 trust: LiteLLM +22\n\n- LiteLLM (63): MIT for everything outside enterprise/, which has its own licence (25 of 30). The data security page (updated 6 November 2026) and security.md agree that a self-hosted gateway sends no data or telemetry to BerriAI, and the gateway stores prompts and spend in the operator's own Postgres. We found no terms of service or privacy policy on litellm.ai for its site, trial or Enterprise licence (20 of 30). A version support policy since 29 June 2026 (four stable minor lines), deprecated pages labelled in the docs, and release notes with breaking-change bullets (15 of 20). Usage telemetry, new in v1.107.0, is off by default, lists every field it can send and goes only to a table or endpoint the operator sets. A main-branch commit of 23 October 2026 made the Admin UI chat post a hashed user id to chat-telemetry.litellm.ai, and it was removed on 24 October before any tagged release contained it, so it isn't deducted. The start-up fetch of the price map from GitHub is documented with an opt-out (17 of 20).\n- RouterPlus (41): Closed service with no terms of service found. The only terms on the site govern the capacity request form, under EVO HQ Inc (0 of 30). The data policy page is detailed, lists what is stored and why, and gives a 30-day period for request logs and each provider's retention flag. Its 4 November 2026 text, which logs request content by default, no longer agrees with the homepage FAQ; that contradiction is charged once as a misleading claim under negative events, not on this line. There is no privacy policy, no DPA and no retention period for account data such as email addresses (14 of 30, held). Model retirement by `deprecation_date` is documented with no notice period, and no dated deprecation notices were found (4 of 20). The docs name Clerk, Resend and an AWS bucket, and say RouterPlus's own GPUs run in the United States. The form's terms name Supabase, Cloudflare and Resend. No complete subprocessor list or gateway hosting location was found (8 of 20).\n\n### Payments \u0026 pricing: LiteLLM +20\n\n- LiteLLM (60): Read with the self-hosted rule, since an agent uses the free gateway and Enterprise is a sales-led licence for the same software. No x402, MPP or L402 (0). MIT with no account and no card, so 20, 20 and 20 on the last three lines. Model calls cost what the operator's provider keys cost.\n- RouterPlus (40): No machine payment protocol found in llms-full.txt. Calls draw on a prepaid balance (0). Per-token prices for every model are public in the docs catalogue and on the model pages with no login, re-read on 4 November 2026 (20). Signup adds no free credit, but inference through the caller's own provider keys carries no RouterPlus charge and needs no credit, the reading Cloudflare AI Gateway's dossier took for the same arrangement. We did not sign up to confirm that no card is asked for (20). A person signs up in the browser through Clerk with email verification, and the programmatic signup route was removed (0).\n\n### Security \u0026 auth: LiteLLM +13\n\n- LiteLLM (72): Read with the tool checklist for self-hosted software. Virtual keys are hashed, revocable and blockable, with model, route, MCP server, budget, rate and expiry limits, and a `proxy_admin_viewer` read-only role exists. Rotation with a grace period is Enterprise only, so 25, less 10 because the docs pass a key as `?key=` on `/key/info` and on the Claude Code marketplace manifest (15 of 30). `allowed_routes`, MCP permissions by key and team, an approval queue for submitted MCP servers and stdio MCP servers off by default from 1.104.0 (15 of 20). Guardrails can run before a model call and on MCP tool results, and an OWASP LLM Top 10 page maps each risk to a control, but prompt-injection detectors such as Lakera need an Enterprise licence and all of it is off by default (12 of 15). Request and spend logs per key in the open-source build; audit logs of admin actions are Enterprise only (12 of 15). security.md with GitHub private reporting, a bug bounty from $500 to $3,000 for P0 and P1 reports, a security announcements list, SOC 2 Type II per the data security page, CodeQL, OSV and Scorecard workflows, and advisories published on GitHub. No security.txt, and reports without a video are closed unread (18 of 20).\n- RouterPlus (59): Router, read on the model lines. `tm_vk_` keys are stored as SHA-256 hashes and revocable, each bound to a workspace and principal, with per-key RPM and monthly spend caps. Since 17 October 2026 the console also keeps an encrypted copy so an owner or admin can copy a key again, and an organisation can ask for copying to be turned off. Inference keys have no management rights. There are no permission scopes on a key and no SSO or SCIM (24 of 30). RouterPlus says it does not train on request logs and does not share them, and deletes them after 30 days. Most Claude and GPT routes are marked `prompt_logging: retained` with no ZDR, so retention and training upstream rest on each provider's API terms, while DeepInfra's open models, Perplexity, Cloudflare Workers AI, Fastino and RouterPlus's own models declare `none` (12 of 20, held). The data policy re-read on 4 November 2026 says requests and responses to non-dedicated endpoints are now logged by default for up to 30 days for debugging, with recognised keys removed. On 13 October it said content was kept only for hackathon accounts. Opting out takes a request to support, dedicated endpoints are excluded, and the `zdr` and `data_collection: deny` filters still remove every marketplace route, so they work only on the caller's own provider keys. Cloudflare AI Gateway, with default logging and a per-request header to switch it off, has 11 here (7 of 15, 10 before). `GET /v1/generation` lists every attempt behind a request with provider, tokens and cost, and the console has usage and logs (14 of 15). No security.txt (404 on both hosts on 4 November 2026), disclosure policy, bug bounty or certification found. The footer's Security link is an email to founders@evo-hq.com (2 of 20). 24 + 12 + 7 + 14 + 2 = 59.\n\n## Score by category\n\n| Category | Weight | LiteLLM | RouterPlus | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 42 | LiteLLM +28 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 91 | 59 | LiteLLM +32 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 71 | LiteLLM +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 72 | 59 | LiteLLM +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 40 | LiteLLM +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 44 | LiteLLM +38 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 41 | LiteLLM +22 |\n| Negative events | ≤15 | -12 | -2 | |\n| **Total** | | **62.4 · B** | **50.3 · D** | |\n\n## Facts side by side\n\n| Fact | LiteLLM | RouterPlus |\n| --- | --- | --- |\n| Kind | Model router | Model router |\n| Vendor | BerriAI | RouterPlus |\n| Hosted endpoint | no (local only) | `https://api.routerplus.com/v1` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | MIT, except the enterprise/ directory, which is under its own licence and needs an Enterprise licence key | Closed service. No terms of service for the gateway were found on routerplus.com or app.routerplus.com on 13 October 2026. The only terms on the site govern the capacity request form and name EVO HQ Inc, a Delaware corporation (https://routerplus.com/capacity/terms/). |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-11-05 | none |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no date given | no document linked |\n| Popularity | 63k stars, 22.5M PyPI/wk | none |\n\n## How the scores have moved\n\n### LiteLLM\n\nNo score change since it was listed.\n\n### RouterPlus\n\n- -1.1 on 4 November 2026: product, correction\n- +0.1 on 28 October 2026: checklist\n- +0.1 on 27 October 2026: checklist\n\n## Verdicts\n\n**LiteLLM.** An MIT-licensed gateway that puts 100+ model providers behind one OpenAI-compatible API, with virtual keys, budgets, fallbacks and an MCP gateway, released several times a week. Its security record is the main limitation. Two PyPI releases carried a credential stealer on 24 March 2026, and 30 GitHub advisories followed in 12 months, five of them critical.\n\n**RouterPlus.** The docs are written for agents, every model price is public, and each response carries its own cost. No terms of service, privacy policy, status page or changelog were found. Request content is now logged for 30 days by default while the homepage says prompts aren't stored, and signup adds no free credit.\n\n## Before you call either\n\n### LiteLLM\n\n1. Pin an exact litellm version or image digest, verify the cosign signature, and never install an unpinned latest in CI\n2. Give each agent a virtual key limited to its models, routes and MCP servers, with a budget and an expiry\n3. Treat a 429 with `retry-after` as the gateway's own limit and wait that long; a 429 without it came from the provider\n4. Set `NO_DOCS`, `NO_REDOC` and `NO_OPENAPI` to True in production, and use the `-non_root` image variant\n5. Set `LITELLM_LOCAL_MODEL_COST_MAP=True` where egress is blocked, since start-up otherwise fetches the price map from GitHub\n\n### RouterPlus\n\n1. Send `max_tokens` on every request. Without it the balance hold assumes up to 32,768 output tokens and can return `insufficient_quota` on a small balance\n2. Switch on `error_type`. Retry `rate_limit` after `retry-after`, and stop on `insufficient_quota`, which needs a person to add credit or raise a cap\n3. Don't add a retry loop on top of the SDK's. There is no idempotency key, so a retry that reaches a provider is billed again\n4. Keep secrets out of prompts. Request content is logged for up to 30 days unless the organisation has opted out through support\n5. Use `/v1/messages` for Claude when you need `thinking` or server tools. `response_format` works for GPT ids and open models, not Claude\n\n## Questions\n\n### Which is better for AI agents, LiteLLM or RouterPlus?\n\nLiteLLM scores 62.4 (B) on agent readiness against RouterPlus's 50.3 (D), and leads in every scored category.\n\n### Do LiteLLM and RouterPlus need an API key?\n\nBoth need an API key.\n\n### Can an agent call LiteLLM and RouterPlus without installing anything?\n\nNo hosted endpoint is listed for LiteLLM. RouterPlus has a hosted endpoint at https://api.routerplus.com/v1.\n\n### Are LiteLLM and RouterPlus open source?\n\nLiteLLM is open source (MIT, except the enterprise/ directory, which is under its own licence and needs an Enterprise licence key). No open-source release is listed for RouterPlus.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/litellm-vs-routerplus.json, and with the fewest tokens: https://www.anchorterminal.com/compare/litellm-vs-routerplus.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"litellm\", \"b\": \"routerplus\"}`. From a terminal: `anchor compare litellm routerplus`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/litellm.json and https://www.anchorterminal.com/api/v1/tools/routerplus.json\n\n## Other comparisons with LiteLLM or RouterPlus\n\n- [Amazon Bedrock vs RouterPlus](https://www.anchorterminal.com/compare/amazon-bedrock-vs-routerplus.md)\n- [Claude API vs RouterPlus](https://www.anchorterminal.com/compare/anthropic-api-vs-routerplus.md)\n- [Azure OpenAI in Foundry Models vs RouterPlus](https://www.anchorterminal.com/compare/azure-openai-vs-routerplus.md)\n- [BlockRun.AI vs RouterPlus](https://www.anchorterminal.com/compare/blockrun-ai-vs-routerplus.md)\n- [Cerebras Inference vs RouterPlus](https://www.anchorterminal.com/compare/cerebras-inference-vs-routerplus.md)\n- [Cloudflare AI Gateway vs RouterPlus](https://www.anchorterminal.com/compare/cloudflare-ai-gateway-vs-routerplus.md)\n- [Cloudflare Workers AI vs RouterPlus](https://www.anchorterminal.com/compare/cloudflare-workers-ai-vs-routerplus.md)\n- [Cohere Chat API (Command models) vs RouterPlus](https://www.anchorterminal.com/compare/cohere-chat-vs-routerplus.md)\n- [DeepInfra vs RouterPlus](https://www.anchorterminal.com/compare/deepinfra-vs-routerplus.md)\n- [DeepSeek API vs RouterPlus](https://www.anchorterminal.com/compare/deepseek-api-vs-routerplus.md)\n- [Glimpse vs RouterPlus](https://www.anchorterminal.com/compare/elorian-glimpse-vs-routerplus.md)\n- [Fireworks AI Inference vs RouterPlus](https://www.anchorterminal.com/compare/fireworks-inference-vs-routerplus.md)\n- [Gemini Developer API vs RouterPlus](https://www.anchorterminal.com/compare/gemini-api-vs-routerplus.md)\n- [GroqCloud vs RouterPlus](https://www.anchorterminal.com/compare/groq-vs-routerplus.md)\n- [Inkling 2 Small vs RouterPlus](https://www.anchorterminal.com/compare/inkling-2-small-vs-routerplus.md)\n- [Jais 3 vs RouterPlus](https://www.anchorterminal.com/compare/jais-3-vs-routerplus.md)\n- [Meta Model API vs RouterPlus](https://www.anchorterminal.com/compare/meta-model-api-vs-routerplus.md)\n- [MiniMax API vs RouterPlus](https://www.anchorterminal.com/compare/minimax-api-vs-routerplus.md)\n- [Mistral AI API vs RouterPlus](https://www.anchorterminal.com/compare/mistral-api-vs-routerplus.md)\n- [Muse Spark Open vs RouterPlus](https://www.anchorterminal.com/compare/muse-spark-open-vs-routerplus.md)\n- [Nemotron 3.5 Super VL vs RouterPlus](https://www.anchorterminal.com/compare/nemotron-3-5-super-vl-vs-routerplus.md)\n- [Novita AI vs RouterPlus](https://www.anchorterminal.com/compare/novita-ai-vs-routerplus.md)\n- [OpenAI API vs RouterPlus](https://www.anchorterminal.com/compare/openai-api-vs-routerplus.md)\n- [OpenRouter vs RouterPlus](https://www.anchorterminal.com/compare/openrouter-vs-routerplus.md)\n- [Prism Inference vs RouterPlus](https://www.anchorterminal.com/compare/prism-inference-vs-routerplus.md)\n- [Beam 1.0 vs RouterPlus](https://www.anchorterminal.com/compare/reflection-beam-vs-routerplus.md)\n- [RouterPlus vs SambaCloud](https://www.anchorterminal.com/compare/routerplus-vs-sambanova.md)\n- [RouterPlus vs SiliconFlow](https://www.anchorterminal.com/compare/routerplus-vs-siliconflow.md)\n- [RouterPlus vs Simplismart](https://www.anchorterminal.com/compare/routerplus-vs-simplismart.md)\n- [RouterPlus vs StepFun API](https://www.anchorterminal.com/compare/routerplus-vs-stepfun-api.md)\n- [RouterPlus vs SWE-2 Flash](https://www.anchorterminal.com/compare/routerplus-vs-swe-2-flash.md)\n- [RouterPlus vs Together AI Inference](https://www.anchorterminal.com/compare/routerplus-vs-together-inference.md)\n- [RouterPlus vs Vertex AI (Gemini Enterprise Agent Platform)](https://www.anchorterminal.com/compare/routerplus-vs-vertex-ai.md)\n- [RouterPlus vs xAI API (Grok)](https://www.anchorterminal.com/compare/routerplus-vs-xai-api.md)\n- [Antseed vs LiteLLM](https://www.anchorterminal.com/compare/antseed-vs-litellm.md)\n- [Antseed vs RouterPlus](https://www.anchorterminal.com/compare/antseed-vs-routerplus.md)\n- [Cloudflare AI Gateway vs LiteLLM](https://www.anchorterminal.com/compare/cloudflare-ai-gateway-vs-litellm.md)\n- [Eden AI vs LiteLLM](https://www.anchorterminal.com/compare/eden-ai-vs-litellm.md)\n- [Eden AI vs RouterPlus](https://www.anchorterminal.com/compare/eden-ai-vs-routerplus.md)\n- [Hugging Face Inference Providers vs LiteLLM](https://www.anchorterminal.com/compare/hugging-face-inference-providers-vs-litellm.md)\n- [Hugging Face Inference Providers vs RouterPlus](https://www.anchorterminal.com/compare/hugging-face-inference-providers-vs-routerplus.md)\n- [LiteLLM vs OpenRouter](https://www.anchorterminal.com/compare/litellm-vs-openrouter.md)\n- [LiteLLM vs Router.com (Ramp Router)](https://www.anchorterminal.com/compare/litellm-vs-ramp-router.md)\n- [LiteLLM vs Tencent Cloud TokenHub](https://www.anchorterminal.com/compare/litellm-vs-tencent-tokenhub.md)\n- [LiteLLM vs Vercel AI Gateway](https://www.anchorterminal.com/compare/litellm-vs-vercel-ai-gateway.md)\n- [Router.com (Ramp Router) vs RouterPlus](https://www.anchorterminal.com/compare/ramp-router-vs-routerplus.md)\n- [RouterPlus vs Tencent Cloud TokenHub](https://www.anchorterminal.com/compare/routerplus-vs-tencent-tokenhub.md)\n- [RouterPlus vs Vercel AI Gateway](https://www.anchorterminal.com/compare/routerplus-vs-vercel-ai-gateway.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "LiteLLM vs RouterPlus",
        "url": ""
      }
    ],
    "description": "LiteLLM scores 62.4 (B) to RouterPlus's 50.3 (D) for model routing. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "LiteLLM B 62.4",
      "RouterPlus D 50.3",
      "scores"
    ],
    "h1": "LiteLLM vs RouterPlus",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/litellm-vs-routerplus",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LiteLLM vs RouterPlus for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/litellm-vs-routerplus"
  },
  "tokens": {
    "markdown": 6200,
    "slim": 3630
  },
  "version": 1
}
