Base URL
All routes live under the/v1 version prefix:
GET requests over HTTPS. The contract evolves additive-only within v1.
Authentication
Send your API key in thex-api-key header on every request:
- Missing or invalid key →
401. - Valid key without access to a resource →
403.
Response envelope
Every success is{ "data": …, "meta": { "request_id": … } }; lists put pagination
in meta.pagination. Errors carry a stable, machine-readable code:
Grades are universal
All population/grade data is reported on one universal grade scale (e.g.gem_mint,
mint_plus, 9), so numbers are directly comparable across PSA, Beckett, SGC, and CGC.
Per-grader counts are integer | null (null = that grader doesn’t issue the grade).
Resources
Certificates
A specific graded copy —
GET /v1/certs/{grader}/{cert} (+ /images).Cards
The card itself + population —
GET /v1/cards/{gemrate_id} (+ /history).Specs
A grader’s catalog entry —
GET /v1/specs/{grader}/{spec_id}.Catalogs
Bulk CSV download —
GET /v1/catalogs/{catalog}.