Skip to main content
GET
No key · No scope · No MCP tool Any card’s metadata and image URLs, by id. It needs no key and no account, so you can use it to show a card without giving your server a key. It carries no price or value of any kind. market_value, price and market_value_last_updated are left out, and so is a luxury goods item’s attributes. A key still gets those from Get a card, along with price history. Call it from a server. It sends no CORS header, so another site’s browser JavaScript can’t read the response.
string
required
A card id: item.id or card_id from any other endpoint.
string
The card’s catalog, if you know it: pokemon, onepiece, sports, riftbound, watches, goods (luxury goods) or singles (raw singles). Without it, every catalog is searched.

Response

object
These fields of the card object, and no others. A field a card’s catalog doesn’t have is left out. A field it has but we don’t know is null.
  • Identity: id, category, name, set, year, number, variant, rarity, card_type, language
  • Slab: slab_label, grading_company, grading_rank, card_condition, cert_number
  • Images, as URLs: front_image, back_image, render_image, image_url
  • Sports cards: sport, player_name, team, manufacturer, parallel, is_rookie, is_autograph, is_memorabilia, serial_numbered
  • Watches and luxury goods: brand, reference_number, video_url, condition, size, description
Nothing says who holds the card, what it sold for or whether it’s for sale.

Cache time

Our CDN caches a 200 for up to 5 minutes, and can serve it for another minute while it refreshes. Behind the CDN, a card is read at most once a minute. So a response can be up to about 7 minutes old. Errors are never cached, though a card added in the last minute can still read as a 404. Send only category as a query parameter. Anything else in the URL misses the CDN and counts against your limit.

Limits

  • 60 requests a minute per IP address (an IPv4 address, or an IPv6 /64). After that you get a 429 RATE_LIMITED with retry_after_seconds and a Retry-After header. A response from the CDN doesn’t count. The count is kept per server, so the exact point you’re refused can vary.
  • The shared limit on everything under /api/: see Rate limits.
A key doesn’t raise these. This route never reads one.

Errors