Sports cards • Pokemon • MTG • 7 platforms • REST + MCP

Trading Card API

The REST API for trading card sales data. Individual transaction records from eBay, Goldin, Heritage, and 4 more platforms — sports cards, Pokemon, MTG, and 38+ other categories. Free tier, no credit card.

200K+

Daily transactions

7

Platforms covered

38+

Card categories

$0

To start

What is The Card API?

The Card API is a REST API (and MCP server) that provides individual trading card sale records from every major marketplace. Instead of aggregated price estimates, you get the actual transactions — with price, date, listing type, platform, and listing URL.

One GET /sales endpoint handles everything: recent sales, historical date ranges, platform filters, listing type filters, and full-text search across titles. Your application or AI agent gets consistent, normalized data regardless of which platform the sale came from.

For developers

  • Clean REST API — one endpoint
  • JSON responses with consistent schema
  • API key auth (x-market-api-key header)
  • Pagination via offset/limit
  • CSV export endpoint
  • Webhook notifications (Pro+)

For AI agents

  • MCP server with 7 tools
  • Works with Claude, Cursor, Claude Code
  • llms.txt and llms-full.txt available
  • Structured JSON responses
  • search_sales, get_market_analysis tools
  • No code required — just config + key

Quick start

Three lines to query the trading card API:

curl
curl "https://thecardapi.com/api/v1/market/sales?q=Mike+Trout+Rookie+PSA+10&limit=10" \
  -H "x-market-api-key: tca_your_key_here"
Python
import requests

sales = requests.get(
    "https://thecardapi.com/api/v1/market/sales",
    params={"q": "Mike Trout Rookie PSA 10", "limit": 10},
    headers={"x-market-api-key": "tca_your_key_here"},
).json()["data"]

for s in sales:
    print(f"{s['platform']:12} {s['listing_type']:12} ${s['sale_price']:>8,.0f}  {s['sale_date']}")
JavaScript
const BASE = "https://thecardapi.com/api/v1/market";

const { data: sales } = await fetch(
  `${BASE}/sales?q=Mike+Trout+Rookie+PSA+10&limit=10`,
  { headers: { "x-market-api-key": "tca_your_key_here" } }
).then((r) => r.json());

sales.forEach((s) =>
  console.log(s.platform, s.listing_type, s.sale_price, s.sale_date)
);

API reference — key parameters

ParameterTypeDescription
qstringFull-text search across listing titles
platformstringeBay | Goldin | Heritage | REA | Fanatics-Vault | Alt | Pristine
listing_typestringAuction | FixedPrice | BestOffer
date_fromYYYY-MM-DDStart of date window (inclusive)
date_toYYYY-MM-DDEnd of date window (inclusive). Defaults to today
price_minnumberMinimum sale price in USD
price_maxnumberMaximum sale price in USD
limitintegerRecords per page (max 500)
offsetintegerPagination offset

Base URL: https://thecardapi.com/api/v1/market/sales · Auth header: x-market-api-key: tca_...

Pricing

Free

$0

  • 10,000 sales/day
  • 7-day lookback
  • CSV export (10K rows)
  • MCP server access

Starter

$9/mo

  • 50,000 sales/day
  • 7-day lookback
  • CSV export (50K rows)
  • Priority support

Pro

$49/mo

  • 500,000 sales/day
  • 30-day lookback
  • Unlimited CSV export
  • Webhook notifications

Enterprise

Custom

  • Unlimited sales/day
  • Full history
  • S3 bulk delivery
  • Dedicated support + SLA

Frequently asked questions

What is the trading card API?

A REST API providing individual sale records for trading cards from eBay, Goldin, Heritage, REA, Fanatics Vault, Alt, and Pristine. Sports cards, Pokemon, MTG, and 38+ other categories.

How do I get an API key?

Sign up at thecardapi.com. The free tier is instant — no credit card required. Your key is passed in the x-market-api-key header on every request.

What card categories are supported?

38+ categories: Baseball, Basketball, Football, Hockey, Soccer, Pokemon TCG, Magic: The Gathering, and others. Search across all categories or filter to a specific one.

Does the API include historical price data?

Yes, with date_from and date_to parameters. Free: 7-day lookback. Pro: 30 days. Enterprise: full history.

Can I use the trading card API with AI tools?

Yes. The MCP server works with Claude Desktop, Cursor, Claude Code, and any MCP-compatible client — 7 AI-native tools, no integration code required.

How does the API handle eBay Best Offer prices?

Every eBay Best Offer transaction records the actual accepted price, not the listing price. The listing_type field is set to 'BestOffer' so you can filter or analyze these separately.

Start querying card sales data

Free tier: 10,000 sales/day, 7-day lookback, MCP server access — no credit card required.