Developer access

Use the registry without an API key. Responses are source-linked, CORS-open, and derived from the same canonical records as the site.

Choose a surface

Start with REST

The API is read-only. Successful and error responses use documented JSON envelopes. The OpenAPI document is the contract for generated clients, the registry schema describes the complete download's structure, and the SHA-256 file verifies the downloaded bytes. Successful REST responses include a content-derived ETag and honor If-None-Match with a bodyless 304 when the response has not changed.

All companies
curl https://agentpapers.dev/api/v1/companies

Money providers
curl 'https://agentpapers.dev/api/v1/companies?category=money'

Search capabilities
curl 'https://agentpapers.dev/api/v1/companies?q=wallet'

Records updated since a date
curl 'https://agentpapers.dev/api/v1/companies?updated_since=2026-09-01'

Changelog since a date
curl 'https://agentpapers.dev/api/v1/changelog?since=2026-09-01'

Category matrix
curl https://agentpapers.dev/api/v1/categories/money/matrix

OpenAPI document
curl https://agentpapers.dev/api/v1/openapi.json

Compare full snapshots

The date-filtered company API and changelog do not communicate removals. Full snapshots are required to detect removed companies. The company-level diff example uses Node.js 22+ with no dependencies. It reads two local files without modifying them or making network requests.

Keep your previously accepted full snapshot as registry.accepted.json. Download the example, save the new snapshot to a separate candidate file, then compare:

Download the example
curl --fail --location --output registry-diff.mjs https://agentpapers.dev/examples/registry-diff.mjs

Download a candidate snapshot
curl --fail --location --output registry.candidate.json https://agentpapers.dev/registry.json

Compare with the accepted snapshot
node registry-diff.mjs registry.accepted.json registry.candidate.json

The JSON output lists sorted added, updated, and removed company IDs. It compares full company records by company.id, ignores object key order and top-level generated_at changes, and treats array order as meaningful. This is a company-level diff, not a complete schema or semantic validator. Review the comparison before manually accepting the candidate as your next snapshot.

Canonical data and freshness

Each company record includes its verification date and official sources. Unknown values remain unknown rather than being inferred. Qualification and semantic validation rules are documented in the methodology.