Sports Card API
Updated . Plan numbers are the ones on the developers page that day; the live plans table wins if they ever disagree.
Quick answer
The HobbyCardIndex sports card API returns current prices at every grade, real sold comps, cert lookups and photo identification for baseball, football, basketball, hockey and 20-plus more categories, over plain REST with an X-API-Key header. Commercial plans start at $99 a month, and a free setup month, by application, lets you build against real data first.
What the sports card API returns
Everything lives under https://hobbycardindex.com/api/v1/ and takes your key in an X-API-Key header (an Authorization: Bearer header works too). Every successful response is wrapped as {"success": true, "data": {...}}; the examples on this page show what sits inside data. Prices are US dollars with two decimals.
GET /prices/search: find a card by player, year, set and number, or filter by category, set, year, language and price range, up to 100 a page. Each result carries raw, PSA 10, 9, 8 and 7, BGS 9.5, CGC 10 and SGC 10 prices.GET /prices/{cardId}: one card at every grade, with trading volume, when the price was last updated, the picture link and the card page URL.GET /prices/{cardId}/sales: the card's real sold sales by grade, each with price, date, how it sold, bids and the listing link. More on the sold comps page.GET /prices/{cardId}/history: daily prices at every grade, up to ten years back, for charts.GET /certs/{grader}/{certNumber}: a PSA, BGS, CGC or SGC cert as the grader's record, our matching card and the price at that grade. See the cert lookup page.POST /scan: identify a raw card or a slab from a photo. See the card scanner page.GET /market/moversandGET /market/categories: the biggest risers and fallers in a category, and category-level stats.POST /watchlistandPUT /webhook: pick the cards you care about and get one signed POST a day with every price that changed.
Try it: one search, every grade
A plain q search returns the ten best matches, base cards before parallels, most-traded first. Pass a result's id to the card, sales, history and population endpoints.
curl 'https://hobbycardindex.com/api/v1/prices/search?q=Mike%20Trout%202011%20Topps%20Update' \
-H 'X-API-Key: hci_live_...'
{
"results": [
{
"id": 12345,
"externalId": "67890",
"name": "Mike Trout #US175",
"year": 2011,
"setName": "Topps Update",
"cardNumber": "US175",
"printRun": null,
"category": "Baseball",
"playerName": "Mike Trout",
"imageUrl": "https://hobbycardindex.com/api/v1/images/proxy?i=...",
"addedAt": "2025-03-02T08:14:09Z",
"prices": {
"loose": 293,
"psa10": 4500,
"psa9": 1250,
"psa8": 640,
"psa7": null,
"bgs10": 3900,
"cgc10": 2100,
"sgc10": 2400,
"volume": 1400
},
"hciUrl": "https://hobbycardindex.com/cards/12345"
}
],
"count": 10
}
Example values, not live prices. A parallel's name shows the finish in brackets, for example Mike Trout [Gold] #US175, and printRun is 50 for a card numbered to 50.
What you get
- More than 16 million cards and more than 22 million raw and graded prices, refreshed daily, across 25-plus categories.
- Prices at eight lanes: raw, PSA 10, 9, 8 and 7, BGS 9.5, CGC 10 and SGC 10, in US dollars.
- Real sold comps per card, by grade, with sale type, bids, the marketplace and the listing link.
- Cert lookups for PSA, BGS, CGC and SGC on every commercial plan, and pop reports on Platform or with the add-on.
- Photo identification of raw cards and graded slabs, with up to seven alternatives.
- Set lists, market movers, a watch list with a once-a-day signed webhook, and daily price files on Platform.
- An MCP server for AI assistants, on the same key.
Coverage, honestly
Baseball, basketball, football and hockey are the deepest, and that's where most of the graded prices and sales sit. UFC, soccer, golf, tennis, racing, boxing and wrestling are covered with less depth, so expect more null graded lanes on those. The same key reaches Pokémon, Magic, Yu-Gi-Oh and the other games, which have their own pages: the Pokémon card API, the Magic card API and the trading card API. If you want to see the data before you write a line of code, the sports card values hub and the baseball card price guide run on the same catalog.
Plans and prices
| Plan | Price | Requests a month | Photo scans | Sold-sale lookups | Cert lookups | Lookups a second | Past the requests and scans (up to 3x) |
|---|---|---|---|---|---|---|---|
| Lite | $99 a month | 25,000 | 25,000 | 5,000 | 150 | 10 | $1 per 250 more |
| Growth Lite | $249 a month | 125,000 | 125,000 | 25,000 | 750 | 15 | $1 per 500 more |
| Growth | $499 a month | 500,000 | 500,000 | 100,000 | 3,000 | 20 | $1 per 1,000 more |
| Platform | from $1,500 a month | 2,000,000 | 1,500,000 | 500,000 | 50,000, plus 50,000 pop reports | 50 | Set up with Sean, invoiced; bulk price files included |
Price history comes with every size. Sold-sale, cert and pop lookups stop at the plan's number and never run over. Two add-ons: pop reports plus cert lookups for $100 a month, which brings 32,000 of each to Lite, Growth Lite or Growth, and the daily price files for $450 a month on Growth Lite or Growth (included in Platform, not offered on Lite). Lite, Growth Lite and Growth are month to month by card, cancelled any time in Settings, API Access, and run to the end of the paid month.
The free setup month is 30 days on real data with no card: 1,000 requests and 1,000 photo scans a day, 500 sold-sale lookups and 100 cert lookups for the month. You apply in Settings, API Access once you're signed in, and Sean reviews each one. When the 30 days end, the first month of the plan you applied with is invoiced, and paying it keeps the key going. Full plan details are on the developers page.
Credit and data use
A commercial plan licenses the data for a product your users see. You can store the prices and price history you pull while the plan is active and use them on card pages, in charts, collection values and your own estimates. Sold-sale records can be shown to your users and kept in your product, but not turned into a standalone sales database, copied by the category or offered as a download. Card recognition stays with the scan endpoint: show our identifications, don't use them to build a recognizer of your own.
The terms ask for one link back to us somewhere on your site, such as "Prices and API supplied by Hobby Card Index". It does not need to be beside the prices or on your main page. When a plan ends, stored copies go within 30 days. The full wording is in the Terms of Service, section 8, and the shorter version is under Data use on the developers page.
Common questions
Is there an API for sports card prices?
Yes. The HobbyCardIndex REST API returns current prices for sports cards at eight grades: raw, PSA 10, 9, 8 and 7, BGS 9.5, CGC 10 and SGC 10. It also returns each card's sold sales, daily price history, cert lookups and photo identification, with the key sent in an X-API-Key header.
How much does a sports card API cost?
Commercial plans start at $99 a month for Lite: 25,000 requests, 25,000 photo scans, 5,000 sold-sale lookups and 150 cert lookups. Growth Lite is $249 and Growth $499, both month to month by card. Platform starts at $1,500 a month, invoiced, and includes bulk price files. A free setup month is there to test with first.
Where do the sports card prices come from?
They're real sold prices from eBay and the major auction houses, matched to the exact card and grade and refreshed daily, with one price per card and grade. Each price record carries its last-updated time and trading volume, and the sales endpoint returns the individual sold sales behind a card so you can show your users the comps.
Can I show the prices in my own app or website?
Yes, on a commercial plan. Lite, Growth Lite, Growth and Platform license the data for products your users see: apps, websites and point-of-sale screens. You may store prices and price history while the plan is active, and the terms ask for one link back to us somewhere on your site. It does not need to be beside the prices or on your main page.
Which sports does the API cover?
Baseball, basketball, football and hockey are the deepest, with the most graded prices and sales. Soccer, UFC, golf, tennis, racing, boxing, wrestling and multi-sport sets are covered with less depth, so some graded lanes come back null. The same key also reaches Pokémon, Magic, Yu-Gi-Oh, One Piece and the other trading card games.
How do I get a sports card API key?
Sign in, open Settings, then API Access, and either apply for the free setup month or pick a plan and pay by card. Then click Generate API Key. The key shows once, so copy it; each account has one active key and generating a new one replaces the old. Send it as the X-API-Key header on every call.