{
  "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": "OpenRouter scores 66.6 (B) on agent readiness against LiteLLM's 62.4 (B), and leads in 2 of 7 scored categories. LiteLLM leads on reliability, security \u0026 auth and payments \u0026 pricing.",
    "b": {
      "slug": "openrouter",
      "name": "OpenRouter",
      "vendor": "OpenRouter",
      "vendorUrl": "https://openrouter.ai",
      "kind": "router",
      "category": "inference",
      "summary": "One OpenAI-compatible API in front of 80+ model providers, at the providers' own token prices, with fallbacks and routing controls.",
      "url": "https://www.anchorterminal.com/tools/openrouter",
      "markdownUrl": "https://www.anchorterminal.com/tools/openrouter.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/openrouter.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openrouter.json",
      "dns": "openrouter.grade.anchorterminal.com",
      "repo": "https://github.com/OpenRouterTeam/typescript-sdk",
      "license": "Apache-2.0 (SDKs)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://openrouter.ai/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@openrouter/sdk"
        },
        {
          "registry": "pypi",
          "name": "openrouter"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer key. OAuth PKCE lets an app get a key on a user's behalf.",
      "pricing": "usage",
      "pricingNotes": "No markup on tokens. The fee is on credit top-ups, 5.5% by card ($0.80 minimum) and 5% in crypto, 8% on Business. Bring your own key free up to $25,000 a month, then 5%. 25+ free models at 20 requests a minute and 50 a day, 1,000 a day after a $10 purchase (https://openrouter.ai/pricing).",
      "priceSummary": "5.5% fee",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Credits can be bought in USDC through Coinbase, but requests are paid from a prepaid balance, not per call.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 226,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://openrouter.ai/docs",
      "rateLimitsUrl": "https://openrouter.ai/docs/api_reference/limits",
      "llmsTxt": "https://openrouter.ai/docs/llms.txt",
      "openapi": "https://openrouter.ai/docs/openapi/openapi.yaml",
      "capabilities": [
        "inference.llm",
        "inference.router"
      ],
      "tags": [
        "hosted",
        "router",
        "free-tier",
        "no-card",
        "openapi",
        "llms-txt",
        "crypto-topup"
      ],
      "lastRelease": "2026-10-31",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.6,
        "grade": "B",
        "agentReady": false,
        "rank": 365,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 15,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 85,
          "maintenance": 82,
          "payments": 40,
          "reliability": 55,
          "schema": 90,
          "security": 67,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-10-21. Breaking changes published the day they shipped, folded into one term. The Python SDK `openrouter` 1.3.70, a patch release in the listing's own package, removed the `client.end_users` namespace for `client.external_users`, and `POST /messages` streams stopped sending a trailing `data: [DONE]` frame, so clients that waited for it must end on `message_stop`. The versioning page promises migration notes but no notice period, and earlier same-day removals (8 September, 23 October) are of the same kind. -3. https://openrouter.ai/docs/changelog.md"
        ],
        "verdict": "Public OpenAPI document, llms.txt with Markdown twins, and a changelog generated from the spec on every release, with SDKs in TypeScript and Python tagged on 31 October 2026. Breaking changes ship with migration notes on the day, with no notice period. No machine payment, and USDC top-ups go to a prepaid balance.",
        "bestFor": "Agents that need many models behind one key, provider failover and a hard price ceiling per request.",
        "strengths": [
          "Public OpenAPI document, llms.txt with Markdown twins, and a changelog generated from the spec with migration notes",
          "Per-request routing controls, fallback `models` lists, provider ordering, `zdr` and `max_price`",
          "429, 503 and some 402 responses carry `Retry-After`, and the SDKs honour it",
          "OpenRouter stores no prompts or responses unless you opt in",
          "Free models with no card, and Management API keys for minting and rotating keys in code"
        ],
        "weaknesses": [
          "No machine payment. USDC top-ups go to a prepaid balance",
          "`data_collection` defaults to 'allow', which admits providers that may store and train on prompts",
          "Breaking changes are published the day they ship, with no notice period, among them the Python SDK's `end_users` removal on 21 October 2026",
          "Mid-stream failures arrive inside a 200 response, and upstream providers may charge for prompt processing on a failed call",
          "No published SLA, and the status page gave us no readable history"
        ],
        "agentNotes": [
          "Set `provider.data_collection: \"deny\"` or `provider.zdr: true` when the prompt holds anything private",
          "Pass a `models` list so a failed provider falls through to the next one",
          "Honour `Retry-After` on 429 and 503, and check the stream body for errors even on a 200",
          "Set `max_price` so a routed request can't land on an expensive provider",
          "Free models allow 50 requests a day until $10 of credit has been bought. Check `GET /api/v1/key` for what's left",
          "On `/messages` streams, stop at `message_stop` or an `error` event. No `[DONE]` frame is sent since 21 October 2026"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.6
          }
        ],
        "editorialScores": {
          "ergonomics": 85,
          "maintenance": 82,
          "payments": 40,
          "reliability": 55,
          "schema": 90,
          "security": 67,
          "transparency": 57
        },
        "provenanceScore": 87,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm i @openrouter/sdk   # or any OpenAI client with base URL https://openrouter.ai/api/v1",
        "http": "curl https://openrouter.ai/api/v1/chat/completions \\\n  -H \"Authorization: Bearer $OPENROUTER_API_KEY\" -H \"content-type: application/json\" \\\n  -d '{\"models\":[\"anthropic/claude-opus-5-5\",\"openai/gpt-6-sol\"],\"provider\":{\"zdr\":true},\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}]}'"
      },
      "letme": {
        "capability": "https://letme.dev/inference.llm",
        "tool": "https://letme.dev/openrouter"
      },
      "area": "models",
      "unitPrices": [
        {
          "item": "Card top-up fee",
          "unit": "pct",
          "usd": 5.5,
          "note": "$0.80 minimum"
        },
        {
          "item": "Crypto top-up fee",
          "unit": "pct",
          "usd": 5
        },
        {
          "item": "Bring your own key over $25,000 a month",
          "unit": "pct",
          "usd": 5
        }
      ],
      "provenance": {
        "legalEntity": "OpenRouter, Inc.",
        "domain": "openrouter.ai",
        "domainRegistered": "2023-04-17",
        "endpointOnVendorDomain": true,
        "terms": "https://openrouter.ai/terms",
        "privacy": "https://openrouter.ai/privacy",
        "statusPage": "https://status.openrouter.ai",
        "changelog": "https://openrouter.ai/docs/changelog",
        "securityTxt": "valid",
        "checked": "2026-09-26",
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openrouter.json",
      "live": {
        "slug": "openrouter",
        "probe": {
          "target": "https://openrouter.ai/api/v1",
          "method": "get",
          "lastAt": "2026-11-07T19:22:24.011438582Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 154,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 158,
          "p95ms24h": 257,
          "samples24h": 238,
          "samples30d": 7920,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "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": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "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": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.openrouter.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:32.364573242Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "OpenRouterTeam/typescript-sdk",
            "version": "v1.5.63",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:53:19.843060338Z"
          },
          {
            "registry": "npm",
            "name": "@openrouter/sdk",
            "version": "1.5.63",
            "seenAt": "2026-11-06T23:53:19.458250016Z"
          },
          {
            "registry": "pypi",
            "name": "openrouter",
            "version": "1.3.136",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:53:19.721594609Z"
          }
        ],
        "githubStars": 266,
        "npmWeekly": 1500637,
        "pypiWeekly": 508914,
        "securityTxt": {
          "url": "https://openrouter.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-08-12T00:00:00.000Z",
          "checkedAt": "2026-11-07T15:59:55.426629359Z"
        },
        "llmsTxt": {
          "url": "https://openrouter.ai/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:32.781344125Z"
        },
        "domain": {
          "domain": "openrouter.ai",
          "registered": "2023-04-17",
          "source": "https://rdap.identitydigital.services/rdap/domain/openrouter.ai",
          "checkedAt": "2026-11-01T14:08:10.430011075Z"
        },
        "pages": [
          {
            "url": "https://openrouter.ai/docs/changelog",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:31.271472972Z",
            "changedAt": "2026-11-06T13:37:16.450910388Z",
            "fingerprint": "643881c9ce0d"
          },
          {
            "url": "https://openrouter.ai/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:39.383701632Z",
            "changedAt": "2026-10-30T05:44:51.931625899Z",
            "fingerprint": "5cb2a28b714b"
          },
          {
            "url": "https://openrouter.ai/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:39.647363812Z",
            "changedAt": "2026-10-30T05:44:54.355186693Z",
            "fingerprint": "9aab6dce3dcb"
          },
          {
            "url": "https://openrouter.ai/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:15:41.576148386Z",
            "changedAt": "2026-10-30T05:44:56.728736628Z",
            "fingerprint": "e65daca75fd6"
          }
        ],
        "github": {
          "repo": "openrouterteam/typescript-sdk",
          "checkedAt": "2026-11-02T09:13:41.01188934Z",
          "stars": 266,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-01T00:31:43Z",
          "openIssues": 16,
          "openPRs": 21,
          "issuesOpened90d": 10,
          "issuesClosed90d": 6,
          "prsMerged90d": 535,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-31T04:54:28Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 14,
            "medianDays": 39.5
          }
        },
        "updatedAt": "2026-11-07T19:22:24.011438582Z"
      }
    },
    "edges": [
      {
        "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 the docs index. Credits can be bought in USDC through Coinbase, but calls draw on a prepaid balance (0). Per-token prices published per model without a login (20). 25 or more free models with no card, per the listing (20). Browser sign-up for the first key (0). Management API keys and OAuth PKCE mint keys in code, but only after a person has an account."
        },
        "scores": {
          "a": 60,
          "b": 40
        }
      },
      {
        "by": 15,
        "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": "Status page at status.openrouter.ai, which rendered only in a browser with its feed and JSON paths answering 403 on 1 and 2 October. On 1 November its robots.txt answered 403 AccessDenied, so the host is treated as blocked and the page was not read (10 of 20, per the 2 October check, and 5 for the incident line, no readable history). The limits page gives 20 requests a minute on free models, 50 a day below $10 of lifetime purchases and 1,000 a day above, no platform cap on paid models, and a key endpoint that reports what's left (15). The errors page says 429, 503 and 402 responses from the in-flight spending budget carry `Retry-After`, tells clients to honour it, and says the official SDKs already do (15). The pricing page lists 'Contractual SLAs' for Enterprise without publishing terms, which we count as no published SLA (0). The chat completions API is GA (10). Model fallbacks through a `models` list soften an upstream outage, which this checklist doesn't score."
        },
        "scores": {
          "a": 70,
          "b": 55
        }
      },
      {
        "by": 9,
        "category": "transparency",
        "leads": "openrouter",
        "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 clear terms, SDKs Apache-2.0 (15). Data collection page and privacy policy agree that content isn't stored unless you opt in, but training defaults for upstream providers sit on other pages we didn't read (15 of 30). An API versioning page states how deprecations are announced (in the changelog, with the field or endpoint marked deprecated in the reference) and the changelog dates each one, but no notice period is promised (12 of 20). Each provider's data policy is shown per endpoint per the listing, and EU or US in-region routing is part of the Business plan. No subprocessor list checked (15 of 20)."
        },
        "scores": {
          "a": 63,
          "b": 72
        }
      },
      {
        "by": 6,
        "category": "ergonomics",
        "leads": "openrouter",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Read with the API lines for the gateway an agent calls. Responses size through the usual `max_tokens` and streaming, and the MCP gateway can replace a large tool catalogue with four virtual tools (tool search) or filter tools by semantic relevance, which cuts context cost (20 of 25). Key, team and spend listings page and filter, though we didn't check every list call (15 of 20). Errors keep the OpenAI envelope with a string `code`, gateway 429s carry `retry-after`, `rate_limit_type` and `reset_at`, management routes answer RFC 9457 problem+json, and a table says which errors are safe to retry (20). Retries, cooldowns and fallbacks run inside the gateway and the docs say which errors to retry, but there are no idempotency keys for the management writes (12 of 20). Any OpenAI or Anthropic SDK works by changing the base URL, but the only first-party client is the Python SDK, and keys and spend need Postgres and a master key before the first call (12 of 15).",
          "b": "Model reading of the checklist (tool use, structured output, caching, context, batch, SDKs, errors). Tool calling documented, behaviour depends on the routed model (15 of 20). Structured outputs depend on the upstream model (10 of 15). Prompt caching documented, discount set by each provider (10 of 15). Routes to models with 1M-token context, a judgement call since a router has no default model (15). Batch API, usually half price per the listing (10). Official SDKs in TypeScript, Python and Go (10). Errors and debugging page (15)."
        },
        "scores": {
          "a": 79,
          "b": 85
        }
      },
      {
        "by": 5,
        "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": "Model reading. Bearer keys with per-key credit limits, Management API keys for creating and rotating keys in code, and OAuth PKCE for user-delegated keys. No permission scopes on keys (25 of 30). OpenRouter doesn't store or use prompts unless you opt in for a 1% discount, but the routing reference, re-read on 1 November 2026, still sets `data_collection` to 'allow' by default, which admits providers that may store and train on data. An account privacy setting can switch that off, and the docs don't say what a new account starts with (5 of 20). Prompts not stored by default and a per-request `zdr` filter (15). Request metadata kept for reporting, per-call logs not confirmed (10 of 15). security.txt, read on 1 November 2026, is valid to 12 August 2027 with security@openrouter.ai and a PGP key, and says reports confirmed as high-impact get an invitation to a private HackerOne bug bounty. The private bounty counts as a bounty, as other listings' invitation-only programmes do (activepieces, fireflies, mixpanel). No certification or public advisory was found, so 12, above blockrun-ai's 10 (valid security.txt, no bounty) and below activepieces' 13 (a private bounty and nine public advisories) (12 of 20)."
        },
        "scores": {
          "a": 72,
          "b": 67
        }
      }
    ],
    "facts": [
      {
        "a": "Model router",
        "b": "Model router",
        "name": "Kind"
      },
      {
        "a": "BerriAI",
        "b": "OpenRouter",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://openrouter.ai/api/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": "Apache-2.0 (SDKs)",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-05",
        "b": "2026-10-31",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-08-31",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-08-31",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "63k stars, 22.5M PyPI/wk",
        "b": "226 stars",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "OpenRouter scores 66.6 (B) on agent readiness against LiteLLM's 62.4 (B), and leads in 2 of 7 scored categories. LiteLLM leads on reliability, security \u0026 auth and payments \u0026 pricing.",
        "question": "Which is better for AI agents, LiteLLM or OpenRouter?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do LiteLLM and OpenRouter need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for LiteLLM. OpenRouter has a hosted endpoint at https://openrouter.ai/api/v1.",
        "question": "Can an agent call LiteLLM and OpenRouter 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 OpenRouter.",
        "question": "Are LiteLLM and OpenRouter open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 70 against 55",
          "Security \u0026 auth, 72 against 67",
          "Payments \u0026 pricing, 60 against 40"
        ],
        "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": [
          "Agent ergonomics, 85 against 79",
          "Transparency \u0026 trust, 72 against 63"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card"
        ],
        "goodFor": "Agents that need many models behind one key, provider failover and a hard price ceiling per request.",
        "slug": "openrouter",
        "watchFor": "No machine payment. USDC top-ups go to a prepaid balance"
      }
    ],
    "history": {
      "litellm": null,
      "openrouter": [
        {
          "causes": [
            "evidence",
            "event"
          ],
          "date": "2026-11-01",
          "delta": -1.9,
          "from": 68.5,
          "fromGrade": "B",
          "to": 66.6,
          "toGrade": "B"
        },
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": -0.1,
          "from": 68.6,
          "fromGrade": "B",
          "to": 68.5,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 68.5,
          "fromGrade": "B",
          "to": 68.6,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "inference.router",
      "name": "Model routing"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-bedrock-vs-openrouter.json",
        "title": "Amazon Bedrock vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/amazon-bedrock-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anthropic-api-vs-openrouter.json",
        "title": "Claude API vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/anthropic-api-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-openai-vs-openrouter.json",
        "title": "Azure OpenAI in Foundry Models vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/azure-openai-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blockrun-ai-vs-openrouter.json",
        "title": "BlockRun.AI vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/blockrun-ai-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cerebras-inference-vs-openrouter.json",
        "title": "Cerebras Inference vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/cerebras-inference-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-ai-gateway-vs-openrouter.json",
        "title": "Cloudflare AI Gateway vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/cloudflare-ai-gateway-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-workers-ai-vs-openrouter.json",
        "title": "Cloudflare Workers AI vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/cloudflare-workers-ai-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cohere-chat-vs-openrouter.json",
        "title": "Cohere Chat API (Command models) vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/cohere-chat-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepinfra-vs-openrouter.json",
        "title": "DeepInfra vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/deepinfra-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-api-vs-openrouter.json",
        "title": "DeepSeek API vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/deepseek-api-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/elorian-glimpse-vs-openrouter.json",
        "title": "Glimpse vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/elorian-glimpse-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fireworks-inference-vs-openrouter.json",
        "title": "Fireworks AI Inference vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/fireworks-inference-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-api-vs-openrouter.json",
        "title": "Gemini Developer API vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/gemini-api-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/groq-vs-openrouter.json",
        "title": "GroqCloud vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/groq-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/inkling-2-small-vs-openrouter.json",
        "title": "Inkling 2 Small vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/inkling-2-small-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jais-3-vs-openrouter.json",
        "title": "Jais 3 vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/jais-3-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meta-model-api-vs-openrouter.json",
        "title": "Meta Model API vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/meta-model-api-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-api-vs-openrouter.json",
        "title": "MiniMax API vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/minimax-api-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-api-vs-openrouter.json",
        "title": "Mistral AI API vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/mistral-api-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-spark-open-vs-openrouter.json",
        "title": "Muse Spark Open vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/muse-spark-open-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nemotron-3-5-super-vl-vs-openrouter.json",
        "title": "Nemotron 3.5 Super VL vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/nemotron-3-5-super-vl-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/novita-ai-vs-openrouter.json",
        "title": "Novita AI vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/novita-ai-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-api-vs-openrouter.json",
        "title": "OpenAI API vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/openai-api-vs-openrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-prism-inference.json",
        "title": "OpenRouter vs Prism Inference",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-prism-inference"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-ramp-router.json",
        "title": "OpenRouter vs Router.com (Ramp Router)",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-ramp-router"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-reflection-beam.json",
        "title": "OpenRouter vs Beam 1.0",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-reflection-beam"
      },
      {
        "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/openrouter-vs-sambanova.json",
        "title": "OpenRouter vs SambaCloud",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-sambanova"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-siliconflow.json",
        "title": "OpenRouter vs SiliconFlow",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-siliconflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-simplismart.json",
        "title": "OpenRouter vs Simplismart",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-simplismart"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-stepfun-api.json",
        "title": "OpenRouter vs StepFun API",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-stepfun-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-swe-2-flash.json",
        "title": "OpenRouter vs SWE-2 Flash",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-swe-2-flash"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-tencent-tokenhub.json",
        "title": "OpenRouter vs Tencent Cloud TokenHub",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-tencent-tokenhub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-together-inference.json",
        "title": "OpenRouter vs Together AI Inference",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-together-inference"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-vercel-ai-gateway.json",
        "title": "OpenRouter vs Vercel AI Gateway",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-vercel-ai-gateway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-vertex-ai.json",
        "title": "OpenRouter vs Vertex AI (Gemini Enterprise Agent Platform)",
        "url": "https://www.anchorterminal.com/compare/openrouter-vs-vertex-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openrouter-vs-xai-api.json",
        "title": "OpenRouter vs xAI API (Grok)",
        "url": "https://www.anchorterminal.com/compare/openrouter-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-openrouter.json",
        "title": "Antseed vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/antseed-vs-openrouter"
      },
      {
        "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-openrouter.json",
        "title": "Eden AI vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/eden-ai-vs-openrouter"
      },
      {
        "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-openrouter.json",
        "title": "Hugging Face Inference Providers vs OpenRouter",
        "url": "https://www.anchorterminal.com/compare/hugging-face-inference-providers-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-routerplus.json",
        "title": "LiteLLM vs RouterPlus",
        "url": "https://www.anchorterminal.com/compare/litellm-vs-routerplus"
      },
      {
        "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"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 15,
        "edge": "litellm",
        "key": "reliability",
        "litellm": 70,
        "name": "Reliability",
        "openrouter": 55,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "litellm",
        "key": "schema",
        "litellm": 91,
        "name": "Schema \u0026 documentation",
        "openrouter": 90,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "openrouter",
        "key": "ergonomics",
        "litellm": 79,
        "name": "Agent ergonomics",
        "openrouter": 85,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "litellm",
        "key": "security",
        "litellm": 72,
        "name": "Security \u0026 auth",
        "openrouter": 67,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "litellm",
        "key": "payments",
        "litellm": 60,
        "name": "Payments \u0026 pricing",
        "openrouter": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "edge": "",
        "key": "maintenance",
        "litellm": 82,
        "name": "Maintenance \u0026 community",
        "openrouter": 82,
        "weight": 7
      },
      {
        "by": 9,
        "edge": "openrouter",
        "key": "transparency",
        "litellm": 63,
        "name": "Transparency \u0026 trust",
        "openrouter": 72,
        "weight": 7
      }
    ],
    "summary": "OpenRouter scores 66.6 (B) on agent readiness against LiteLLM's 62.4 (B), and leads in 2 of 7 scored categories. LiteLLM leads on reliability, security \u0026 auth and payments \u0026 pricing. 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.",
      "openrouter": "Public OpenAPI document, llms.txt with Markdown twins, and a changelog generated from the spec on every release, with SDKs in TypeScript and Python tagged on 31 October 2026. Breaking changes ship with migration notes on the day, with no notice period. No machine payment, and USDC top-ups go to a prepaid balance."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/litellm-vs-openrouter",
    "json": "https://www.anchorterminal.com/compare/litellm-vs-openrouter.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/litellm-vs-openrouter.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/litellm-vs-openrouter.min.md"
  },
  "markdown": "OpenRouter scores 66.6 (B) on agent readiness against LiteLLM's 62.4 (B), and leads in 2 of 7 scored categories. LiteLLM leads on reliability, security \u0026 auth and payments \u0026 pricing. 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- OpenRouter: grade B, 66.6/100, rank #365 of 1510. Markdown https://www.anchorterminal.com/tools/openrouter.md · JSON https://www.anchorterminal.com/api/v1/tools/openrouter.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 55\n- Security \u0026 auth, 72 against 67\n- Payments \u0026 pricing, 60 against 40\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### OpenRouter (B)\n\nGood for: Agents that need many models behind one key, provider failover and a hard price ceiling per request.\n\nAhead on:\n- Agent ergonomics, 85 against 79\n- Transparency \u0026 trust, 72 against 63\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\n\nWatch for: No machine payment. USDC top-ups go to a prepaid balance\n\n\n## Why the edge\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- OpenRouter (40): No machine payment protocol found in the docs index. Credits can be bought in USDC through Coinbase, but calls draw on a prepaid balance (0). Per-token prices published per model without a login (20). 25 or more free models with no card, per the listing (20). Browser sign-up for the first key (0). Management API keys and OAuth PKCE mint keys in code, but only after a person has an account.\n\n### Reliability: LiteLLM +15\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- OpenRouter (55): Status page at status.openrouter.ai, which rendered only in a browser with its feed and JSON paths answering 403 on 1 and 2 October. On 1 November its robots.txt answered 403 AccessDenied, so the host is treated as blocked and the page was not read (10 of 20, per the 2 October check, and 5 for the incident line, no readable history). The limits page gives 20 requests a minute on free models, 50 a day below $10 of lifetime purchases and 1,000 a day above, no platform cap on paid models, and a key endpoint that reports what's left (15). The errors page says 429, 503 and 402 responses from the in-flight spending budget carry `Retry-After`, tells clients to honour it, and says the official SDKs already do (15). The pricing page lists 'Contractual SLAs' for Enterprise without publishing terms, which we count as no published SLA (0). The chat completions API is GA (10). Model fallbacks through a `models` list soften an upstream outage, which this checklist doesn't score.\n\n### Transparency \u0026 trust: OpenRouter +9\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- OpenRouter (72): Closed service with clear terms, SDKs Apache-2.0 (15). Data collection page and privacy policy agree that content isn't stored unless you opt in, but training defaults for upstream providers sit on other pages we didn't read (15 of 30). An API versioning page states how deprecations are announced (in the changelog, with the field or endpoint marked deprecated in the reference) and the changelog dates each one, but no notice period is promised (12 of 20). Each provider's data policy is shown per endpoint per the listing, and EU or US in-region routing is part of the Business plan. No subprocessor list checked (15 of 20).\n\n### Agent ergonomics: OpenRouter +6\n\n- LiteLLM (79): Read with the API lines for the gateway an agent calls. Responses size through the usual `max_tokens` and streaming, and the MCP gateway can replace a large tool catalogue with four virtual tools (tool search) or filter tools by semantic relevance, which cuts context cost (20 of 25). Key, team and spend listings page and filter, though we didn't check every list call (15 of 20). Errors keep the OpenAI envelope with a string `code`, gateway 429s carry `retry-after`, `rate_limit_type` and `reset_at`, management routes answer RFC 9457 problem+json, and a table says which errors are safe to retry (20). Retries, cooldowns and fallbacks run inside the gateway and the docs say which errors to retry, but there are no idempotency keys for the management writes (12 of 20). Any OpenAI or Anthropic SDK works by changing the base URL, but the only first-party client is the Python SDK, and keys and spend need Postgres and a master key before the first call (12 of 15).\n- OpenRouter (85): Model reading of the checklist (tool use, structured output, caching, context, batch, SDKs, errors). Tool calling documented, behaviour depends on the routed model (15 of 20). Structured outputs depend on the upstream model (10 of 15). Prompt caching documented, discount set by each provider (10 of 15). Routes to models with 1M-token context, a judgement call since a router has no default model (15). Batch API, usually half price per the listing (10). Official SDKs in TypeScript, Python and Go (10). Errors and debugging page (15).\n\n### Security \u0026 auth: LiteLLM +5\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- OpenRouter (67): Model reading. Bearer keys with per-key credit limits, Management API keys for creating and rotating keys in code, and OAuth PKCE for user-delegated keys. No permission scopes on keys (25 of 30). OpenRouter doesn't store or use prompts unless you opt in for a 1% discount, but the routing reference, re-read on 1 November 2026, still sets `data_collection` to 'allow' by default, which admits providers that may store and train on data. An account privacy setting can switch that off, and the docs don't say what a new account starts with (5 of 20). Prompts not stored by default and a per-request `zdr` filter (15). Request metadata kept for reporting, per-call logs not confirmed (10 of 15). security.txt, read on 1 November 2026, is valid to 12 August 2027 with security@openrouter.ai and a PGP key, and says reports confirmed as high-impact get an invitation to a private HackerOne bug bounty. The private bounty counts as a bounty, as other listings' invitation-only programmes do (activepieces, fireflies, mixpanel). No certification or public advisory was found, so 12, above blockrun-ai's 10 (valid security.txt, no bounty) and below activepieces' 13 (a private bounty and nine public advisories) (12 of 20).\n\n## Score by category\n\n| Category | Weight | LiteLLM | OpenRouter | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 55 | LiteLLM +15 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 91 | 90 | LiteLLM +1 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 85 | OpenRouter +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 72 | 67 | LiteLLM +5 |\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 | 82 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 72 | OpenRouter +9 |\n| Negative events | ≤15 | -12 | -3 | |\n| **Total** | | **62.4 · B** | **66.6 · B** | |\n\n## Facts side by side\n\n| Fact | LiteLLM | OpenRouter |\n| --- | --- | --- |\n| Kind | Model router | Model router |\n| Vendor | BerriAI | OpenRouter |\n| Hosted endpoint | no (local only) | `https://openrouter.ai/api/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 | Apache-2.0 (SDKs) |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-11-05 | 2026-10-31 |\n| Terms last updated | no document linked | 2026-08-31 |\n| Privacy policy last updated | no date given | 2026-08-31 |\n| Customer content may train models | not read yet | not found in the text |\n| Terms restrict automated access | not read yet | yes |\n| Terms restrict benchmarking | not read yet | yes |\n| Terms or service can change without notice | not read yet | yes |\n| Arbitration or class-action waiver | not read yet | yes |\n| Popularity | 63k stars, 22.5M PyPI/wk | 226 stars |\n| Agent reviews | none | 3/5 (2) |\n\n## How the scores have moved\n\n### LiteLLM\n\nNo score change since it was listed.\n\n### OpenRouter\n\n- -1.9 on 1 November 2026: new evidence, negative event\n- -0.1 on 28 October 2026: correction\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**OpenRouter.** Public OpenAPI document, llms.txt with Markdown twins, and a changelog generated from the spec on every release, with SDKs in TypeScript and Python tagged on 31 October 2026. Breaking changes ship with migration notes on the day, with no notice period. No machine payment, and USDC top-ups go to a prepaid balance.\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### OpenRouter\n\n1. Set `provider.data_collection: \"deny\"` or `provider.zdr: true` when the prompt holds anything private\n2. Pass a `models` list so a failed provider falls through to the next one\n3. Honour `Retry-After` on 429 and 503, and check the stream body for errors even on a 200\n4. Set `max_price` so a routed request can't land on an expensive provider\n5. Free models allow 50 requests a day until $10 of credit has been bought. Check `GET /api/v1/key` for what's left\n6. On `/messages` streams, stop at `message_stop` or an `error` event. No `[DONE]` frame is sent since 21 October 2026\n\n## Questions\n\n### Which is better for AI agents, LiteLLM or OpenRouter?\n\nOpenRouter scores 66.6 (B) on agent readiness against LiteLLM's 62.4 (B), and leads in 2 of 7 scored categories. LiteLLM leads on reliability, security \u0026 auth and payments \u0026 pricing.\n\n### Do LiteLLM and OpenRouter need an API key?\n\nBoth need an API key.\n\n### Can an agent call LiteLLM and OpenRouter without installing anything?\n\nNo hosted endpoint is listed for LiteLLM. OpenRouter has a hosted endpoint at https://openrouter.ai/api/v1.\n\n### Are LiteLLM and OpenRouter 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 OpenRouter.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/litellm-vs-openrouter.json, and with the fewest tokens: https://www.anchorterminal.com/compare/litellm-vs-openrouter.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"litellm\", \"b\": \"openrouter\"}`. From a terminal: `anchor compare litellm openrouter`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/litellm.json and https://www.anchorterminal.com/api/v1/tools/openrouter.json\n\n## Other comparisons with LiteLLM or OpenRouter\n\n- [Amazon Bedrock vs OpenRouter](https://www.anchorterminal.com/compare/amazon-bedrock-vs-openrouter.md)\n- [Claude API vs OpenRouter](https://www.anchorterminal.com/compare/anthropic-api-vs-openrouter.md)\n- [Azure OpenAI in Foundry Models vs OpenRouter](https://www.anchorterminal.com/compare/azure-openai-vs-openrouter.md)\n- [BlockRun.AI vs OpenRouter](https://www.anchorterminal.com/compare/blockrun-ai-vs-openrouter.md)\n- [Cerebras Inference vs OpenRouter](https://www.anchorterminal.com/compare/cerebras-inference-vs-openrouter.md)\n- [Cloudflare AI Gateway vs OpenRouter](https://www.anchorterminal.com/compare/cloudflare-ai-gateway-vs-openrouter.md)\n- [Cloudflare Workers AI vs OpenRouter](https://www.anchorterminal.com/compare/cloudflare-workers-ai-vs-openrouter.md)\n- [Cohere Chat API (Command models) vs OpenRouter](https://www.anchorterminal.com/compare/cohere-chat-vs-openrouter.md)\n- [DeepInfra vs OpenRouter](https://www.anchorterminal.com/compare/deepinfra-vs-openrouter.md)\n- [DeepSeek API vs OpenRouter](https://www.anchorterminal.com/compare/deepseek-api-vs-openrouter.md)\n- [Glimpse vs OpenRouter](https://www.anchorterminal.com/compare/elorian-glimpse-vs-openrouter.md)\n- [Fireworks AI Inference vs OpenRouter](https://www.anchorterminal.com/compare/fireworks-inference-vs-openrouter.md)\n- [Gemini Developer API vs OpenRouter](https://www.anchorterminal.com/compare/gemini-api-vs-openrouter.md)\n- [GroqCloud vs OpenRouter](https://www.anchorterminal.com/compare/groq-vs-openrouter.md)\n- [Inkling 2 Small vs OpenRouter](https://www.anchorterminal.com/compare/inkling-2-small-vs-openrouter.md)\n- [Jais 3 vs OpenRouter](https://www.anchorterminal.com/compare/jais-3-vs-openrouter.md)\n- [Meta Model API vs OpenRouter](https://www.anchorterminal.com/compare/meta-model-api-vs-openrouter.md)\n- [MiniMax API vs OpenRouter](https://www.anchorterminal.com/compare/minimax-api-vs-openrouter.md)\n- [Mistral AI API vs OpenRouter](https://www.anchorterminal.com/compare/mistral-api-vs-openrouter.md)\n- [Muse Spark Open vs OpenRouter](https://www.anchorterminal.com/compare/muse-spark-open-vs-openrouter.md)\n- [Nemotron 3.5 Super VL vs OpenRouter](https://www.anchorterminal.com/compare/nemotron-3-5-super-vl-vs-openrouter.md)\n- [Novita AI vs OpenRouter](https://www.anchorterminal.com/compare/novita-ai-vs-openrouter.md)\n- [OpenAI API vs OpenRouter](https://www.anchorterminal.com/compare/openai-api-vs-openrouter.md)\n- [OpenRouter vs Prism Inference](https://www.anchorterminal.com/compare/openrouter-vs-prism-inference.md)\n- [OpenRouter vs Router.com (Ramp Router)](https://www.anchorterminal.com/compare/openrouter-vs-ramp-router.md)\n- [OpenRouter vs Beam 1.0](https://www.anchorterminal.com/compare/openrouter-vs-reflection-beam.md)\n- [OpenRouter vs RouterPlus](https://www.anchorterminal.com/compare/openrouter-vs-routerplus.md)\n- [OpenRouter vs SambaCloud](https://www.anchorterminal.com/compare/openrouter-vs-sambanova.md)\n- [OpenRouter vs SiliconFlow](https://www.anchorterminal.com/compare/openrouter-vs-siliconflow.md)\n- [OpenRouter vs Simplismart](https://www.anchorterminal.com/compare/openrouter-vs-simplismart.md)\n- [OpenRouter vs StepFun API](https://www.anchorterminal.com/compare/openrouter-vs-stepfun-api.md)\n- [OpenRouter vs SWE-2 Flash](https://www.anchorterminal.com/compare/openrouter-vs-swe-2-flash.md)\n- [OpenRouter vs Tencent Cloud TokenHub](https://www.anchorterminal.com/compare/openrouter-vs-tencent-tokenhub.md)\n- [OpenRouter vs Together AI Inference](https://www.anchorterminal.com/compare/openrouter-vs-together-inference.md)\n- [OpenRouter vs Vercel AI Gateway](https://www.anchorterminal.com/compare/openrouter-vs-vercel-ai-gateway.md)\n- [OpenRouter vs Vertex AI (Gemini Enterprise Agent Platform)](https://www.anchorterminal.com/compare/openrouter-vs-vertex-ai.md)\n- [OpenRouter vs xAI API (Grok)](https://www.anchorterminal.com/compare/openrouter-vs-xai-api.md)\n- [Antseed vs LiteLLM](https://www.anchorterminal.com/compare/antseed-vs-litellm.md)\n- [Antseed vs OpenRouter](https://www.anchorterminal.com/compare/antseed-vs-openrouter.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 OpenRouter](https://www.anchorterminal.com/compare/eden-ai-vs-openrouter.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 OpenRouter](https://www.anchorterminal.com/compare/hugging-face-inference-providers-vs-openrouter.md)\n- [LiteLLM vs Router.com (Ramp Router)](https://www.anchorterminal.com/compare/litellm-vs-ramp-router.md)\n- [LiteLLM vs RouterPlus](https://www.anchorterminal.com/compare/litellm-vs-routerplus.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",
  "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 OpenRouter",
        "url": ""
      }
    ],
    "description": "OpenRouter scores 66.6 (B) to LiteLLM's 62.4 (B) for model routing. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "LiteLLM B 62.4",
      "OpenRouter B 66.6",
      "scores"
    ],
    "h1": "LiteLLM vs OpenRouter",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/litellm-vs-openrouter",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LiteLLM vs OpenRouter for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/litellm-vs-openrouter"
  },
  "tokens": {
    "markdown": 5350,
    "slim": 2830
  },
  "version": 1
}
