MySlabs API & Scraper
The MySlabs API returns myslabs.com - the US marketplace for graded sports and trading cards - as clean JSON in US dollars.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
search lists live slabs, raw singles, lots and sealed wax by player or card keyword, sport or game (baseball, basketball, football, hockey, soccer, Pokémon, Formula One and other TCGs), grading company (PSA, BGS, SGC, CGC, BVG, CSG), grade from 10 down to Authentic, era or exact year, attributes such as rookie, auto or numbered, raw condition, price and listing type (buy it now, weekly auctions, private deals), 72 a page with the site's exact totals. sold returns MySlabs' sold archive - every row with the realised price, the price before the 1% buyer premium, the sale date, auction or fixed-price sale and shipping charged - with the same filters, a sale-date window and the page's min, median, mean and max. listing returns one listing in full: description, raw condition, price, whether offers are accepted and the seller's minimum offer, shipping, checkout options, views and watchers, the grading company MySlabs verifies the cert with, and for auction lots the current or final bid, bid count, end time, reserve status, next minimum bid and bid history. Every row also carries the card's year, grader, grade, card number and print run read from its title. No account, no browser - one ReefAPI key and the standard { ok, data, meta, error } envelope.
What a PSA 10 Michael Jordan sells for on MySlabs - one call
sold with query jordan on 2026-11-08 returned 72 sales on the first page, newest listing first; the row below is the first one, a 2014 SP Authentic Michael Jordan #36 PSA 10. The same search with grader psa, grade 10 and highest price first returned 71 sales from $2,020 to $19,188.99 (median $4,543.99).
| Field | Value (live, 2026-11-08) | Meaning |
|---|---|---|
| sold_price | 151.50 | What the buyer paid, MySlabs' 1% buyer premium included (as the archive shows it) |
| sold_price_before_premium | 150.00 | The sale price the listing page prints ("$150 / SOLD") |
| sold_date | 2026-11-06 | Day of the sale |
| sale_type | fixed_price | fixed_price or auction (weekly Friday auctions) |
| identity | 2014 · PSA · 10 · #36 | Year, grader, grade and card number read from the title |
The example row is listing 1971429 (2014 SP Authentic Michael Jordan #36 PSA 10). MySlabs shows sale dates, not sale times, for fixed-price sales; auction sales also carry the lot's end time through listing.
Real request and response JSON
Captured from the indexed primary action, sold, on .
{
"method": "POST",
"url": "https://api.reefapi.com/myslabs/v1/sold",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "charizard",
"grader": "psa"
}
}{
"ok": true,
"meta": {
"api": "myslabs",
"endpoint": "sold",
"mode": "live",
"latency_ms": 2440.9,
"record_count": 72,
"bytes": 314492,
"cache_hit": false,
"page": 1,
"per_page": 72,
"rows_on_site_page": 72,
"last_page": 5,
"has_more": true,
"currency": "USD",
"filters_applied": {
"query": "charizard",
"category": "slabbed_cards",
"grader": [
"psa"
],
"sort": "newest"
},
"warnings": [],
"requests": 1,
"cleared_requests": 0,
"price_summary": {
"count": 72,
"min": 16.16,
"max": 10100,
"median": 154.02,
"mean": 426.74
},
"sold_date_range": {
"first": "2023-02-21",
"last": "2026-10-12"
},
"rows_dropped_by_date": 0,
"price_note": "sold_price includes MySlabs' 1% buyer premium (as the archive shows it)",
"rows_dropped_by_price": 0,
"charged_credits": 3,
"version": "1.0.0",
"request_id": "dea1b87da19e4b0d",
"queue_ms": 1.1,
"fetched_at": "2026-11-08T13:04:31.671Z"
},
"data": {
"rows": [
{
"listing_id": "1860998",
"auction_lot_id": null,
"url": "https://www.myslabs.com/slab/view/1860998/",
"title": "2019 Pokemon Sun And Moon Remix Bout Japanese Braixen/Charizard GX PSA 10",
"sale_id": "1201109",
"sold_price": 101,
"sold_price_before_premium": 100,
"sold_date": "2026-10-12",
"sale_type": "fixed_price",
"shipping_charged": 5.99,
"shipping_text": "+ $5.99 Shipping",
"currency": "USD",
"description": "2019 Pokemon Sun And Moon Remix Bout Japanese Braixen/Charizard GX #008 PSA 10 Gem Mint",
"identity": {
"year": 2019,
"season": null,
"card_number": null,
"grader": "PSA",
"grade": "10",
"grade_numeric": 10,
"grade_label": "PSA 10",
"auto_grade": null,
"sub_grades": null,
"serial_number": null,
"print_run": null,
"rookie": false,
"autograph": false,
"cert_number": null,
"source": "title"
},
"image_url": "https://cdn.myslabs.com/myslabs-prod/media/CWSFFGB_1791072951_1.jpg",
"images": [
"https://cdn.myslabs.com/myslabs-prod/media/CWSFFGB_1791072951_1.jpg",
"https://cdn.myslabs.com/myslabs-prod/media/VFCXCIB_1791072951_2.jpg"
]
},
{
"listing_id": "1852829",
"auction_lot_id": null,
"url": "https://www.myslabs.com/slab/view/1852829/",
"title": "2022 POKEMON SWSH BLACK STAR PROMO 075 SPECIAL DELIVERY CHARIZARD-HOLO POKEMON CENTER PSA 9",
"sale_id": "1200428",
"sold_price": 237.35,
"sold_price_before_premium": 235,
"sold_date": "2026-09-30",
"sale_type": "fixed_price",
"shipping_charged": 6,
"shipping_text": "+ $6 Shipping",
"currency": "USD",
"description": null,
"identity": {
"year": 2022,
"season": null,
"card_number": null,
"grader": "PSA",
"grade": "9",
"grade_numeric": 9,
"grade_label": "PSA 9",
"auto_grade": null,
"sub_grades": null,
"serial_number": null,
"print_run": null,
"rookie": false,
"autograph": false,
"cert_number": null,
"source": "title"
},
"image_url": "https://cdn.myslabs.com/myslabs-prod/media/ed92c3a0-2377-4f41-817f-70488b836c9f/2026/09/28/KURKEGV_1790623148_1.png",
"images": [
"https://cdn.myslabs.com/myslabs-prod/media/ed92c3a0-2377-4f41-817f-70488b836c9f/2026/09/28/KURKEGV_1790623148_1.png",
"https://cdn.myslabs.com/myslabs-prod/media/ed92c3a0-2377-4f41-817f-70488b836c9f/2026/09/28/KURKEGV_1790623148_2.png"
]
},
{
"listing_id": "1774201",
"auction_lot_id": null,
"url": "https://www.myslabs.com/slab/view/1774201/",
"title": "2020 Pokémon Japanese Charizard V #001/021 VMAX Starter Set PSA 10 GEM MINT",
"sale_id": "1197791",
"sold_price": 100.99,
"sold_price_before_premium": 99.99,
"sold_date": "2026-08-20",
"sale_type": "fixed_price",
"shipping_charged": null,
"shipping_text": null,
"currency": "USD",
"description": "2020 Pokémon Japanese Charizard V #001/021 VMAX Starter Set PSA 10 GEM MINT\n\nUp for sale is a beautiful 2020 Japanese Pokémon Charizard V #001/021 from the Sword & Shield Charizard VMAX Starter Set, professionally graded a perfect PSA 10 GEM MINT.\n\nCard Details:\n\n- Charizard V\n- 2020 Japanese Pokémon Sword & Shield\n- Charizard VMAX Starter Set\n- Card #001/021\n- Holo Rare\n- Japanese release\n- PSA 10 GEM MINT\n- PSA Certification #55830682\n\nCharizard remains one of the most iconic and sought-after Pokémon in the hobby, and this Japanese Sword & Shield-era card looks fantastic in a PSA 10 holder.\n",
"identity": {
"year": 2020,
"season": null,
"card_number": "001/021",
"grader": "PSA",
"grade": "10",
"grade_numeric": 10,
"grade_label": "PSA 10",
"auto_grade": null,
"sub_grades": null,
"serial_number": null,
"print_run": null,
"rookie": false,
"autograph": false,
"cert_number": "55830682",
"source": "title+description"
},
"image_url": "https://cdn.myslabs.com/myslabs-prod/media/27873b16-0937-4afe-a381-aba05684726f/2026/08/17/ELDHATR_1787012265_1.png",
"images": [
"https://cdn.myslabs.com/myslabs-prod/media/27873b16-0937-4afe-a381-aba05684726f/2026/08/17/ELDHATR_1787012265_1.png",
"https://cdn.myslabs.com/myslabs-prod/media/27873b16-0937-4afe-a381-aba05684726f/2026/08/17/ELDHATR_1787012265_2.png"
]
}
]
}
}What the MySlabs API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search live MySlabs listings: keyword (player, character, set), category (graded slabs, raw singles, lots, sealed wax), sport / game, grading company, grade, era or exact year, card attributes (rookie, auto, numbered …), raw condition, price, listing type (buy it now, auctions, private deals), live offers only, sorted newest / cheapest / dearest / most viewed / most watched, 72 a page, with the site's exact totals. | Pricing teams call search to search live MySlabs listings. | query, category, sport, grader, grade, ... |
| sold | MySlabs' SOLD archive — what graded cards actually sold for, with the sale date: same filters as search (keyword, category, sport, grader, grade, era / year, attributes, condition, price), sorted by listing date or price, 72 a page, plus a sale-date window. meta.price_summary gives count, min, median, mean and max of the page's sold prices. | Marketplace operators call sold to get mySlabs' SOLD archive. | query, category, sport, grader, grade, ... |
| listing | One MySlabs listing in full — live, sold or an auction lot: title, category, raw condition, description, price, buy-now / make-an-offer and the seller's minimum offer, shipping cost, checkout options, views and watchers, the grading company the site verifies certs against, card identity (year, grade, card number, print run, cert when the seller wrote it), all photos; sold listings add sold price and date; auction lots add auction name, current / final bid, bid count, end time, reserve status, next minimum bid and the bid history. | Catalog enrichment teams call listing to get one MySlabs listing in full. | listing_id, auction_lot_id, include_bids |
| filters | The filter values MySlabs offers for a category right now (sports / games, grading companies, grades, eras, attributes, conditions, lot types, price buckets) with this API's names for them. | Retail analysts call filters to get the filter values MySlabs offers for a category right now (sports / games, grading companies,…. | category |
Call sold from your stack
curl -X POST https://api.reefapi.com/myslabs/v1/sold \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"charizard","grader":"psa"}'import os
import requests
REEF_KEY = os.environ["REEF_KEY"]
r = requests.post(
"https://api.reefapi.com/myslabs/v1/sold",
headers={"x-api-key": REEF_KEY},
json={
"query": "charizard",
"grader": "psa"
},
timeout=90,
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/myslabs/v1/sold", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "charizard",
"grader": "psa"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.myslabs.sold with {"query":"charizard","grader":"psa"}.Who uses this API and why
- Graded card comps: what a PSA 10 or BGS 9.5 copy actually sold for, by date
- Arbitrage between MySlabs, eBay and other card marketplaces on the same slab
- Auction tracking: weekly lots ending soon, their bids and reserves
- Deal alerts: new listings under a price for a player, grade and grader
Questions developers ask before integrating
Can I get sold prices for graded cards, not just asking prices?
Yes. sold reads MySlabs' sold archive, which goes back to 2019, and works with every filter: keyword, sport, grading company, grade, era or year, attributes and price. Each row has the realised price with and without the 1% buyer premium and the sale date. In the live run the first page for charizard returned 72 sales from $16.16 to $10,100 (median $163.38), sold between 2023-04-11 and 2026-10-12.
Which grading companies and grades can I filter by?
PSA, BGS, SGC, CGC, BVG and CSG (anything else is 'other'), and grades 10, 9.5, 9 down to 1 in half steps plus Authentic - several at once. The filters are MySlabs' own fields. Each row also has the grader and grade read from its title, and listing tells you which grading company MySlabs verifies the cert with.
Does it cover Pokémon and other trading card games?
Yes. Pokémon has its own filter; One Piece, Magic and other TCGs are filed by MySlabs under 'other', and a keyword finds them. Raw (ungraded) singles, lots and sealed wax are separate categories with their own filters - MySlabs' A-E condition scale for raw cards and lot type for lots.
Are auctions included?
Yes. listing_type=auction returns the weekly auction lots with the opening or current bid and the end time; listing for a lot adds bid count, reserve status, the next minimum bid and the bid history (bidders are masked by MySlabs itself). Ended lots keep their final bid.
Do I get the seller's name?
No. MySlabs hides sellers from visitors who are not signed in, and so does this API (seller is null). Everything else on the public listing is returned, including the seller's minimum offer when offers are allowed.
What is the MySlabs API?
MySlabs API is a ReefAPI endpoint group for graded card marketplace: live slabs and auctions, and what psa, bgs and sgc slabs actually sold for, with dates. It returns live JSON through POST requests under /myslabs/v1.
Is the MySlabs API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. MySlabs calls use the same shared credit balance as every other ReefAPI engine.
Do I need a MySlabs login or account?
No login to MySlabs is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the MySlabs data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the MySlabs API use?
MySlabs actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call MySlabs from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call myslabs actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the MySlabs API a MySlabs scraper?
It is the managed alternative to a DIY MySlabs scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same graded card marketplace: live slabs and auctions, and what psa, bgs and sgc slabs actually sold for, with dates back as clean JSON.
Why does my MySlabs scraper keep getting blocked?
Most MySlabs scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked calls are free.