130point API130point.com ↗
Search sold trading card listings across eBay, Goldin, Heritage Auctions, MySlabs, and more. Get prices, dates, and sale types via one API endpoint.
What is the 130point API?
The 130point.com API gives developers access to historical sold trading card data across six marketplaces through a single search_sold_items endpoint. Each response includes up to 1,000 sale records with 9 fields per item: price, currency, sale date, sale type, marketplace source, title, image URL, listing URL, and a unique ID. Queries can target specific cards by name, grade, or set — for example, 'Pokemon Charizard PSA 10' or 'Michael Jordan rookie'.
curl -X GET 'https://api.parse.bot/scraper/28d873f5-47d5-4c01-a275-e80c6b3fc610/search_sold_items?sort=EndTimeSoonest&limit=10&query=Michael+Jordan&marketplace=all' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace 130point-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: 130point Card Sales Search API — search sold trading cards across marketplaces."""
from parse_apis.a130point_card_sales_search_api import CardSales, Sort, Marketplace, InvalidInput
client = CardSales()
# Search for recently sold cards, sorted by end time
for card in client.cardsales.search(query="Michael Jordan", sort=Sort.END_TIME_SOONEST, limit=5):
print(card.title, card.price, card.sold_via, card.date)
# Filter to a single marketplace and sort by price
top_card = client.cardsales.search(
query="Pokemon Charizard PSA 10",
marketplace=Marketplace.EBAY,
sort=Sort.CURRENT_PRICE_HIGHEST,
limit=1,
).first()
if top_card:
print(top_card.title, top_card.price, top_card.currency, top_card.url)
# Typed error handling for invalid input
try:
results = client.cardsales.search(query="LeBron James rookie", sort=Sort.BEST_MATCH, limit=3)
for card in results:
print(card.title, card.price)
except InvalidInput as exc:
print(f"Invalid input: {exc}")
print("exercised: cardsales.search with Sort and Marketplace enums, InvalidInput error handling")
Full-text search over sold trading card items across multiple marketplaces. Returns card sale records with price, date, sale type, and listing URL. Results are sorted by the chosen order and optionally filtered to a single marketplace. Paginates as a single page up to the requested limit.
| Param | Type | Description |
|---|---|---|
| sort | string | Sort order for results. |
| limit | integer | Maximum number of items to return (max 1000). |
| queryrequired | string | Search query for card name/description (e.g., 'Michael Jordan', 'Pokemon Charizard PSA 10'). |
| marketplace | string | Filter by marketplace. |
{
"type": "object",
"fields": {
"sort": "string - sort order applied",
"items": "array of CardSale objects with id, price, currency, image_url, sold_via, title, url, sale_type, date",
"query": "string - the search query used",
"marketplace": "string - marketplace filter applied",
"total_found": "integer - total items found",
"items_returned": "integer - number of items in this response"
}
}About the 130point API
What the API Returns
The search_sold_items endpoint searches completed card sales and returns a structured result set including total_found, items_returned, the query used, and the marketplace filter applied. Each object in the items array carries a price and currency, a date for when the sale closed, a sale_type (auction, buy-it-now, etc.), the sold_via marketplace name, a title, and direct url and image_url links to the original listing.
Filtering and Sorting
The marketplace parameter narrows results to a single source: ebay, goldin, myslabs, pristine, heritage, or pwcc — or pass all to aggregate across all of them. The sort parameter controls result ordering with four accepted values: BestMatch, CurrentPriceHighest, StartTimeNewest, and EndTimeSoonest. Passing an unrecognized value for either parameter returns a validation error rather than silently falling back to a default, so input values should match the accepted list exactly.
Coverage and Limits
The limit parameter accepts up to 1,000 items per call, giving a useful snapshot for price research or comp analysis without requiring pagination. Coverage spans eBay, Goldin, Heritage Auctions, Pristine Auction, MySlabs, and Fanatics Collect. The query field supports free-text search, so you can include player names, card sets, certification grades (PSA, BGS, SGC), and years in the same string to narrow results effectively.
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?+
- Look up recent sale prices for a specific graded card (e.g., 'BGS 9.5 Luka Doncic Prizm') across all supported marketplaces at once.
- Compare auction vs. buy-it-now sale prices for the same card using the
sale_typefield. - Track price trends over time by sorting results by
StartTimeNewestand recording thepriceanddatefields. - Build a card portfolio valuation tool that maps each card in a collection to its most recent sold comps.
- Identify which marketplace (
sold_via) tends to achieve the highest prices for a given card category usingCurrentPriceHighestsort. - Filter results to a single marketplace like Goldin or Heritage to benchmark high-end auction results separately from eBay volume.
- Power a card flipping or arbitrage tool by querying recent sold data and comparing against current listing prices.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does 130point.com offer an official developer API?+
What does the `sale_type` field distinguish?+
sale_type field indicates how the item was sold — for example, as an auction or a fixed-price transaction. This lets you filter or segment results by sale mechanism when analyzing comps, since auction hammer prices and buy-it-now prices for the same card can differ significantly.Does the API return active listings or only completed sales?+
search_sold_items endpoint returns only completed, sold transactions — not active or unsold listings. Every item in the response has a price and date reflecting a closed sale. The API does not currently cover active listing data. You can fork it on Parse and revise it to add an endpoint targeting live listings if that coverage is needed.Is there pagination support for results beyond the first page?+
limit parameter (up to 1,000 items) and returns total_found alongside items_returned, but there is no offset or cursor parameter for paginating through results beyond that limit. If total_found exceeds your limit, you currently receive only the top results under the chosen sort order. You can fork this API on Parse and revise it to add offset-based pagination to retrieve deeper result sets.Which marketplaces are covered, and is PWCC included?+
marketplace values are ebay, goldin, myslabs, pristine, heritage, pwcc, and all. The pwcc value is listed as an accepted filter, though availability of results depends on what sales data is indexed for that source. Coverage does not currently extend to other platforms such as Collect Auctions or Lelands. You can fork this API on Parse and revise it to add support for additional marketplaces.