# Fix list: Router.com (Ramp Router)

From Anchor Terminal's listing at https://www.anchorterminal.com/tools/ramp-router, the October 2026 research run, assessed 27 October 2026. Grade C, 54.5 out of 100.

This is everything the published grade says the listing lacks, the biggest possible gain to the total first. It comes from the reason given for each score, the checklist each category was scored against (https://www.anchorterminal.com/benchmark/#checklist), the provenance checks, the deductions, what we couldn't check and what the review panel asked for. A fix counts at the next check, once it's public.

For a coding agent working on Router.com (Ramp Router): work through the items below in the product, its docs and its public pages. Each category gives the reason for its score, with the points each checklist item earned, and the checklist itself, so the gap is the items that earned less than their points. Change the product, not the wording, and keep a note of what you changed and where it's published.

## 1. Reliability, 25 out of 100, up to 15 more on the total

Why it scored 25: Hosted reading. No status page found. status.router.com does not resolve, router.com/status answers 404, and neither the docs nor router.com link one (0). No readable incident history (5). No request or token rate limits are published. The docs say limits vary by model and list only technical limits, a 100 MiB body, 15 candidates and 100 keys per user (0). The errors page passes through provider `retry-after` and `retry-after-ms`, tells clients to respect them, gives a retry or fallback action for every 4xx and 5xx code, and says a failed fallback candidate is not retried (15). No SLA found. The Router Terms provide the service as is, and Ramp's product schedule says Router documentation creates no service level (0). The public API carries no beta label in the docs, but Ramp's product schedule for its customers heads the Router section 'Early Access' and the docs llms.txt says to treat 'beta pricing, limits' as subject to change (5 of 10).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-reliability):

Hosted APIs, MCP servers, models and platforms.

- 20, a public status page with component history (Statuspage, Instatus, BetterStack or the vendor's own).
- 0 to 30, the incident record for the last 90 days on that page. 30 for a clean record or trivial incidents only, 20 for minor incidents only, 10 for one major outage (an hour or more of a core API down, or errors across the board), 0 for several. 5 when there's no history we could read, and the note says so.
- 15, rate limits documented with numbers.
- 15, documented 429 or overload handling (Retry-After, backoff guidance), and idempotency keys or safe-retry guidance where writes are involved.
- 10, an SLA published for any paid tier.
- 10, the surface agents use is generally available, not beta or preview.

Local packages, SDKs, frameworks and stdio MCP servers.

- 20, installs from an official package with supported runtimes stated.
- 25, a public CI and test suite, passing on the default branch.
- 0 to 25, open crash or regression issues relative to activity (25 for few and handled, 0 for many, old and unanswered).
- 15, semver discipline and breaking changes called out in a changelog.
- 15, version 1.0 or later, or declared stable.

Protocols are read from their reference implementations, the public facilitators or servers, spec stability and test vectors.

## 2. Payments & pricing, 40 out of 100, up to 7.5 more on the total

Why it scored 40: No x402, MPP or L402 in any of the 41 docs pages. Calls draw on account credit (0). Per-token prices for every model are public at router.com/models and in the supported-models page without a login (20). Router.com says routing is free through 2026 and the first $26 of credits are free, and BYOK requests carry no Router charge. We did not sign up to confirm that no card is asked for (20). A person signs up in the browser with a US business email or Sign in with Ramp, and the CLI creates keys only after browser approval (0).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-payments):

