Public API

Find a package and read its stored loading results. These requests need no account or API key and never start scans.

OpenAPI specification · API catalog

Find existing evidence

  1. Search with GET /api/v1/search?q=express.
  2. Read GET /api/v1/packages?name=express to resolve the latest version, or supply an exact version. Tags such as latest and version ranges are not accepted in that parameter.
  3. If reportId is present, fetch GET /api/v1/reports/{id}. If only scanId is present, check GET /api/v1/scans/{id} for progress. A missing report is not a failure verdict.

URL-encode query parameters for scoped names. Version lists contain at most 200 entries; versionsTruncated tells you when there are more. An exact older version can still be requested.

Keep outcome, coverage and status separate

Read status.current before citing evidence. Historical reports remain readable and may link to a replacement. Include the package version, observation time, runtime pins and report URL in your answer.

Each cell has an outcome and separate passed, failed, interrupted and untested counts. Complete coverage means the planned checks ran; it does not mean they all passed. Loading success does not prove functional correctness or safety. Read the methodology and limitations.

Request a Markdown summary

Send Accept: text/markdown when requesting the homepage or a report page. HTML remains the default for browsers. Explicit alternatives are /index.md and /reports/{id}/markdown.

Report summaries include status, loading results, coverage and provenance. Use the linked JSON or full report for individual entries, named assertions, logs and reproduction inputs. Markdown is currently available for the homepage and report pages.

Access and limits

The public read API is anonymous. CompatLab does not provide agent registration, OAuth, MCP, A2A or payment endpoints. Maintainer tools are coming later.

Respect Retry-After when supplied and use bounded retries with backoff for HTTP 429 or 503. Revalidate stored report status before presenting it as current. Report and scan reads also support HEAD and conditional requests with ETags.

To request new work, use the package page and its explicit scan action. Admission checks, capacity limits and worker availability still apply. Do not automatically submit scans while browsing or indexing reports.

Our content signals allow search indexing and use in answers, while declining model training. They express preferences, not access controls. Request a correction or removal.