CGC Cards APIcgccards.com ↗
Look up CGC trading card grades, card identity, images, and population report data by certification number or set/card number via the CGC Cards API.
What is the CGC Cards API?
The CGC Cards API exposes 3 endpoints covering CGC-certified trading card grading data from cgccards.com. Use lookup_cert to retrieve a card's grade, identity fields, and front/back image URLs from a single certification number. The other two endpoints return population report data — including full grade ladders and per-designation counts — either by cert number or by set name, card number, and language.
curl -X GET 'https://api.parse.bot/scraper/79a64119-68da-456c-a5da-449146b5eda6/lookup_cert?cert_number=4260601133' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve grading details for a CGC-certified trading card by its certification number. Returns card identity (name, game, set, number, variants), the assigned grade, grader notes, and front/back image URLs when available. For sports cards, card_name contains the player name and game contains the manufacturer. A single round-trip per cert; no pagination.
| Param | Type | Description |
|---|---|---|
| cert_numberrequired | string | CGC certification number, 10–13 digits (e.g. 4260601133). |
{
"type": "object",
"fields": {
"game": "Game the card belongs to (e.g. Pokémon) or manufacturer for sports cards (e.g. Topps)",
"year": "Year of the card release",
"grade": "CGC grade assigned (e.g. PERFECT 10, GEM MINT 10)",
"images": "Array of image objects with url and title (Obverse/Reverse)",
"card_set": "Card set name",
"language": "Language of the card",
"card_name": "Name of the card, or player name for sports cards",
"variant_1": "First variant descriptor, if any",
"variant_2": "Second variant descriptor, if any",
"card_number": "Card number within the set",
"cert_number": "CGC certification number",
"grader_notes": "Notes from the grader, or Unavailable"
},
"sample": {
"data": {
"game": "Pokémon",
"year": "2019",
"grade": "PERFECT 10",
"images": [
{
"url": "https://ccg-imaging-cgc-tradingcards-production.s3.amazonaws.com/a4795f1e-fc0a-4aa8-92f9-256ba7ed6e66/CGC4260601-133_OBV.jpg",
"title": "Obverse"
},
{
"url": "https://ccg-imaging-cgc-tradingcards-production.s3.amazonaws.com/a4795f1e-fc0a-4aa8-92f9-256ba7ed6e66/CGC4260601-133_REV.jpg",
"title": "Reverse"
}
],
"card_set": "Dream League",
"language": "Japanese",
"card_name": "Gallade",
"variant_1": "Character Rare",
"variant_2": "Holo",
"card_number": "057/049",
"cert_number": "4260601133",
"grader_notes": "Unavailable"
},
"status": "success"
}
}About the CGC Cards API
Cert Lookup
The lookup_cert endpoint accepts a CGC certification number (10–13 digits) and returns the card's full identity: card_name, game, year, card_set, card_number, language, up to two variant descriptors (variant_1, variant_2), the assigned grade (e.g. GEM MINT 10, PERFECT 10), and an images array with Obverse and Reverse URLs. For sports cards, game holds the manufacturer name (e.g. Topps) and card_name holds the player name rather than a card title.
Population Reports
Two endpoints surface CGC population data. get_card_population takes a cert number, resolves the card identity, and returns a grade_ladder array with the count of CGC-graded copies at each grade level from Perfect 10 down to 1. Supplying the optional grade input adds a count_higher field showing how many copies have been graded strictly above that level — useful for understanding scarcity at a specific grade tier.
lookup_population provides the same grade ladder plus richer breakdowns: a designations object that separates perfect_10, pristine_10, and gem_mint_10 counts, and a population_total for the card variant. Each entry in its grade_ladder includes an inline count_higher value. This endpoint also supports lookup by card_set + card_number + optional language when a cert number is not available, making it the right choice when you have card metadata but no specific slab in hand.
Coverage and Card Types
All three endpoints cover CGC-graded trading cards across games (Pokémon, etc.) and sports cards. Language disambiguation is available on population lookups — useful for cards that exist in both English and Japanese printings with separate population counts. Variant descriptors (e.g. Holo, Reverse Holo) are returned where CGC tracks them and flow through to population queries.
The CGC Cards API is a managed, monitored endpoint for cgccards.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cgccards.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official cgccards.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Verify the grade and card identity for a CGC slab before purchasing it by cert number.
- Display front and back slab images on a collection tracking app using the
imagesarray fromlookup_cert. - Determine how many copies of a specific Pokémon card have been graded GEM MINT 10 or higher using
lookup_population. - Compare population totals across English and Japanese printings of the same card using the
languageparameter. - Build a scarcity score by combining
population_totalwithcount_higherfromget_card_population. - Bulk-validate a collection of cert numbers and surface grade and set data for each slab.
- Separate Perfect 10 from Pristine 10 and Gem Mint 10 populations using the
designationsobject inlookup_population.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does CGC Cards have an official developer API?+
What does `lookup_population` return that `get_card_population` does not?+
lookup_population returns a designations object that breaks the top-10 tier into three separate counts — perfect_10, pristine_10, and gem_mint_10 — plus a population_total for the full variant. It also embeds count_higher inline on every row of the grade_ladder, rather than requiring a separate grade input. get_card_population computes count_higher only when you supply the optional grade parameter.Can I look up population data without a cert number?+
lookup_population accepts card_set and card_number as an alternative to cert_number. The language parameter can disambiguate cards that exist in multiple language printings. This path is useful when you have card metadata from a checklist or database but no specific graded slab.