MySlabs APImyslabs.com ↗
Search and retrieve completed sports card sales from the MySlabs Sold Archive. Access listing titles, sale dates, sold amounts, grades, and grader info via 2 endpoints.
What is the MySlabs API?
The MySlabs API gives developers structured access to completed sports card listings from the MySlabs Sold Archive via 2 endpoints. The search_sales endpoint accepts free-text keywords and returns archived sale records including title, sale date, sold amount, and listing URL. The get_lot endpoint retrieves full detail on a single listing by URL, exposing grade, grader, condition, currency, description, and primary image.
curl -X GET 'https://api.parse.bot/scraper/4288819a-b5a2-4ebf-a4d7-093f06c6d20a/search_sales?query=jordan' \ -H 'X-API-Key: $PARSE_API_KEY'
Searches the public MySlabs Sold Archive by keyword and returns up to 5 completed sales per call (one result per archived listing). The site paginates in blocks of 72; this endpoint tiles that stream so that `page` with the same `limit` walks it as a true offset, and `has_more` reports whether another page exists. `sold_amount` is the price shown on the archive card, which the site labels as including a 1% buyer premium (`price_basis` = includes_1pct_buyer_premium); the site does not disclose accepted-offer amounts, so `accepted_offer_amount` is always null. `currency` is null here because the archive card shows only a $ symbol. `grader`/`grade` are parsed from the listing title only when a recognised grading-company token (PSA, BGS, SGC, CGC, CSG, HGA, TAG, Beckett, BVG, ISA) followed by a numeric grade is present, with `grade_source` = title; otherwise all three are null. `is_multi_card_lot` is true when the title contains lot/bundle/pack/box/N-card markers or when the chosen category is not a single-card category; `single_card_qualified` is its negation. `shipping_amount` is the separate shipping charge when the card shows one, otherwise null. `sale_date` has day precision as displayed. An unmatched query returns an empty `results` array.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based page over the result stream using the current `limit` as page size. |
| sort | string | Result ordering as offered by the site's sort menu. |
| limit | integer | Results per call, 1 to 5; values above 5 are clamped to 5. |
| queryrequired | string | Free-text keyword search over archived listing titles. |
| category | string | Site category filter for the archive search. |
{
"type": "object",
"fields": {
"page": "page returned",
"sort": "sort applied",
"limit": "effective page size after clamping",
"query": "echo of the search keyword",
"results": "array of archived sale records: id (listing object ID string), url, title, sale_status, sale_date, sale_date_precision, sold_amount (number), amount_source, price_basis, accepted_offer_amount (always null), shipping_amount (number or null), currency (null), grader, grade, grade_source, listing_format, is_multi_card_lot, single_card_qualified, image_url",
"category": "category filter applied",
"has_more": "true when a further page exists"
},
"sample": {
"data": {
"page": 1,
"sort": "newest",
"limit": 5,
"query": "jordan",
"results": [
{
"id": "1836606",
"url": "https://www.myslabs.com/slab/view/1836606/",
"grade": null,
"title": "1990 Fleer Basketball #26 Michael Jordan Chicago Bulls Sharp",
"grader": null,
"currency": null,
"image_url": "https://cdn.myslabs.com/myslabs-prod/media/4ad4f942-cff3-4d9e-9619-65742aec50ea/2026/09/22/MNRDUDL_1790062654_1.png?width=360&height=610&quality=85",
"sale_date": "Sep 22, 2026",
"price_basis": "includes_1pct_buyer_premium",
"sale_status": "sold",
"sold_amount": 10.1,
"grade_source": null,
"amount_source": "archive_listing_card",
"listing_format": "fixed price",
"shipping_amount": 6,
"is_multi_card_lot": false,
"sale_date_precision": "day",
"accepted_offer_amount": null,
"single_card_qualified": true
},
{
"id": "1411610",
"url": "https://www.myslabs.com/slab/view/1411610/",
"grade": "9",
"title": "1995 Upper Deck #137 Michael Jordan PSA 9",
"grader": "PSA",
"currency": null,
"image_url": "https://cdn.myslabs.com/myslabs-prod/media/5d6638f1-8be1-450c-874d-a340069c759b/2024/08/06/LOBDMPR_1722993802_1.png?width=360&height=610&quality=85",
"sale_date": "Sep 19, 2026",
"price_basis": "includes_1pct_buyer_premium",
"sale_status": "sold",
"sold_amount": 49.49,
"grade_source": "title",
"amount_source": "archive_listing_card",
"listing_format": "fixed price",
"shipping_amount": null,
"is_multi_card_lot": false,
"sale_date_precision": "day",
"accepted_offer_amount": null,
"single_card_qualified": true
}
],
"category": "all",
"has_more": true
},
"status": "success"
}
}About the MySlabs API
What the API Covers
The API exposes read-only data from the MySlabs public Sold Archive — completed sports card listings that have cycled through the platform. Both endpoints focus on archived (sold) data; live or active listings are not part of this plan.
search_sales Endpoint
Pass a query string to search across archived listing titles. Results come back in pages of up to 5 records (limit param, clamped to 5). Each result in the results array includes id, url, title, sale_status, sale_date, sale_date_precision, and sold_amount. Use the page param for pagination and check has_more to know whether additional results exist. An optional sort param maps to the sort options the archive exposes, and category lets you narrow results by card category.
get_lot Endpoint
Accepts a listing URL in the form https://www.myslabs.com/slab/view/<id>/ — as emitted in search_sales results — or a bare numeric listing ID. Returns a single record with fields including title, grade, grader, condition, sale_date, currency, sold_amount (when the listing shows a SOLD marker), description, and image_url. When the listing page does not carry a SOLD marker, sale_status is returned as not_sold and all sale-specific fields are null.
Pagination and Freshness Notes
The underlying archive paginates in blocks of 72; search_sales tiles that into pages sized by limit and maintains a true offset, so incrementing page with a fixed limit walks results consistently. Data reflects what the public Sold Archive shows at request time — the archive is append-only as new sales close, so older records are stable but recent additions depend on the source updating.
The MySlabs API is a managed, monitored endpoint for myslabs.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when myslabs.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 myslabs.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?+
- Build a sports card price guide by aggregating
sold_amountvalues fromsearch_salesresults for a given player or set keyword. - Track grade-to-price relationships by pairing
gradeandgraderfields fromget_lotwith the correspondingsold_amount. - Populate a collection management tool with historical comp data using
sale_dateandsold_amountfrom archived listings. - Alert collectors when cards matching a keyword have recent comps by polling
search_saleswithsortset to newest. - Validate a card's market value before purchase by querying
search_salesfor matching titles and reviewing recent sale records. - Build a grading company comparison tool by filtering
get_lotresults bygraderand comparing averagesold_amountacross PSA, BGS, and SGC. - Enrich a card inventory spreadsheet with
image_urlanddescriptionfields retrieved viaget_lotusing listing URLs.
| 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 MySlabs offer an official developer API?+
What does search_sales actually return per result, and how do I paginate through more than 5 records?+
results array includes id, url, title, sale_status, sale_date, sale_date_precision, and sold_amount. Set limit between 1 and 5 (values above 5 are clamped), then increment page by 1 on each call. The has_more field in the response tells you whether another page exists.What happens when get_lot is called for a listing that isn't marked as sold?+
sale_status returns as not_sold and all sale-specific fields — including sold_amount, sale_date, and currency — are returned as null. Descriptive fields like title, grade, grader, condition, description, and image_url are still populated where the listing provides them.Does the API cover active or upcoming listings, not just sold ones?+
How precise are the sale dates returned, and are older records reliable?+
sale_date field returns the date as displayed on the listing (for example, "Sep 22, 2026"), and sale_date_precision indicates how granular that date is. The Sold Archive is append-only — once a sale record is written, it does not change — so historical entries are stable. Very recent sales may not appear immediately, depending on when the archive is updated.