The published rubric, also on the [x402 page](https://www.anchorterminal.com/x402/).

- 40, a machine payment protocol (x402, MPP or L402) on the tool's own endpoints. 10 to 30 when it covers only some endpoints or only goes through a third party, and the note says which.
- 20, per-call or per-unit pricing published without a login. 10 for public plan-only pricing, 0 for "contact sales" or prices behind a login.
- 20, a free tier or trial that doesn't need a card.
- 20, autonomous onboarding, meaning an agent can get access without a person signing up in a browser (keyless use, x402, a programmatic key API).

Payment platforms and agent wallets rarely charge for their own API over a machine protocol, so the first line has steps for them, and the highest one that applies counts. 40 when x402, MPP or L402 runs on all their own endpoints, 30 when it runs on part of their own API, 25 when their merchants can accept one, 20 for running a facilitator, 15 for paying as a buyer, and 0 when the only protocol is their own. Merchant acceptance sits above a facilitator because the platform's own customers can charge agents through it, while a facilitator settles for sellers who wire up the protocol themselves. The counter-argument (a facilitator does more for the protocol as a whole) has a point. Each note says which step applied.

Open-source software you run yourself is scored on its hosted or paid option if it has one. A free, self-hosted package with nothing to buy gets 20, 20 and 20 for the last three lines, and 0 to 40 for the first only if it ships a payment protocol.

## 3. Schema & documentation, 58 out of 100, up to 6.8 more on the total

Why it scored 58: Router, scored on the API lines. No OpenAPI or other machine-readable contract found. /openapi.json on docs.router.com returns the docs app shell. The API follows the OpenAI and Anthropic wire formats, which this checklist doesn't credit to a router, the same reading as RouterPlus (0 of 25). llms.txt and a Markdown copy of every page at the same path with `.md` (10). Pages say which endpoint to prefer and why, what isn't served (embeddings, files, batches), which Chat Completions controls return 501, and which workload suits which job (17 of 20). Router-only fields are tabled with types and bounds, the route selector rules are stated (`model` or `models` but never both, 1 to 15 candidates), over-limit timeouts are a 400 naming the maximum, and the model list documents a typed `router` object with a `schema_version`. Request bodies otherwise follow the upstream formats (12 of 15). curl, OpenAI SDK, Anthropic SDK, LangChain, Vercel AI SDK, LlamaIndex and Pydantic AI examples, and an error reference with a status, code and action for each case (15). Paths sit under `/v1` and the model object is versioned, but no API changelog or dated release notes were found (4 of 15).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-schema):

APIs and MCP servers.

- 25, a machine-readable contract (a public OpenAPI file or similar; for MCP, typed JSON Schema inputs on every tool).
- 10, llms.txt or Markdown docs served for agents.
- 0 to 20, descriptions that say what a tool is for, when to use it and when not to, read from the tool definitions in the source or the API reference.
- 0 to 15, typed inputs with enums, constraints and required fields, and no free-form JSON blobs.
- 0 to 15, examples and documented error responses.
- 15, versioning and a public changelog.

Models are read from the API reference, the OpenAPI file, llms.txt, the structured-output and tool-use docs and the model cards. Frameworks from docs a model can follow, typed interfaces, examples and the API reference.

## 4. Security & auth, 66 out of 100, up to 6 more on the total

Why it scored 66: Router, read on the model lines. Router keys are shown once, can expire, carry lifetime or periodic spend caps, can be locked, unlocked or revoked, and each key has its own model set and default workload. No permission scopes or programmatic rotation were found (24 of 30). The docs FAQ says Ramp-side content recording is on by default and keeps inputs, outputs and tool calls for one year for debugging, semantic analysis and product improvement, with detected personal data removed before product use. The Provider Terms Schedule marks six providers as not training on Router traffic and TypeSafe as 'Not prohibited' (6 of 20). Recording can be switched off account-wide, propagating asynchronously and without deleting existing archives, and flagged content may still be kept up to 30 days. The schedule lists zero data retention for Ramp-provided connections, except up to 30 days for OpenAI GPT-5.5 and later and for Claude Fable 5 and 5.1 (10 of 15). Logs show model, provider, status, tokens, cost, latency, fallback candidates, credential source and routing decisions per request, with usage export to S3 for Router Admins (14 of 15). A valid security.txt on router.com points to Ramp's security address. Ramp's SOC 2 and ISO 27001 reports, per the ramp listing's 8 October check, were not shown to cover Router, which is a separate product under its own terms. No bug bounty found (12 of 20).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-security):

- 0 to 30, the credential model. 30 for OAuth 2.1 with scopes, or scoped and revocable keys with rotation. 20 for plain revocable API keys. 10 for one all-powerful key. 10 off when a secret can travel in a URL query string as a documented option.
- 0 to 20, read-only or least-privilege modes, and confirmation or approval for destructive actions.
- 0 to 15, prompt-injection posture where the tool returns untrusted content (documented mitigations or guidance). A tool that returns no untrusted content gets 10.
- 0 to 15, audit logs or per-call visibility for the operator.
- 0 to 20, a security programme. security.txt or a disclosure policy, a bug bounty, SOC 2 or ISO 27001, advisories handled in public.

