Alt APIalt.xyz ↗
Look up graded trading cards by cert number to get Alt Values, population reports, market sales, and live marketplace listings via the alt.xyz API.
What is the Alt API?
The alt.xyz API provides 5 endpoints for retrieving graded trading card data indexed by certification number or asset ID. The lookup_cert endpoint resolves a single PSA, BGS, CGC, or other grader cert number into the card's full identity, current Alt Value with confidence bounds, daily price history, population report across all graders and grades, and recorded market sales for that specific grade and grading company.
curl -X GET 'https://api.parse.bot/scraper/430fcd46-c575-4946-8090-6599338210b2/lookup_cert?cert_number=29023160' \ -H 'X-API-Key: $PARSE_API_KEY'
Resolves one grading-company certification number (PSA, BGS, CGC, etc.) to the card Alt tracks for it and returns, in a single call, the cert's grade details, the card identity (year, brand, subject, variety, card number, print run) with its imagery, the current Alt Value for that exact grade and grading company with its confidence metric and error bounds, the daily Alt Value time series for roughly the trailing year (values plus lower/upper bound arrays aligned by index with start_date/end_date), the population report across all grading companies and grades, and every recorded market sale of the same card at the same grade and grading company (newest first, each with date, price in USD, auction house, auction type, and the original listing URL). The sales list is the complete set the site holds for that grade; there is no pagination. Imagery: Alt's asset record carries its own image list, but it was empty on every card examined, so when it is empty the response falls back to the images of the most recent listing Alt indexes for the card (any marketplace, including eBay); asset.image_source tells which happened (asset | listing | null when neither holds an image). Alt's asset record holds no set/series name beyond brand and variety, no sport/game/player/team fields, and no third-party identifiers (eBay, TCGplayer, PSA/GemRate spec ids, SKU or slug), so none are returned. A certification number the site does not recognize returns a stale_input error (input_not_found). Two upstream round trips per call, plus one or two more when the image fallback is needed.
| Param | Type | Description |
|---|---|---|
| cert_numberrequired | string | Certification (cert) number printed on the graded card's slab label, 1-32 alphanumeric characters, e.g. a PSA cert such as 29023160. |
{
"type": "object",
"fields": {
"cert": "object: cert_number, grading_company, grade_number (string like \"10.0\"), autograph, qualifier, and subgrades {centering, corners, edges, surfaces} (null when the grader publishes none)",
"asset": "object identifying the card: asset_id, name, year, subject, category code (e.g. POKEMON_CARDS), brand, variety, card_number, print_run (null when not serial-numbered), image_url (absolute https URL of the primary/front image, null when Alt holds none), images (array of {position (FRONT | BACK), url}), image_source (asset when from Alt's asset record, listing when taken from the most recent indexed listing, null when no image), image_listing_id (listing whose images were used, null otherwise)",
"sales": "array of recorded market sales for the same card at this grade and grading company, newest first: id, date (YYYY-MM-DD), price (USD number), auction_house, auction_type, grade_number, grading_company, autograph, listing_url, subject_to_change, label",
"alt_value": "object: current (USD estimate for this grade/company), confidence_metric, lower_bound, upper_bound, ready_for_display, and time_series {frequency, start_date, end_date, values[], lower_bounds[], upper_bounds[]} (daily, arrays aligned by index)",
"population": "array of {grading_company, grade_number, count} population-report rows across all graders and grades",
"sales_count": "integer number of sales returned"
},
"sample": {
"data": {
"cert": {
"autograph": null,
"qualifier": null,
"subgrades": {
"edges": null,
"corners": null,
"surfaces": null,
"centering": null
},
"cert_number": "29023160",
"grade_number": "10.0",
"grading_company": "PSA"
},
"asset": {
"name": "2004 Pokemon Ex Team Rocket Returns Holo Torchic Gold Star #108",
"year": 2004,
"brand": "Pokemon Ex Team Rocket Returns",
"images": [
{
"url": "https://alt-images.b-cdn.net/external/ebay/live/307160997893_0.jpg?height=auto&width=auto&quality=50",
"position": "FRONT"
}
],
"subject": "Torchic Gold Star",
"variety": "Holo",
"asset_id": "119b9e9e-9e69-4c2b-94be-dc5d9e7fb521",
"category": "POKEMON_CARDS",
"image_url": "https://alt-images.b-cdn.net/external/ebay/live/307160997893_0.jpg?height=auto&width=auto&quality=50",
"print_run": null,
"card_number": "108",
"image_source": "listing",
"image_listing_id": "54163806-f707-4fa0-b816-ec1b1a3f38f8"
},
"sales": [
{
"id": "89dd2b8f-b14c-4ca8-8b8f-f23140f9cc2b",
"date": "2024-12-07",
"label": "",
"price": 35000,
"autograph": null,
"listing_url": "https://comics.ha.com/itm/memorabilia/trading-cards/pokemon-gold-star-torchic-108-ex-team-rocket-returns-psa-trading-card-game-gem-mint-10-the-pokemon-company-2004-ultra-rare-holo/p/7386-17001.s?type=DA-DMC-AltPlatform-TradingCardGames-7386-12062024",
"auction_type": "AUCTION",
"grade_number": "10.0",
"auction_house": "Heritage Auctions",
"grading_company": "PSA",
"subject_to_change": false
}
],
"alt_value": {
"current": 1339616.632987389,
"lower_bound": 1024565.4268467114,
"time_series": {
"values": [
252076.9874290705,
252026.0814045636,
1339616.632987389
],
"end_date": "2026-09-08",
"frequency": "D",
"start_date": "2025-09-03",
"lower_bounds": [
192793.4902148457,
192754.5562755054,
1024565.4268467114
],
"upper_bounds": [
329590.0059722181,
329523.44647746865,
1751545.2662692287
]
},
"upper_bound": 1751545.2662692287,
"confidence_metric": 50,
"ready_for_display": true
},
"population": [
{
"count": 203,
"grade_number": "6.0",
"grading_company": "PSA"
},
{
"count": 19,
"grade_number": "10.0",
"grading_company": "PSA"
},
{
"count": 6,
"grade_number": "3.0",
"grading_company": "CGC"
}
],
"sales_count": 5
},
"status": "success"
}
}About the Alt API
Card Lookup by Certification Number
lookup_cert accepts a single cert number (1–32 alphanumeric characters) and returns one consolidated response: a cert object with the grade, grading company, autograph flag, qualifier, and subgrades; an asset object with the card's year, brand, subject, variety, card number, and print run alongside imagery; an alt_value object with the current USD estimate, confidence_metric, lower_bound, upper_bound, and a time_series daily history array; a population array of {grading_company, grade_number, count} rows; and a sales array of recorded transactions for that grade and grading company, each with a date, USD price, and sale ID. lookup_certs is the batch form and accepts up to 20 comma-separated cert numbers in one call, returning per-entry status values of found, not_found, or error alongside the same data shape, plus summary counts (found_count, not_found_count, error_count).
Asset-Level Data and Alt Value Ladders
lookup_asset takes an asset_id UUID (as returned by any lookup endpoint's asset.asset_id field) and returns the card's full record. Its key addition over lookup_cert is the alt_values array: one entry per grading-company/grade-number pair present in the population report, sorted by company then grade descending. This gives a complete valuation ladder across every grade and grader for the card. When include_time_series is set to true, each ladder entry also carries its own daily time_series object; omitting it keeps responses compact.
Active Marketplace Listings
list_card_listings returns live Alt marketplace listings for one card, accepting either an asset_id or a cert_number (which is resolved to the card automatically). The listings array includes listing_id, listing_type (AUCTION or FIXED_PRICE), item_name, and a USD price field. The optional listing_type filter restricts results to one kind. Results are paginated via page and per_page (up to 250 per page), with total and has_more for navigation. list_card_listings_bulk mirrors this for up to 20 cards at once, accepting comma-separated cert_numbers and/or asset_ids and returning per-identifier status and listing arrays in the same pattern as the batch cert lookup.
The Alt API is a managed, monitored endpoint for alt.xyz — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when alt.xyz 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 alt.xyz 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?+
- Build a portfolio tracker that pulls Alt Value confidence bounds and daily time series for a set of graded cards using their cert numbers.
- Compare population counts across PSA, BGS, and CGC for a given card to assess grade scarcity before purchasing.
- Scan live Alt marketplace auctions and fixed-price listings for a watchlist of asset IDs to surface underpriced cards.
- Audit recent sale prices at a specific grade and grading company to validate or challenge a dealer's asking price.
- Generate Alt Value ladders across all grades for a card using
lookup_assetto model upgrade economics. - Batch-resolve up to 20 cert numbers from a collection spreadsheet in one
lookup_certscall to enrich inventory records with card identity and current valuations. - Filter
list_card_listings_bulktoAUCTIONtype only across multiple cards to monitor time-sensitive buying opportunities.
| 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 alt.xyz have an official developer API?+
What does `lookup_cert` return beyond the Alt Value estimate?+
current estimate, the response includes confidence_metric, lower_bound, upper_bound, and a time_series daily history array — all under the alt_value object. It also returns the population array across all graders and grades, the sales array of recorded transactions for that specific grade and grading company, and the full card identity under asset.Can I retrieve historical sale prices across all grades, not just the grade tied to a cert?+
lookup_cert and lookup_certs endpoints return sales filtered to the grade and grading company of the resolved cert. lookup_asset provides Alt Value ladders across all grades but does not include a per-grade sales array. You can fork this API on Parse and revise it to add an endpoint that returns sales history filtered by grade.How does pagination work for marketplace listings?+
list_card_listings uses page (1-based) and per_page (1–250) parameters. The response returns total (count of all matching live listings), has_more (boolean), and the current page and per_page values so you can walk through results. The bulk endpoint list_card_listings_bulk accepts a per_page parameter but does not expose per-card pagination — it returns up to 250 listings per identifier in a single result entry.Are sold or completed listings available, or only active ones?+
list_card_listings and list_card_listings_bulk) return only currently active Alt marketplace listings. Completed or expired listings are not exposed through these endpoints. Historical transaction data for a specific cert's grade is available via the sales array in lookup_cert and lookup_certs. You can fork this API on Parse and revise it to add an endpoint targeting completed listing records.