Trading-card price and sales tracking across multiple auction houses
Use Alt endpoints to turn trading-card price and sales tracking across multiple auction houses into repeatable API requests with documented inputs and JSON responses.
Alt (alt.xyz) is a trading-card investment marketplace that aggregates live listings and completed sales across itself and several source auction houses -- eBay, Fanatics Collect, Pristine Auction, Goldin, CardHobby, and Memory Lane. Crawlora reads its public data layer directly: universal search and live-auction search, a completed-sales archive, one card design's full population report across every grading company, and Alt's own category-level price-trend index and biggest movers. Credential-free.
Extract Alt's aggregated trading-card marketplace search, completed sales archive, card-design population reports, and price-trend index as structured JSON.
Endpoint families
6
Documented params
39
Examples
9
Live catalog snapshot
Active endpoints
9
Methods
GET
Required params
12
Schema refs
9
{
"platform": "Alt",
"endpoint": "alt-search",
"method": "GET",
"path": "/alt/search",
"auth": "apiKey"
}Use cases
Extract Alt's aggregated trading-card marketplace search, completed sales archive, card-design population reports, and price-trend index as structured JSON.
Use Alt endpoints to turn trading-card price and sales tracking across multiple auction houses into repeatable API requests with documented inputs and JSON responses.
Use Alt endpoints to turn card-design population and rarity research into repeatable API requests with documented inputs and JSON responses.
Use Alt endpoints to turn card-market trend and mover monitoring into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Alt endpoint catalog — 9 endpoints, 39 documented request parameters, and 9 published response schemas — the same catalog Docs and Playground run against.
9 documented Alt endpoints, grouped into 9 request families — Asset, Auctions and Card Search, plus 6 more.
39 request parameters are documented across those Alt endpoints, 12 of them required — the full input contract is public before you write any integration code.
9 of the 9 Alt endpoints ship a recorded example response, and 9 carry a documented response schema — you can code against the real JSON before the first request.
Alt endpoints document their error responses (400, 404, 429, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
9 hosted MCP tools back the Alt endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/alt/asset
/alt/auctions
/alt/card-search
/alt/categories
/alt/listing
/alt/market-trends
Endpoint catalog
/alt/searchSearches Alt's universal aggregator index -- live auction and fixed-price listings from Alt itself and every other source auction house its search carries (eBay, Fanatics Collect, Pristine Auction, Goldin, CardHobby, Memory Lane) -- by free-text query, category, source auction house, grading company, and listing type, in a caller-selected sort order. Only currently-live listings are returned; see alt-sold-listings for completed sales. Credential-free public data from Alt's own search backend. See alt-categories for the accepted category/auction_house/grading_company/listing_type/sort values.
Response notes
- `results[].auction_house` tells you the listing's actual source — a result is not necessarily an Alt listing. - `alt_value` (Alt's own estimated market value) is only populated for Alt's own native listings. - `bid_count`/`watch_count` reflect Alt's own aggregator tracking and may be `0` for external listings Alt doesn't track engagement on. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "michael jordan", "page": 1, "per_page": 24, "total": 40845, "results": [ { "id": "463ed059-bda6-4e9b-8c16-bd15cd79d9b8", "asset_id": "388b5eac-8130-4f27-93ab-f5be29cdac0f", "listing_id": "463ed059-bda6-4e9b-8c16-bd15cd79d9b8", "name": "2012 Upper Deck Jordan Unc Master Collection Sketch Autograph Michael Jordan #MJM7 /30", "subject": "Michael Jordan", "year": 2012, "brand": "Upper Deck Jordan Unc Master Collection", "variety": "Sketch Autograph", "card_number": "MJM7", "category": "BASKETBALL_CARDS", "auction_house": "Alt", "auction_name": "Sep 04 - Sep 17, 2026", "listing_type": "AUCTION", "grading_company": "BGS", "grade": "8.5", "serial": 3, "print_run": 30, "pop": 2, "price": 541.17, "alt_value": 3765.74, "bid_count": 6, "watch_count": 20, "expires_at": "2026-09-18 01:05:00+00:00", "images": [ {"position": "FRONT", "url": "https://onlyalt-images.s3.us-east-2.amazonaws.com/image/public/front.png"} ] } ] } } ```
MCP tool alt_search
/alt/listingOne listing's full public detail -- title, description, price/bid state, grading info, and images -- normalized across Alt's own native listings and its aggregated external listings. id and listing_type come from a prior alt-search/alt-auctions result. Not every response field applies to every listing_type -- see the field-level notes in this endpoint's markdown doc.
Response notes
- Not every field applies to every `listing_type`: `state` and `alt_value` are only present for Alt's own native listings (`AUCTION`/ `FIXED_PRICE`); `current_bid`, `bid_count`, `auction_ends_at`, and `external_url` are only present for external listings (`EXTERNAL_AUCTION`/`EXTERNAL_FIXED_PRICE`). - `external_url` is the click-through link back to the original listing on its source site (e.g. eBay). - `badges` (e.g. `1/1 Rare`, `Pop 1`) are only present for Alt's own native listings. - An `id`/`listing_type` combination Alt cannot resolve returns `404`. Example response (native Alt listing): ```json { "code": 200, "msg": "OK", "data": { "id": "58e5a6a5-a7ad-417f-8cda-ceffb226928c", "listing_type": "AUCTION", "auction_house": "Alt", "name": "2007 Exquisite Collection Dual Logoman Autographs Kobe Bryant/Lebron James #DL-BJ 1/1 PSA 8", "subject": "Kobe Bryant/Lebron James", "year": 2007, "brand": "Exquisite Collection", "variety": "Dual Logoman Autographs", "card_number": "DL-BJ", "category": "BASKETBALL_CARDS", "description": "The 2007-08 Upper Deck Exquisite Collection Dual Logoman Autographs #DL-BJ pairs Kobe Bryant and LeBron James on a singular 1/1 issue.", "grading_company": "PSA", "grade": "8.0", "cert_number": "175673254", "state": "ACTIVE", "list_price": 1772280, "alt_value": 8460808.16, "expires_at": "2026-09-25T01:00:00+00:00", "badges": ["1/1 Rare", "Ghost Card", "Pop 1"], "images": [ {"position": "FRONT", "url": "https://onlyalt-images.s3.us-east-2.amazonaws.com/image/public/front.png"}, {"position": "BACK", "url": "https://onlyalt-images.s3.us-east-2.amazonaws.com/image/public/back.png"} ] } } ```
MCP tool alt_listing
/alt/sold-listingsSearches Alt's global archive of completed card sales, aggregated across every source auction house its search carries -- the "market data" side of Alt's card-investment-marketplace positioning. This is a separate index from alt-search/alt-auctions, scoped to a rolling recent time window, not a filtered view of live listings. Pass auction_house=Alt to see only Alt's own completed auctions. Credential-free public data from Alt's own search backend. See alt-categories for the accepted category/auction_house/grading_company values.
Response notes
- There is no `sort` param — only Alt's own default relevance/recency ordering has been verified against this index. - `url` is the click-through link back to the original sold listing on its source site (e.g. an eBay item URL) when the source auction house provides one. - `auction_type` is a source-specific sub-classification (e.g. eBay's `BEST_OFFER`/`BUY_IT_NOW`/`AUCTION`), informational only — it is not a validated filter enum. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "michael jordan", "page": 1, "per_page": 24, "total": 101163, "results": [ { "id": "ced1abdd-989f-4cc8-b27d-2838b397d968", "asset_id": "c373aa9a-e7eb-11ea-af75-02d4568f26ba", "name": "1998 SP Top Prospects Phi Beta Jordan Phi Beta Jordan Michael Jordan #J22", "subject": "Michael Jordan", "year": 1998, "brand": "SP Top Prospects Phi Beta Jordan", "card_number": "J22", "category": "BASKETBALL_CARDS", "auction_house": "eBay", "auction_type": "BEST_OFFER", "grading_company": "PSA", "grade": "8", "pop": 16, "price": 36, "sold_date": "2026-09-15", "url": "https://www.ebay.com/itm/366655056141", "images": [ {"position": "FRONT", "url": "https://alt-images.b-cdn.net/external/ebay/sports/366655056141.jpg"} ] } ] } } ```
MCP tool alt_sold_listings
/alt/auctionsSearches Alt's own currently live auctions -- the same pool shown on alt.xyz/browse's "Auctions" tab filtered to the Alt source. Unlike alt-search, this never returns another source auction house's listings or Alt's own fixed-price items: it always uses a search key scoped server-side to Alt's own live auction pool. Credential-free public data from Alt's own search backend. See alt-categories for the accepted category/grading_company/sort values.
Response notes
- Every result's `auction_house` is always `Alt` and `listing_type` is always `AUCTION` — there is no `auction_house`/`listing_type` filter param here since both are already fixed. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "*", "page": 1, "per_page": 24, "total": 653, "results": [ { "id": "58e5a6a5-a7ad-417f-8cda-ceffb226928c", "name": "2007 Exquisite Collection Dual Logoman Autographs Kobe Bryant/Lebron James #DL-BJ /1", "subject": "Kobe Bryant/Lebron James", "year": 2007, "category": "BASKETBALL_CARDS", "auction_house": "Alt", "listing_type": "AUCTION", "grading_company": "PSA", "grade": "8.0", "price": 1772280, "alt_value": 8460808.16, "bid_count": 18, "watch_count": 849, "expires_at": "2026-09-25T01:00:00+00:00", "images": [ {"position": "FRONT", "url": "https://onlyalt-images.s3.us-east-2.amazonaws.com/image/public/front.png"} ] } ] } } ```
MCP tool alt_auctions
/alt/card-searchSearches Alt's reference card-design catalog -- a canonical catalog of card designs (one entry per year/brand/subject/card-number/variety combination), separate from live listings or sales. Useful for finding a card design's asset_id (to feed into alt-asset for a population report and recent sales) without already having a live listing or sale that references it. Credential-free public data from Alt's own search backend.
Response notes
- There is no `category` filter — Alt's own reference-catalog index does not expose `category` as a facet-able field, so this package cannot live-verify a category value against it. `category` is still returned per result, informationally. - `category` values here are not limited to `alt-categories`' sports-card list — the catalog also includes non-sport card designs (e.g. `NON-SPORT_CARDS`). Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "michael jordan", "page": 1, "per_page": 24, "total": 18147, "results": [ { "asset_id": "6059088b-7daa-408c-923d-fdf1a9d94cbe", "name": "1993 High School Heroes II Michael Jordan #12", "subject": "Michael Jordan", "year": 1993, "brand": "High School Heroes II", "card_number": "12", "category": "NON-SPORT_CARDS", "pop": 16, "external_transaction_count": 12 } ] } } ```
MCP tool alt_card_search
/alt/assetReturns one card design's identity, full population report (across every grading company and grade Alt tracks), and a recent raw sales feed -- the "is this card actually rare, and what does it sell for" data for a specific card design, independent of any single listing. asset_id comes from a prior alt-search/alt-sold-listings/alt-card-search result's asset_id field. recent_sales has no per-transaction grade breakdown -- Alt's own API does not expose one; see alt-sold-listings for per-grade sold prices on specific listings. Credential-free public data from Alt's own GraphQL API.
Response notes
- `population[]` covers every grading company and grade Alt tracks population data for, not just the grade of any one listing. - `recent_sales[]` has no per-transaction grade breakdown — Alt's own API does not expose one, so this is a raw sales feed for the card design as a whole. See `alt-sold-listings` for per-grade sold prices on specific listings. - An `asset_id` Alt cannot resolve returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "asset_id": "c3156728-e7eb-11ea-a6f0-02d4568f26ba", "name": "1986 Fleer Michael Jordan #57", "subject": "Michael Jordan", "year": 1986, "brand": "Fleer", "card_number": "57", "category": "BASKETBALL_CARDS", "population": [ {"grading_company": "PSA", "grade": "8.0", "population": 9424}, {"grading_company": "BGS", "grade": "9.0", "population": 1948}, {"grading_company": "CGC", "grade": "9.5", "population": 2} ], "recent_sales": [ {"date": "2026-09-15", "price": 8800.0}, {"date": "2026-09-14", "price": 18500.0} ] } } ```
MCP tool alt_asset
/alt/market-trendsReturns Alt's own category-level price-trend index -- the same data alt.xyz's "Market Trends" page shows: a weekly/monthly/90-day change and a current index value per card category, built from Alt's own sold/valuation data. Credential-free public data from Alt's own GraphQL API.
Response notes
- `updated_at`/`version` reflect Alt's own update schedule for this index, not a per-request timestamp. - An unrecognized `category` value returns a typed invalid-param error listing the categories actually present in the current live response. Example response: ```json { "code": 200, "msg": "OK", "data": { "updated_at": "2026-09-16T00:00:00+00:00", "version": 42, "categories": [ { "category": "BASKETBALL_CARDS", "start_date": "2026-06-07", "end_date": "2026-09-07", "current_index_value": 10208.990057733714, "weekly_change": 0.015332941318226823, "weekly_index_change": 154.16996642535923, "monthly_change": 0.0804380022254576, "ninety_day_change": 0.19604146883360918, "ninety_day_index_change": 1673.3411494315496 } ] } } ```
MCP tool alt_market_trends
/alt/top-moversReturns Alt's biggest price-index movers -- either a cross-subject leaderboard (optionally scoped to one category) or, when subject is set, that one player/character's own trend broken out per category it appears in. category is not strictly validated against alt-categories' list -- this trend index's own category set is broader (e.g. it includes MULTI-SPORT_CARDS). Credential-free public data from Alt's own GraphQL API.
Response notes
- `category` here is **not** the same closed enum as `alt-categories`' — this trend index's own category set is broader (e.g. it includes `MULTI-SPORT_CARDS`, which never appears in live-listing search results), so this endpoint does not validate `category` against `alt-categories`' list. - With `subject` set, results can span multiple categories for the same player (e.g. Michael Jordan has separate basketball and baseball card trend entries). Example response (leaderboard): ```json { "code": 200, "msg": "OK", "data": { "updated_at": "2026-09-09T15:01:57.741946+00:00", "version": "ff9b83e6-672b-4a98-8346-f16c85a6f210", "subjects": [ { "subject": "Allen Iverson", "category": "BASKETBALL_CARDS", "start_date": "2025-09-07", "end_date": "2026-09-07", "current_index_value": 19234.54015194957, "weekly_change": 0.09850479760332465, "monthly_change": 0.34467981882250376, "ninety_day_change": 0.5404539004760289 } ] } } ```
MCP tool alt_top_movers
/alt/categoriesReturns every accepted value for alt-search/alt-auctions/alt-sold-listings' category, auction_house, grading_company, and listing_type params, plus the sort enum. category/auction_house/grading_company/listing_type are read live from Alt's own current search index via a facets-only query on every call, not a fixed taxonomy -- so this endpoint self-corrects if Alt's aggregator adds a new source auction house, grading company, or category. Credential-free public data from Alt's own search backend.
MCP tool alt_categories
Related APIs
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
How to scrape Alt
Alt's own data layer separates live listings, completed sales, and reference card-design data into distinct indexes. Crawlora's Alt endpoints return each one as normalized JSON -- no account.
Call /alt/categories for every accepted category, auction house, grading company, and listing type value, plus the sort enum.
Send a query to /alt/search for Alt's aggregated listings across every source auction house it carries, or to /alt/auctions to scope results to Alt's own live 24/7 auctions only.
Send a query to /alt/sold-listings for Alt's global archive of completed card sales, aggregated across every source auction house.
Pass an id and listing_type from a search result to /alt/listing for full public detail, or an asset_id (found via /alt/card-search) to /alt/asset for a card design's full population report and recent sales feed.
Call /alt/market-trends for Alt's category-level price-trend index, or /alt/top-movers for its biggest price-index movers, cross-subject or scoped to one player/character.
FAQ
Call /alt/categories for search enum values, send a query to /alt/search or /alt/sold-listings, then pass a result's id and listing_type to /alt/listing for full detail -- all as structured JSON, no account.
Yes -- /alt/search aggregates live and fixed-price listings from Alt itself plus eBay, Fanatics Collect, Pristine Auction, Goldin, CardHobby, and Memory Lane; /alt/auctions scopes results to Alt's own live auctions only.
Yes -- find its asset_id with /alt/card-search, then pass it to /alt/asset for its full population report across every grading company Alt tracks, plus a recent raw sales feed.
Yes -- /alt/market-trends returns a weekly/monthly/90-day change and current index value per card category, and /alt/top-movers returns the biggest movers, either cross-subject or for one player/character.
Collecting publicly accessible listing, sales, and trend data is generally permissible if you respect Alt's terms of use, robots directives, rate limits, and applicable law.