Card Ladder APIcardladder.com ↗
Access Card Ladder's trading card price guide via API. Search cards, retrieve CL values, confidence scores, sales history, and market indices across 9 endpoints.
What is the Card Ladder API?
The Card Ladder API provides structured access to sports and trading card market data across 9 endpoints. Use search_cards to query by player, set, year, or variation and receive current CL values, market values, and relevance-ranked results. From there, get_card_value returns a 1–5 confidence score, price movement, period summaries, and population count, while get_card_sales and get_card_sales_detail expose aggregated and per-transaction sales history with platform and seller details.
curl -X GET 'https://api.parse.bot/scraper/97d5f4bc-6c65-4546-8f71-76149a5533cb/search_cards?page=0&sort=score&limit=5&query=Michael+Jordan&category=Basketball' \ -H 'X-API-Key: $PARSE_API_KEY'
Full-text search across Card Ladder's trading card database. Returns cards matching the query with current values, market data, and price trends. Results are ranked by relevance score by default. Each card includes its unique ID for use with get_card_value and get_card_sales.
| Param | Type | Description |
|---|---|---|
| page | integer | Zero-based page index for pagination. |
| sort | string | Sort order for results. |
| limit | integer | Maximum number of results per page. |
| queryrequired | string | Search query for card name, player, set, year, or any combination (e.g. 'Michael Jordan', '1986 Fleer', 'Pikachu PSA 10'). |
| category | string | Filter results by card category. Omitted returns all categories. |
{
"type": "object",
"fields": {
"page": "integer current page index",
"cards": "array of card objects with id, label, slug, player, year, set, number, variation, condition, category, current_value, market_value, num_sales, pop, last_sold_date, and percent change metrics",
"limit": "integer page size",
"total_hits": "integer total number of matching cards"
},
"sample": {
"data": {
"page": 0,
"cards": [
{
"id": "JvbEFar2vAm92D23yFXU",
"pop": 131,
"set": "Star",
"slug": "1984-star-michael-jordan-base-101-psa-6",
"year": "1984",
"label": "1984 Star Michael Jordan Base #101 PSA 6",
"number": "101",
"player": "Michael Jordan",
"category": "Basketball",
"condition": "PSA 6",
"num_sales": 95,
"variation": "Base",
"market_value": 102023,
"current_value": 102023,
"last_sold_date": "2026-07-19T10:00:00.000Z",
"annual_percent_change": 2.52,
"monthly_percent_change": 0.045,
"quarterly_percent_change": 0.64
}
],
"limit": 5,
"total_hits": 1847
},
"status": "success"
}
}About the Card Ladder API
Card Search and Identification
search_cards accepts free-text queries — player names, set names, years, variations — and returns paginated results with each card's id, label, player, year, set, number, variation, condition, and category, plus current_value and market_value. The id field is the key passed to all per-card endpoints. You can filter by category and control pagination via page and limit. For graded cards, search_by_cert resolves a specific slab by cert_number and grading_company, returning current marketplace listings and up to 10 recent sales alongside full identification fields.
Pricing and Valuation
get_card_value returns Card Ladder's computed cl_value alongside market_value, the gap between them, a confidence integer (1–5), and price_movement. It also surfaces pop (population count from the grading company), newest_sale with price and date, and period summaries for 1-month and 1-year windows. get_cert_values_bulk provides a lean version for up to 200 cert/grader pairs at once, returning only last_sale_price, CL value, and market value per cert — useful for portfolio snapshots without full card metadata.
Sales History
Two endpoints cover transaction history at different granularities. get_card_sales returns daily-aggregated records — each entry has a date, a price, and a count of transactions on that date, sorted newest first. get_card_sales_detail goes per-transaction: each record includes an ISO timestamp, price, platform, listingType, seller, feedback score, listing title, sale URL, and image URLs. This endpoint paginates with page and limit (capped at 50) and exposes a has_more flag.
Market Indices
list_indices enumerates all available Card Ladder market indices — covering categories like Basketball, Pokemon, and Baseball as well as segments like Modern and Vintage — with daily_index, total_cards, monthly_percent_change, and quarterly_percent_change per index. get_index_history returns the full time series for a given index_id as an array of {date, value} pairs, typically from 2004 to present. The data_points and total_cards fields confirm coverage scope per index.
The Card Ladder API is a managed, monitored endpoint for cardladder.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cardladder.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 cardladder.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?+
- Build a portfolio tracker that uses
search_by_certs_bulkto resolve up to 200 graded slabs and refresh CL values in a single call. - Display historical price charts for specific cards by pulling daily-aggregated records from
get_card_sales. - Monitor market segment trends by fetching index time series from
get_index_historyfor categories like Bowman 100 or Pokemon. - Compare CL value vs. market value using the
gapandconfidencefields fromget_card_valueto flag mispriced cards. - Audit recent transactions on a specific graded card with
get_card_sales_detailto see platform, seller feedback, and listing type per sale. - Filter card search results by
categoryand sort by value to identify top cards within a specific sport or product line. - Resolve an unknown slab by
cert_numberandgrading_companyviasearch_by_certto get identification and current marketplace listings.
| 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 Card Ladder have an official developer API?+
What does the `confidence` field in `get_card_value` actually represent?+
Does `get_card_sales_detail` cover sales from all marketplaces?+
platform field identifying the selling marketplace for that transaction, so coverage depends on which platforms Card Ladder tracks. The endpoint returns up to 50 records per page and exposes total_sales and a has_more flag for full pagination. You can fork the API on Parse and revise it to add filtering by platform if you need to isolate specific marketplaces.Can I retrieve raw card images or high-resolution scan data through these endpoints?+
get_card_sales_detail includes image URLs attached to individual sale listings, but there is no dedicated endpoint for card images or scans independent of a sale record. You can fork the API on Parse and revise it to add an image-focused endpoint if that data is available on cardladder.com.What is the pagination behavior for `search_cards`, and are there any quirks to be aware of?+
search_cards uses a zero-based page index. The response includes total_hits, page, and limit so you can calculate total pages. Results default to relevance-ranked order, but the sort parameter lets you override this. Very broad queries may return large total_hits values; use category filtering and specific query strings to narrow results before paginating through them.