Playground¶
Paste two versions of a contract. Get the breaking changes, with rule ids.
No account, no upload, no server. This page loads CPython as WebAssembly and
installs the same wheel a pip install would, so what runs is
diff_services and evaluate_breaking — the functions the CLI calls, not a
reimplementation of them.
Nothing leaves this tab
"Paste your API spec into our website" is a request most people should refuse, and most playgrounds are asking exactly that. This one cannot receive the text: the analysis happens in your browser, and there is no endpoint for it to be sent to.
The first run downloads Python and pydantic from jsDelivr, which takes a few seconds and tens of megabytes. It happens on the first Compare, not on page load.
What it runs, and what it leaves out¶
Everything on the analysis path: the loader, every breaking-change rule, and the security checks on the new contract. OpenAPI 3.0/3.1/3.2, Swagger 2.0, AsyncAPI, GraphQL SDL and MCP tool manifests are all recognised by content, so pasting a GraphQL schema works without changing anything.
What it leaves out is everything that needs the network or the filesystem —
drift --base-url, test, replay, regression, the server. A browser tab
cannot probe your staging environment, and a page that pretended to would be
lying about where the answer came from.
Two dependencies the package declares are not installed here: httpx and
flask. Nothing on this path imports them — every command that needs them
imports them inside the function that uses them — and installing them would add
a dozen wheels to a first load for code this page cannot reach. The cost is
that a future import of something new fails at runtime rather than at install
time, so the page catches that and names the missing module instead of showing
a blank result.
Getting the same answers locally¶
curl -fsSL https://raw.githubusercontent.com/webdevsamran/api-verity-lab/main/install.sh | sh
apiverity breaking old.yaml new.yaml
The CLI has the rest of it: semver policy, consumer impact, suppressions, runtime drift, the CI gate. Installing lists every channel.