Sports Card Sales API
Every card that sold — across eBay, Goldin, Heritage, Fanatics-Vault, REA, Alt, and Pristine — available as clean, queryable JSON. Individual sale records with true sold prices, not averages or estimates.
What is the Sports Card Sales API?
The Card API gives developers programmatic access to individual transaction records for trading card sales across every major marketplace. Instead of scraping eBay completed listings yourself or manually pulling auction results from Goldin and Heritage, you make a single HTTP request and get structured JSON with the actual sale price, date, platform, and listing details.
This is raw, transaction-level data — not aggregated averages, not 90-day rolling estimates. If a Mike Trout 2011 Topps Update PSA 10 sold for $2,450 via Best Offer on eBay at 11:42 PM, that record is in the database within hours, with the true accepted offer price, not the asking price.
The API covers 38+ card categories — baseball, basketball, football, hockey, soccer, Pokemon, sports memorabilia, and more — with a unified JSON schema across all platforms and listing types (auction, fixed price, and Best Offer).
200,000+
New records / day
7
Platforms unified
38+
Card categories
Platform coverage
All seven platforms are included on every tier, including the free tier.
| Platform | Type | Listing types | True Best Offer |
|---|---|---|---|
| eBay | General marketplace | Auction · Fixed Price · Best Offer | Yes — accepted price |
| Goldin | Premium auction house | Auction | N/A |
| Heritage | Premium auction house | Auction | N/A |
| Fanatics-Vault | Authenticated marketplace | Fixed Price · Best Offer | Yes — accepted price |
| REA | Specialty auction house | Auction | N/A |
| Alt | Modern marketplace | Fixed Price · Best Offer | Yes — accepted price |
| Pristine | Auction house | Auction | N/A |
What you get
Every feature is available on every tier — the difference between plans is volume and lookback depth, not feature gating.
Individual sale records
Every row is one transaction. Not a daily average, not a 30-day median — the actual sale, with price, date, title, platform, and listing type. Build any aggregation you need on top of the raw data.
True Best Offer prices
eBay Best Offer sales are notoriously opaque. We capture the actual accepted offer price, not the asking price — critical for accurate comparable analysis. Every record is tagged with listing_type.
Full-text search
Query by any combination of player name, set name, year, grade, parallel, or variation. The search spans all platforms simultaneously. No per-platform integration needed.
Rich filter params
Filter by platform (eBay, Goldin, Heritage, etc.), date range (date_from + date_to), price range (min_price + max_price), and listing type (Auction, FixedPrice, BestOffer).
200,000+ records daily
New completed listings are ingested continuously. eBay alone contributes over 195,000 records per day across all categories. Goldin and Heritage add thousands more per auction event.
Unified JSON schema
Every platform returns the same JSON shape: id, title, platform, listing_type, sale_price, sale_date, listing_url, category. One integration covers all seven sources.
CSV export
Download any filtered query as a CSV file for spreadsheet analysis, bulk loading into a database, or feeding a machine learning model. Export limits vary by tier.
MCP server for AI agents
7 AI-native tools for use with Claude, Cursor, and any MCP-compatible client. Pull card sales data directly into your AI workflow using natural language queries.
Code examples
Search for recent card sales across all platforms in your language of choice.
Python
import requests
resp = requests.get(
"https://thecardapi.com/api/v1/market/sales",
params={"q": "Mike Trout PSA 10", "date_from": "2025-04-01", "limit": 50},
headers={"x-market-api-key": "YOUR_API_KEY"},
)
for sale in resp.json()["data"]:
print(f"{sale['sale_date']} ${sale['sale_price']:,.0f} [{sale['listing_type']}] {sale['platform']}")JavaScript / Node.js
const params = new URLSearchParams({ q: "Mike Trout PSA 10", date_from: "2025-04-01", limit: "50" });
const res = await fetch(`https://thecardapi.com/api/v1/market/sales?${params}`, {
headers: { "x-market-api-key": "YOUR_API_KEY" },
});
const { data } = await res.json();
data.forEach(s => console.log(`${s.sale_date} $${s.sale_price} [${s.listing_type}] ${s.platform}`));curl
curl "https://thecardapi.com/api/v1/market/sales?q=Mike+Trout+PSA+10&date_from=2025-04-01&limit=50" \
-H "x-market-api-key: YOUR_API_KEY"Response
{
"data": [
{
"id": "ebay_3941827461",
"title": "2011 Topps Update Mike Trout RC #US175 PSA 10",
"platform": "eBay",
"listing_type": "BestOffer",
"sale_price": 2450.00,
"sale_date": "2025-04-12",
"listing_url": "https://www.ebay.com/itm/...",
"category": "Baseball Cards"
},
{
"id": "goldin_18841",
"title": "2011 Topps Update Mike Trout Rookie #US175 BGS 9.5",
"platform": "Goldin",
"listing_type": "Auction",
"sale_price": 3100.00,
"sale_date": "2025-04-08",
"listing_url": "https://goldin.co/...",
"category": "Baseball Cards"
}
],
"total": 184,
"page": 1,
"per_page": 50
}How The Card API compares
Compared against DIY scraping, price guide websites, and eBay's native API.
| The Card API | DIY scraping | Price guide sites | eBay Browse API | |
|---|---|---|---|---|
| Individual transactions | Yes | Partial | No | Yes (eBay only) |
| True Best Offer prices | Yes | No | No | No |
| Multi-platform coverage | 7 platforms | 1 at a time | Varies | eBay only |
| 200K+ records / day | Yes | Manual effort | Aggregated | Yes (eBay only) |
| Structured JSON API | Yes | Build it yourself | No | Yes |
| Full-text + price filters | Yes | No | Limited | Limited |
| CSV export | Yes | Build it yourself | Often | No |
| MCP / AI agent support | Yes (7 tools) | No | No | No |
| Free tier | 10,000/day | Free (build it) | Often free | Rate-limited |
| Integration time | < 5 minutes | Days to weeks | N/A | Hours |
Common use cases
What developers are building with The Card API.
Comp lookup tools
Build a comparable sales tool that shows recent transactions for any card across all platforms. The q parameter handles natural search queries like '2020 Bowman Chrome Wander Franco auto PSA 10'.
Portfolio valuation
Pull 7–30 days of comps for each card in a collection, calculate market price, and track value changes over time. Combine with the /daily endpoint for aggregate market stats.
AI agent integrations
Use the MCP server to give Claude or GPT access to live card market data. Agents can answer 'what did a Luka rookie sell for this week?' in natural language.
Market analytics dashboards
Build analytics showing price trends, volume by platform, auction vs. fixed price price divergence, and category-level market health.
Auction platform integrations
Embed sold-price comps directly into your auction listing creation flow to help sellers price accurately relative to recent market activity.
Machine learning models
Download bulk CSV exports to train regression models predicting card values from grade, player stats, set year, or condition. Historical data available on Pro and Enterprise tiers.
Pricing
Start free — upgrade only when your usage demands it.
Free
$0
- ✓10,000 sales/day
- ✓7-day lookback
- ✓CSV export (10K rows)
- ✓MCP server access
- ✓Email support
Starter
$9/mo
- ✓50,000 sales/day
- ✓7-day lookback
- ✓CSV export (50K rows)
- ✓Everything in Free
Pro
$49/mo
- ✓500,000 sales/day
- ✓30-day lookback
- ✓Unlimited CSV export
- ✓Webhook notifications
- ✓Everything in Starter
Enterprise
Custom
- ✓Unlimited sales/day
- ✓Full history
- ✓S3 bulk delivery (daily)
- ✓Cursor pagination
- ✓Dedicated support + SLA
Starter and Pro plans include a 7-day free trial. Cancel anytime.
Frequently asked questions
- What is the Sports Card Sales API?
- The Card API is a REST API that provides programmatic access to individual trading card sale records from eBay, Goldin, Heritage, Fanatics-Vault, REA, Alt, and Pristine. Each record is a single completed transaction — one card, one sale, one price — with the true sold price, listing type, platform, and date. It is not a price guide or average estimate; it is raw market transaction data.
- How is this different from eBay's own API?
- eBay's Browse API lets you search active listings and completed items, but it does not expose the true accepted price on Best Offer sales — it shows the listing price. The Card API captures the actual negotiated price on Best Offer transactions. It also aggregates data from 6 other major platforms (Goldin, Heritage, REA, Fanatics-Vault, Alt, Pristine) in a single unified schema, which eBay's API cannot provide.
- How many card sales are available per day on the free tier?
- The free tier allows 10,000 sale records per day with a 7-day lookback window. No credit card is required. This is sufficient for most hobby projects, comp tools, and AI agent use cases.
- Which card categories are covered?
- The API covers 38+ card categories including Baseball Cards, Basketball Cards, Football Cards, Hockey Cards, Soccer Cards, Pokemon, Magic: The Gathering, non-sport cards, sports memorabilia, golf, tennis, boxing, UFC/MMA, racing, and wrestling. All categories are available on all tiers.
- Does the API include Best Offer prices from eBay?
- Yes. The Card API captures the true accepted offer price on eBay Best Offer sales. This is a critical differentiator — most price guides and data sources report the listing price for Best Offer transactions, which can overstate actual sold prices by 15–40%. The listing_type field on every record identifies whether the sale was Auction, FixedPrice, or BestOffer.
- Can I access historical card sales data?
- Yes. The free tier includes a 7-day lookback window. The Pro tier ($49/month) extends this to 30 days, which is useful for trend analysis and price modeling. The Enterprise tier provides access to the full historical database from the API's inception.
- Is there an MCP server for AI agents?
- Yes. The Card API includes an MCP (Model Context Protocol) server at https://thecardapi.com/api/mcp with 7 AI-native tools. Any MCP-compatible client — Claude Desktop, Cursor, Claude Code — can query card market data directly using natural language. Configure it with your API key as a Bearer token.
Related resources
Start pulling card sales data
Free tier: 10,000 sales/day, 7-day lookback, no credit card required. First request in under 2 minutes.
Get Free API Key →