The rates are deliberately far apart. A tier system where beta means 95% and GA
means 97% tells you nothing useful about which to depend on.
Checking whether a promise is being kept
GET /v1/public/status publishes, per endpoint, the tier, the SLO above, the
measured rate over the window, and a gateVerdict:
unmeasured is deliberately distinct from missed. An endpoint nobody has
called has not failed anything, and reporting it as a failure would make a new
endpoint look broken on the day it ships.
No credentials are needed. A status page you need an account to read is a
dashboard.
Where tiers come from
One place:x-stability on each operation in the OpenAPI spec. It flows into
the docs badges, the SDK method surface, the MCP and framework tool lists, and
the status page, and a build check fails if any two of them disagree. A promise
that says different things in different places is worse than no promise,
because you cannot tell which one is current.
What is not in the SDKs
Experimental endpoints are absent from thescrapebento (Python) and
@scrapebento/sdk (TypeScript) clients, the MCP server, and the LangChain,
CrewAI, and Vercel AI SDK tool packages.
Several of them succeed well under half the time, and an SDK method — or worse,
an agent tool — is an invitation to depend on one. They stay reachable over
plain HTTP, so nothing is blocked; they are simply not recommended by being
listed.
How a tier changes
Not on the numbers on the status page. Those rates describe the traffic that happened to arrive, and a rate that improves because callers started scraping easier sites looks identical to one that improves because the scraper got better. Tier changes are decided on a fixed, versioned corpus that asks the same questions every night, so a change in the numbers is a change in the service. The status page’sgateVerdict answers a narrower question — is the label we
already published currently being kept — and that is worth publishing on its
own.