Skip to main content
A GemRate ID is GemRate’s unique identifier for a card as cataloged by a single grading company. It’s the key you use across the API: it’s returned by cert and spec lookups, and it’s what GET /v1/cards/{gemrate_id}/population takes. A GemRate ID is consistent once assigned.

One card, up to four IDs

Each grading company — PSA, Beckett, SGC, CGC — catalogs cards independently, so GemRate mints a separate ID per grader. A single real-world card therefore has up to four GemRate ID values, one for each grader’s entry. Each ID means “this card, graded by this grader.”

The universal ID

When GemRate recognizes that several per-grader entries are the same card, it matches them together and promotes one of those IDs to be the universal GemRate ID — the single identifier that represents the card across every grader. A grader-scoped response carries both:
  • gemrate_id — the grader-scoped ID for the entry you looked up.
  • universal_gemrate_id — the promoted, cross-grader ID for the same card.
The universal ID is itself one of the card’s per-grader IDs (the promoted one). So for the promoted grader gemrate_id and universal_gemrate_id are identical, while the other graders’ gemrate_ids differ from it.

When to use the universal or grader-specific

Whenever possible, you should use the universal gemrate ID. The universal ID will not change for a card definition and it can be used to fetch data for any grader. If the universal gemrate ID is not returned by a response, that is because we have not matched that card across graders. That gemrate ID is still functional in any endpoint, and if/when the card is matched that ID will still work.

Where does a GemRate ID come from?

You obtain a gemrate_id by looking a card up. Depending on what you already know, there are a few ways in:
  • Cert lookupGET /v1/certs/{grader}/{cert}. If you have a grading company’s cert number, this returns that copy’s gemrate_id (and the universal_gemrate_id alongside it). The most direct route when you’re holding a slab.
  • Catalog downloadsGET /v1/catalogs/{catalog}. Bulk CSV exports list every card in a catalog with its gemrate_id per row — use these to map IDs in bulk rather than one lookup at a time. Availability is limited — see the catalog download endpoint for the catalogs you can currently request (psa and pokemon), each gated by its own approved-key allowlist.
  • The web app — search on gemrate.com and open a card; the gemrate_id is the hex segment in the URL, right after /card/. For example, in https://www.gemrate.com/card/d74f909463a77b5d16a878900d60e2f93710a17f/2025-cooper-flagg-topps-chrome-refractor-251 the ID is d74f909463a77b5d16a878900d60e2f93710a17f (the trailing slug is just a human-readable label and isn’t part of the ID).
  • Spec lookupGET /v1/specs/{grader}/{spec_id}. If you have a grading company’s own catalog identifier (PSA spec number, Beckett price-item id, etc.), this resolves it to the card and returns its gemrate_id.

Example

A 1986 Fleer Michael Jordan #57 graded by all four companies: After matching, all four entries report universal_gemrate_id = abc123…, while each keeps its own grader-scoped gemrate_id.