Sports cards • Pokemon • MTG • eBay • REST + MCP

Trading Card API

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

200K

Pro daily sales-row allowance

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
platformstringCurrently: eBay
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

  • ✓5,000 sales rows returned per UTC day
  • ✓3-day lookback
  • ✓Cursor pagination
  • ✓MCP server access

Starter

$9/mo

  • ✓10,000 sales rows returned per UTC day
  • ✓14-day lookback
  • ✓CSV export
  • ✓Priority support

Pro

$199/mo

  • ✓200,000 sales rows returned per UTC day
  • ✓90-day lookback
  • ✓Catalog API — 2,000 records/day
  • ✓Add-ons available

Enterprise

Custom

  • ✓Custom volume
  • ✓Negotiated history
  • ✓Bulk delivery options
  • ✓Dedicated support

Frequently asked questions

What is the trading card API?

A REST API providing individual sale records for trading cards from eBay. 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: 3-day lookback. Pro: 90 days. Enterprise: full available 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 through five sold-price and market-analysis tools.

How does the API handle eBay Best Offer prices?

Supported eBay Best Offer records include the accepted price rather than the listing price. The listing_type field identifies those records for separate analysis.

Start querying card sales data

Free tier: 5,000 sales rows returned per UTC day, 3-day lookback, MCP server access — no credit card required.