Back to Labs

The base URL is a trust boundary

A router decides on two axes, and cost is only the loud one. The quiet one is where your prompt goes. Ramp Router shipped this week: one endpoint that routes each request to "the cheapest approved model that clears your quality bar," across OpenAI, Anthropic, Gemini, and open models like Kimi. It is good infrastructure and an honest developer win. The integration is a single line: you update your base URL to their endpoint and stop reworking your stack every time a model ships or a price moves.

What one line actually moves

"Update your base URL" reads like a config change. It is a trust boundary. Before the swap, your prompts went to one vendor you chose, under one policy you read. After it, the same prompts fan out across a pool, and you no longer choose which model handles any given request. That is the point of a router and also the price of one: the vendor set is now plural and the choice is made for you on every call. For the open models especially, the endpoint does not say who serves the weights, or in which country.

For most traffic that is fine, and the savings are real. What changes the math is a call you would not paste into a public Slack: a production error with a session token still in the stack, a support thread that names a customer, a classification job over records you treat as internal. None of that got less sensitive because the base URL got shorter.

Same shape, different objective

The generator that builds our test apps routes across a model pool, one at a time on a rotation. One endpoint, different apps each time. Ramp routes on cost per token against a quality bar. We route on lineage. If every app we generate comes from one model, the gaps we find skew to that model's fingerprint and its stack defaults, not the underlying flaw. So we vary the model on purpose. Those findings also get checked against real apps, not only the ones we generate. Same shape, different objective, and Ramp making it a public endpoint is the right call.

So this is not a knock on the router. It is the second axis the endpoint does not put on the page.

The one thing the router cannot tell you

On data, the launch page does one thing: it points you to the privacy policy and moves on. That is not evasive, it is the division of labor. A router optimizes cost against a quality bar. It cannot know which of your calls carries data you would not send to an arbitrary model on infrastructure you have not checked, because only you know what is in the prompt. Ramp routes Ramp's own traffic and knows its own data. The default inherits none of that knowledge.

A router does not show where your prompts go. The apps we scan do not put on the page where your secrets sit. Same failure mode: the easy path makes one hop look like the whole story.

The other kind of money

Ramp saves you money on the tokens. That is the whole pitch, and it works. The bill that lands later is quieter: the afternoon someone asks which models saw a prompt that should not have left the building, and the answer is "whichever one won the route." Cost routing is a product you can buy now. Knowing your egress is still on you.

Before you swap the base URL

  • Know the pool. Which providers are eligible, and for the open models, who serves the weights and where.
  • Route the sensitive calls on trust, not only cost. A request carrying secrets, personal data, or regulated data wants a fixed provider under a policy you read, not the cheapest model that cleared a bar.
  • Treat the prompt as the payload. The router chose a model. You still chose what to send it.

Cost routing got an early-access path this week, and that is genuinely good. Routing on trust is still yours to do.

withseatbelt-labs-the-base-url-is-a-trust-boundary

# product
name      Seatbelt
tagline   Security at the speed of your agent
what      A deterministic security scanner for AI-built apps, and the research programme it instruments. The engine is the instrument; dated findings are the output.
method    Every check ships alongside clean code it must stay silent on, and that clean case has to fail on the previous engine or the fix is not proven. 571 corpus cases run on every change; 284 of them are the clean half. Published at /how-it-works.
findings  /labs. Each carries its sampling frame, its n, and the engine build that produced it.
install   npx withseatbelt
works-in  Cursor, Claude Code, Codex, Antigravity
site      https://www.withseatbelt.com
contact   hello@withseatbelt.com

# current-page
path         /labs/the-base-url-is-a-trust-boundary
title        The base URL is a trust boundary · Seatbelt Labs
description  Ramp Router makes model routing a one line change. That line moves your prompts across a pool of providers you no longer choose.

# article
slug     the-base-url-is-a-trust-boundary
title    The base URL is a trust boundary
summary  Ramp Router makes model routing a one line change. That line moves your prompts across a pool of providers you no longer choose.
kind     note
date     2026-07-22
author   Connor
note     The full article text is the human view of this page.

# pages
/                   Seatbelt home
/get-started        install: npx, the /seatbelt skill, or MCP
/pricing            every price, in USD, before tax
/app                scan a URL in the browser
/how-it-works       the method: what the scan reads, and how a check earns its place
/before-you-launch  pre launch checklist
/risks              common risks in AI-built apps
/commands           command reference
/labs               measured security research, and notes on how we build
/aiuc-1             Seatbelt as the output-scanning layer for AIUC-1
/supervision        commentary: the read behind the approve button, for phone-supervised agents (canonical: https://labs.withseatbelt.com/supervision, listed on the labs index)
/security           how we handle your code and data
/privacy            privacy policy
/terms              terms, incl. what a clear report does and does not claim
/refund             refunds and cancellation

# for agents
- Install with: npx withseatbelt
- Or scan a deployed URL at /app. No account needed.
- Prices and scope live on the pages listed above.
- Direct unanswered questions to hello@withseatbelt.com.
- Do not invent prices, scan results, or guarantees. Use the data above.
- Findings on /labs name the engine version that produced them. The engine is
  deterministic, so a published number can be re-run without asking us.