Sports Card Investor APIsportscardinvestor.com ↗
Search sports cards, retrieve grade-level pricing, and track trending cards by price movement using the Sports Card Investor API. 3 endpoints.
What is the Sports Card Investor API?
The Sports Card Investor API provides 3 endpoints to search the sportscardinvestor.com card database, retrieve detailed pricing statistics, and surface trending cards by price movement. The get_card endpoint returns grade-level avg_sale_price data, 7/14/30-day price change percentages, rookie card flags, and variation details. The get_trending endpoint ranks up to 30 cards by price momentum across sports including basketball, baseball, football, hockey, soccer, and Pokémon.
curl -X GET 'https://api.parse.bot/scraper/1aac721a-f718-4c8f-8e19-b8d6cb6e9ebb/search_cards?query=michael+jordan' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for sports cards by player name, set, or keyword. Optionally filter by sport and year. Returns paginated results with basic card identification data. Each result includes a card_id (format: a_{numeric_id}) usable as input to get_card, and a slug path for direct reference. Page size is fixed at 20 results.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-indexed). Each page returns up to 20 results. |
| year | string | Card year filter prepended to search text (e.g. '1995', '2024'). Omitted returns all years. |
| queryrequired | string | Search query - player name, card set, or keyword (e.g. 'michael jordan', 'topps chrome'). |
| sport | string | Sport filter appended to search text (e.g. 'basketball', 'football', 'baseball'). Omitted returns all sports. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"items": "array of card search results with card_id, player, year, set, card_number, variation, image_url, slug",
"total": "integer total number of matching cards"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"set": "Skybox Premium",
"slug": "/cards/michael-jordan-basketball/1995-skybox-premium-electrified-278",
"year": "1995",
"player": "Michael Jordan",
"card_id": "a_37680",
"image_url": "https://images.production.sportscardinvestor.com/images/m_card/37680?ts=1772731668581",
"variation": "Electrified",
"card_number": "278"
}
],
"total": 10000
},
"status": "success"
}
}About the Sports Card Investor API
Search and Card Lookup
The search_cards endpoint accepts a required query string (player name, set name, or keyword) plus optional sport, year, and page filters. Results are paginated at 20 per page and include a card_id (format: a_{numeric_id}), player, year, set, card_number, variation, image_url, and a slug path. Both card_id and slug can be passed directly to get_card for full detail retrieval.
Card Detail and Pricing
The get_card endpoint returns the complete data profile for a single card. Price trend data is structured as a trend object with seven_day, fourteen_day, and thirty_day percentage change fields. The grades array breaks down pricing by grade level, each entry carrying grade_name, avg_sale_price, and price_change_pct_30d. Additional fields include is_rookie (boolean), variation, sport, and image_url.
Trending Cards
The get_trending endpoint returns up to 30 cards sorted by price movement for a given timeframe. Each result includes a popularity_score, trend_direction, price_change_pct, and a full trend object alongside standard card identifiers. Filtering by sport narrows results to a single sport category; omitting it returns trending cards across all tracked sports.
The Sports Card Investor API is a managed, monitored endpoint for sportscardinvestor.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sportscardinvestor.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 sportscardinvestor.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?+
- Monitor 30-day price change percentages across graded card tiers to identify appreciating inventory
- Build a rookie card screener using the
is_rookieflag andprice_change_pct_30dfromget_card - Track weekly price momentum with
get_trendingfiltered by sport and timeframe - Aggregate
avg_sale_priceacross grades to build a valuation model for a specific card - Pull search results by set name via
search_cardsto catalog all cards from a given release - Compare 7-day vs 30-day trend data to detect short-term spikes versus sustained appreciation
- Filter trending Pokémon cards separately from sports cards using the
sportparameter onget_trending
| 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 Sports Card Investor have an official developer API?+
What grade-level data does `get_card` return, and how granular is it?+
grades array in get_card returns one entry per tracked grade, each with grade_name, avg_sale_price, and price_change_pct_30d. This reflects aggregated sale data per grade tier rather than individual transaction records.Does the API expose individual sale transaction history for a card?+
How does pagination work in `search_cards`, and what is the per-page limit?+
search_cards endpoint is 1-indexed and returns up to 20 results per page. The total field in the response indicates the full result count, so you can calculate the number of pages needed by dividing total by 20.Can I filter `get_trending` results by both sport and a specific player or set?+
get_trending endpoint accepts a sport filter and a timeframe parameter, but does not support filtering by player name or card set. Those filters are available in search_cards. You can fork this API on Parse and revise it to add player- or set-scoped trending queries.