Models are read for retention, whether API data trains models (and whether that's off by default), zero-retention options and certifications. Frameworks for telemetry defaults, approval hooks, guardrails and sandboxing.

## 5. Agent ergonomics, 77 out of 100, up to 3.7 more on the total

Why it scored 77: Router, read on the model lines (tool use, structured output, caching, context, batch, SDKs, errors). Tools pass through on Responses, Messages and Chat Completions, and `GET /v1/models` reports `tools.supported` and `parallel` per model, with `null` where Router doesn't know. Behaviour depends on the model (16 of 20). The docs say JSON Schema output is expected to work across providers subject to model support, and each model carries a `structured_outputs` flag. A request the provider can't represent is a 501 (12 of 15). Cache read and write prices per model, a `prompt_cache_key` session lease of 5 or 30 minutes that keeps a session on the provider with a warm cache, and `cache_control` on Messages (14 of 15). Contexts up to 1,050,000 tokens on GPT-6.1 Sol and 1,048,576 on Kimi K3, a judgement call since a router has no default model (15). No batch route; the docs say Router doesn't serve batches (0 of 10). No SDK of its own. The OpenAI and Anthropic SDKs work with a changed base URL, framework setups are documented, and the MIT Ramp CLI configures six coding agents (5 of 10). Typed codes for every error, a `limit` object naming the cap and who set it, an all-candidates-failed summary, request and trace ids on every response and the serving provider in a header (15).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-ergonomics):

- 0 to 25, context cost. For MCP, the number and size of the tool definitions (25 for ten or fewer compact tools, 15 for 11 to 30, 5 for more than 30, plus up to 10 back for toolsets, dynamic loading or read-only subsets). For APIs, whether responses can be sized (field selection, limits, summaries).
- 20, pagination, filtering and output-size controls.
- 20, actionable, documented error responses, codes and messages an agent can recover from.
- 20, idempotency or safe retries, and for MCP the `readOnlyHint` and `destructiveHint` annotations.
- 15, sensible defaults, few required parameters, and official SDKs in at least two languages.

Models are read for tool use, structured output, prompt caching, context length, batch and SDKs. Frameworks for how much code and how many defaults a tool-calling agent with MCP needs.

## 6. Maintenance & community, 59 out of 100, up to 3.6 more on the total

Why it scored 59: Router, read on the model lines for a closed service. The Provider Terms Schedule was updated on 26 October 2026, and the Ramp CLI that ships the `router` commands released v0.2.82 on 27 October (30). Models carry a `deprecated` status and the docs list deprecated and retired models, but no notice period is stated, and the Baseten retirement note gives no date and says requests aren't redirected (4 of 12). Provider-specific Baseten ids and several Fireworks models were retired without dates. The API host moved from router-api.ramp.com to api.router.com, and the old host still answers (3 of 8). No public API changelog. Support is a dashboard button and router@ramp.com, not tested (5 of 15). ramp-cli issue replies were not read, because GitHub's API wasn't available to this session (3 of 10). No API SDK. The Ramp CLI (MIT, npm @ramp/router and @ramp/cli at 0.2.82, Homebrew) sets up agents and keys (7 of 15). The CLI repository has CI, build, npm and router-integration workflows and a tests folder, with 41 commit days since 29 July. CI results were not checked (7 of 10).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-maintenance):

- 0 to 30, time since the last release, or the last published model or API change for a closed service. 30 within 30 days, 20 within 90, 10 within 180, 0 older.
- 20, at least three releases or dated changelog entries in the last 90 days.
- 0 to 25, responsiveness. Issues and pull requests answered on GitHub (the open issues and how recent the replies are). For closed services, a public changelog and a support or community channel that answers, 0 to 15.
- 15, presence in the official MCP registry under a verified namespace (MCP servers), or current official SDKs (APIs and models).
- 10, package health, current dependencies and CI.

Models are read for deprecation notice periods and model churn rather than release counts.

## 7. Transparency & trust, 67 out of 100, up to 2.9 more on the total

Made of editorial 50, provenance 83.

Why it scored 67: Closed service under the Router Terms of Service of 31 August 2026, which bar reselling access and building a competing service. The CLI is MIT (16 of 30). The docs FAQ states the one-year default recording, the opt-out and the PII step. The Router Privacy Notice of 19 August 2026 says an account 'can be configured' not to retain content, without naming the default or the one-year period, and every link to it answers 301 to Ramp's general privacy policy. The superseded pilot terms kept data a year and allowed training on de-identified versions (16 of 30). No deprecation policy found. The Terms let Ramp add or remove models at any time, and model retirements in the docs carry no dates (5 of 20). The Provider Terms Schedule names each provider with its training and retention terms, and the FAQ says all models run on US infrastructure. No Router subprocessor list was found (13 of 20).

The checklist (https://www.anchorterminal.com/benchmark/#checklist-transparency):

- 0 to 30, source availability and licence clarity. 30 for open source under an OSI licence, 15 for closed with clear terms, 0 for unclear terms.
- 0 to 30, data handling and retention statements that agree with each other (privacy policy, DPA, retention periods, subprocessors).
- 0 to 20, a deprecation policy or notices with dates.
- 0 to 20, telemetry disclosed with an opt-out (local software), or subprocessors and data locations disclosed (hosted).

The other half of Transparency and trust is the provenance score, computed from checked facts (below). The category score is the mean of the two.

Provenance checks not met in full (half of this category, computed from checked facts):

- Status page: not found (0 of 10)
- Changelog: not found (0 of 10)

## What we couldn't check

What we couldn't read counted as absent. Publishing it on a page a plain HTTP fetch can read (not only in a browser) lets the next check count it.

- unchecked: the dashboard at app.router.com, which robots.txt disallows, so the signup form, settings defaults and whether a card is asked for were not seen
- unchecked: replies on the ramp-cli GitHub issue tracker and CI results, because GitHub's API wasn't available to this session
- No routing price after 31 December 2026 was found
- The launch post says Router is open 'to everyone', while the Router Terms and router.com limit it to business users in the United States with a business email domain. Recorded, not deducted
- Router.com says models are 'all US-hosted with options for ZDR', while BYOK Gemini defaults to the `global` Vertex location and Bedrock global profiles can route across all commercial AWS regions. Shared-key routes are stated as US-only
- The Router Privacy Notice is linked from router.com and the docs, but its URLs answer 301 to Ramp's general privacy policy, so a reader following the link doesn't see the Router notice
- Whether Ramp's SOC 2 and ISO 27001 reports cover Router, which runs under separate terms

## Weaknesses

- Ramp-side content recording is on by default and keeps prompts, outputs and tool calls for one year
- No OpenAPI document, status page, changelog, SLA or published rate limits were found
- Signup needs a US business email domain or Sign in with Ramp, in a browser
- No batch, embeddings or files routes, and Chat Completions lacks fallback lists and cost
- No routing price after 31 December 2026 was found

## What costs an agent a turn today

The notes we give agents before they call it. Each one is a workaround an agent shouldn't need.

- Switch off content recording in Settings before sending private data. It is on by default and keeps prompts and outputs for a year
- Read model ids from `GET /v1/models` at runtime. Ids are account-specific, an unknown one is a 404, and Gemini ids need your own Google key
- Use `POST /v1/responses` with a `models` list for fallbacks. Router stops falling back once a stream has started
- Set `fallback_timeout` and `provider_timeout`, or `allow_flex_tier: false`, when latency matters. Flex routing is on by default
- Treat both `401 invalid_api_key` and `401 api_key_deactivated` as a possibly locked key, and stop retrying on `402`

## When it's done

Send what changed and where it's published as a dispute (https://www.anchorterminal.com/builders/#disputes, or `POST https://www.anchorterminal.com/api/v1/contact` with `"kind": "dispute"`). Disputes are answered in public, and the listing is checked again by the same checklist. Paying for an audit or a listing claim changes nothing here.
