TraceCov reads your OpenAPI spec and any HTTP traffic. You see which properties, constraints and response variants are actually covered.
$ curl -sL https://cli.tracecov.sh/install/ | sh
$ uv pip install tracecov
$ npm install @tracecov/core
Coverage from an example test run against the Petstore API.
Interactive HTML report. Drill from operations down to schema lines.
…then drill into any operation and see coverage line by line.
Built-in support for pytest, Playwright, Django, Flask, requests and httpx — plus tracecov proxy mode for everything else.
import tracecov
import requests
# your OpenAPI spec as a dict
coverage = tracecov.CoverageMap.from_dict({...})
session = coverage.requests.track_session(requests.Session())
# ...your tests run as normal...
coverage.save_report(output_file="coverage.html")
import { fromUrl } from '@tracecov/core';
// Playwright — record every response automatically
const coverage = await fromUrl('https://your-api.com/openapi.json');
page.on('response', (res) => coverage.record(res.request(), res));
await use(coverage);
coverage.saveHtmlReport({ outputFile: 'coverage.html' });
Prefer hands-off? Paste our AI setup prompt into Claude Code (or any coding agent) and it wires TraceCov in for you.
Not lines of code — properties and constraints in your OpenAPI spec.
Every property in your spec, plus every JSON Schema keyword that defines it: minimum, pattern, enum. Most tools stop at “did you call this endpoint.”
Tests can pass while only ever sending valid input. TraceCov tracks positive and negative coverage separately. No major API coverage tool tracks this.
Some schema combinations can never be satisfied — oneOf with mutually exclusive constraints, impossible enum/pattern combos. TraceCov computes satisfiability and flags them. No false coverage gaps to chase.
JSON, XML, form data, every parameter location. Full JSON Schema draft support across all spec versions.
HTML for local review. Markdown for PRs. JSON for artifacts and jq.
Fail CI with --fail-under when coverage drops. Set per-metric thresholds for operations, parameters, keywords, examples and responses. Gate merges on real coverage, not vibes.
tracecov proxy.Put it in front of any HTTP service. Anything that hits the proxy — curl, browser, manual QA, a load test — becomes coverage data against your spec. No SDK, no test framework, no language requirement.
$ tracecov proxy --spec openapi.json --port 8080
Upload your spec and traffic in the demo — coverage report in 30 seconds, no install.