130point API130point.com ↗
Search sold trading card prices across eBay, Goldin, Heritage Auctions, and more. Get price history, trends, and auction results via 3 endpoints.
What is the 130point API?
The 130point.com API gives developers access to sold trading card data across 6 marketplaces — eBay, Goldin, Heritage Auctions, Pristine Auction, MySlabs, and Fanatics Collect — through 3 endpoints. Use search_sold_items to retrieve card sale records including price, currency, sale type, and listing URL, or call get_price_history to pull aggregate statistics like average, median, high, and low prices alongside a directional trend indicator for any card query.
curl -X GET 'https://api.parse.bot/scraper/28d873f5-47d5-4c01-a275-e80c6b3fc610/search_sold_items?limit=10&query=Michael+Jordan&end_date=2026-10-08&max_price=20&start_date=2026-09-09&sort=StartTimeNewest&marketplace=all' \ -H 'X-API-Key: $PARSE_API_KEY'
Full-text search over sold trading card items across marketplaces (eBay, Fanatics Collect, Goldin, My Slabs, Pristine Auctions, Heritage Auctions), served from the site's current sold-search results as shown on its search page. Each record is one completed sale with the accepted price (number), the site's display price string, currency, sale type as labeled by the site (Auction, Fixed Price, Best Offer Accepted), bid count when the site shows one, the original listing price and its currency when a best offer was accepted (null otherwise), the marketplace's original item ID (`id`, e.g. the eBay item number) plus the site's own record key (`source_id`), the listing URL, and the end time both as UTC ISO-8601 (`end_time_utc`) and as America/New_York text (`date`). An optional end-date range (`start_date`, `end_date`, either or both) is applied by the site itself before its result cap, so the returned records are drawn only from sales whose end time falls on those UTC calendar days (both bounds inclusive); an `end_date` on or after today can include lots whose end time has not yet passed. When no sale ends inside the range the result is empty. An optional sale-price range (`min_price`, `max_price`, either or both, inclusive, compared against the numeric accepted price in the sale's own currency) is likewise applied by the site before its cap and re-checked locally, so every returned record satisfies the bounds; the site briefly caches a query's filtered result set, so re-running the same query text within a few minutes with different bounds may draw from that earlier set (records outside the new bounds are still removed). The source returns at most 200 records per query (fewer when fewer match); `total_found` is the returned count after these filters, not a global count, and `items` is truncated to `limit` with no further pagination. `newest_end_time_utc`/`oldest_end_time_utc` summarize the end times of the returned items (null when empty). Queries shorter than 4 characters, dates not in YYYY-MM-DD form, a start_date later than end_date, negative or non-numeric prices, and a min_price greater than max_price are rejected; a query with no matches returns an empty items list. Two upstream round trips per call (a short-lived search token, then the search).
| Param | Type | Description |
|---|---|---|
| sort | string | Sort order for results. EndTimeSoonest returns the most recently ended sales first; StartTimeNewest orders by listing start time (oldest end times appear first). |
| limit | integer | Maximum number of items to return. The source itself returns at most 200 records per query, so values above 200 never yield more than 200. |
| queryrequired | string | Search query for card name/description (e.g., 'Stephen Curry 2022-23 Panini Prizm 101 Silver'). Minimum 4 characters. |
| end_date | string | Latest sale end date to include, ISO date YYYY-MM-DD (UTC calendar day, inclusive). Applied by the site before its result cap. Omit for no upper bound. |
| max_price | number | Highest accepted sale price to include (inclusive, non-negative, in the sale's own currency units). Applied by the site before its result cap and enforced locally. Omit for no upper bound. |
| min_price | number | Lowest accepted sale price to include (inclusive, non-negative, in the sale's own currency units). Applied by the site before its result cap and enforced locally. Omit for no lower bound. |
| start_date | string | Earliest sale end date to include, ISO date YYYY-MM-DD (UTC calendar day, inclusive). Applied by the site before its result cap. Omit for no lower bound. |
| marketplace | string | Filter by marketplace. 'pwcc' selects the market the site now labels Fanatics Collect. |
{
"type": "object",
"fields": {
"sort": "string - sort order applied",
"items": "array of CardSale objects: id (marketplace's original item ID, e.g. eBay item number), source_id (site record key), marketplace (code: ebay, fanatics, goldin, myslabs, pristine, heritage), price (number, accepted sale price), price_display (site's formatted price string), currency, original_price (number or null, listing price before an accepted best offer), original_price_currency (string or null), bids (integer or null), image_url, sold_via (marketplace display name), title, url, sale_type (Auction, Fixed Price, Best Offer Accepted), date (America/New_York text), end_time_utc (ISO-8601 UTC)",
"query": "string - the search query used",
"end_date": "string or null - end_date filter applied (YYYY-MM-DD), null when omitted",
"max_price": "number or null - max_price filter applied, null when omitted",
"min_price": "number or null - min_price filter applied, null when omitted",
"start_date": "string or null - start_date filter applied (YYYY-MM-DD), null when omitted",
"marketplace": "string - marketplace filter applied",
"total_found": "integer - number of records the source returned for the query after the date/price filters (source cap 200); 0 when no sale ends inside the requested date range",
"items_returned": "integer - number of items in this response",
"newest_end_time_utc": "string or null - latest end_time_utc among returned items",
"oldest_end_time_utc": "string or null - earliest end_time_utc among returned items"
},
"sample": {
"data": {
"sort": "EndTimeSoonest",
"items": [
{
"id": "287600726335",
"url": "https://www.ebay.com/itm/287600726335?hash=item42f656d13f%3Ag%3AVn0AAeSwqR1qsbt2&mkevt=1&mkcid=1&mkrid=711-53200-19255-0&campid=5338055853&customid=&toolid=11008&nordt=true",
"bids": null,
"date": "Tue 22 Sep 2026 14:51:17 EDT",
"price": 25,
"title": "23-24 Panini Nba Hoops Premium Stock - Attack the Rack Wemby 3 Silver Prizm (RC)",
"currency": "USD",
"sold_via": "eBay",
"image_url": "https://i.ebayimg.com/images/g/Vn0AAeSwqR1qsbt2/s-l500.jpg",
"sale_type": "Best Offer Accepted",
"source_id": "EBAY-v1|287600726335|0",
"marketplace": "ebay",
"end_time_utc": "2026-09-22T18:51:17.000Z",
"price_display": "$25.00",
"original_price": 30,
"original_price_currency": "USD"
},
{
"id": "168685982007",
"url": "https://www.ebay.com/itm/168685982007?hash=item274677d137%3Ag%3AxPQAAeSwEu1qptKC&mkevt=1&mkcid=1&mkrid=711-53200-19255-0&campid=5338055853&customid=&toolid=11008&nordt=true",
"bids": null,
"date": "Sun 20 Sep 2026 23:01:01 EDT",
"price": 58,
"title": "HUGE Sports CARD LOT! Patch AUTO RC Serial Numbered, PRIZM, Shohei Ohtani, WEMBY",
"currency": "USD",
"sold_via": "eBay",
"image_url": "https://i.ebayimg.com/images/g/xPQAAeSwEu1qptKC/s-l500.jpg",
"sale_type": "Auction",
"source_id": "EBAY-v1|168685982007|0",
"marketplace": "ebay",
"end_time_utc": "2026-09-21T03:01:01.000Z",
"price_display": "$58.00",
"original_price": null,
"original_price_currency": null
}
],
"query": "Wemby prizm rookie",
"end_date": null,
"max_price": 60,
"min_price": 25,
"start_date": null,
"marketplace": "all",
"total_found": 200,
"items_returned": 2,
"newest_end_time_utc": "2026-09-22T18:51:17.000Z",
"oldest_end_time_utc": "2026-09-21T03:01:01.000Z"
},
"status": "success"
}
}About the 130point API
What the API Returns
The API aggregates sold trading card data across multiple marketplaces into a consistent response structure. Each sale record from search_sold_items includes id, price, currency, image_url, sold_via, title, url, sale_type, and date. You can filter results to a single marketplace using the marketplace parameter and control result count with limit (up to 1,000 items). Results carry a total_found count alongside the actual items_returned, so you know the full scope of matches even when limiting the response.
Price History and Trend Analysis
get_price_history computes statistics over up to 200 recent sales for any query: avg_price, median_price, high_price, low_price, and num_sales. It also returns a price_trend field — 'up', 'down', or 'stable' — derived by comparing the average price of recent sales against older ones, along with a trend_percentage showing the magnitude of that shift. An optional grade parameter (e.g. 'PSA 9', 'BGS 9.5') narrows results to a specific graded population. Each entry in the results array carries date, price, title, and source.
Auction Results with Structured Grading Metadata
search_auction_results targets auction house sales specifically and returns structured fields including card_id, title, sale_price, currency, sale_date, auction_house, grade, grading_company, and listing details. Grade and grading company are extracted from listing titles when present. You can pre-filter using the grade, grading_company (e.g. 'PSA', 'BGS', 'SGC', 'CGC'), and sport parameters before the results are paginated client-side at 25 per page across up to 8 pages from a 200-record backend pool.
The 130point API is a managed, monitored endpoint for 130point.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when 130point.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 130point.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?+
- Building a card valuation tool that shows median and average sold prices for graded PSA or BGS cards using
get_price_history. - Tracking price trends over time for specific cards by monitoring
price_trendandtrend_percentageacross repeated queries. - Comparing auction house realized prices against eBay sold listings for the same card using
search_auction_resultsandsearch_sold_items. - Populating a portfolio tracker with current market values by querying recent sold prices per card in a collection.
- Filtering sold results by grading company (PSA, BGS, SGC, CGC) and grade to compare how certification affects sale price.
- Aggregating sport-specific auction results — basketball, baseball, football — using the
sportfilter insearch_auction_results. - Alerting users when a card's
price_trendshifts to 'up' or 'down' based on pollingget_price_history.
| 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 130point.com have an official developer API?+
What does the `get_price_history` endpoint return beyond raw sale records?+
get_price_history returns both individual sale records (each with date, price, title, and source) and computed aggregate statistics: avg_price, median_price, high_price, low_price, and num_sales. It also includes price_trend ('up', 'down', or 'stable') and trend_percentage, which measure the direction and magnitude of price movement between recent and older sales within the dataset of up to 200 records.How does pagination work for `search_auction_results`?+
page parameter controls which slice you receive, with a maximum of 8 pages (pages 1–8). The total_results field in the response reflects the capped maximum of 200 available records, not the total universe of matching sales.Does the API cover active listings or upcoming auctions?+
search_sold_items returns completed sales with sold_via and sale_type fields; search_auction_results returns realized auction prices; get_price_history aggregates historical sale records. Active or upcoming listings are not included. You can fork this API on Parse and revise it to add an endpoint targeting active listing data if that fits your use case.Can I retrieve seller information or buyer details for a sale?+
title, price, currency, date, url, sold_via, and sale_type — transactional metadata about the card itself, not the parties involved. You can fork this API on Parse and revise it to surface additional listing details if the source exposes them.