Discover/MySlabs API
live

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.

Endpoint health
verified 2h ago
search_sales
get_lot
2/2 passing latest checkself-healing
Endpoints
2
Updated
2h ago

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.

This call costs2 credits / call— charged only on success
Try it
1-based page over the result stream using the current `limit` as page size.
Result ordering as offered by the site's sort menu.
Results per call, 1 to 5; values above 5 are clamped to 5.
Free-text keyword search over archived listing titles.
Site category filter for the archive search.
api.parse.bot/scraper/4288819a-b5a2-4ebf-a4d7-093f06c6d20a/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/4288819a-b5a2-4ebf-a4d7-093f06c6d20a/search_sales?query=jordan' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 2 totalmissing one? ·

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.

Input
ParamTypeDescription
pageinteger1-based page over the result stream using the current `limit` as page size.
sortstringResult ordering as offered by the site's sort menu.
limitintegerResults per call, 1 to 5; values above 5 are clamped to 5.
queryrequiredstringFree-text keyword search over archived listing titles.
categorystringSite category filter for the archive search.
Response
{
  "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.

Reliability & maintenanceVerified

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.

Last verified
2h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a sports card price guide by aggregating sold_amount values from search_sales results for a given player or set keyword.
  • Track grade-to-price relationships by pairing grade and grader fields from get_lot with the corresponding sold_amount.
  • Populate a collection management tool with historical comp data using sale_date and sold_amount from archived listings.
  • Alert collectors when cards matching a keyword have recent comps by polling search_sales with sort set to newest.
  • Validate a card's market value before purchase by querying search_sales for matching titles and reviewing recent sale records.
  • Build a grading company comparison tool by filtering get_lot results by grader and comparing average sold_amount across PSA, BGS, and SGC.
  • Enrich a card inventory spreadsheet with image_url and description fields retrieved via get_lot using listing URLs.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does MySlabs offer an official developer API?+
MySlabs does not currently publish an official public developer API or documented developer program. This Parse API provides structured access to data from their public Sold Archive.
What does search_sales actually return per result, and how do I paginate through more than 5 records?+
Each item in the 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?+
If the listing page does not display a SOLD marker, 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?+
Not currently. Both endpoints are scoped to the MySlabs public Sold Archive — completed sales only. Active listings, buy-it-now prices, and seller profiles are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting active listings.
How precise are the sale dates returned, and are older records reliable?+
The 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.
Page content last updated . Spec covers 2 endpoints from myslabs.com.
Related APIs in MarketplaceSee all →