Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the MySlabs API page →
E-commerce & Marketplaces

MySlabs API & Scraper

The MySlabs API returns myslabs.com - the US marketplace for graded sports and trading cards - as clean JSON in US dollars.

4 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 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.

Reference

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).

FieldValue (live, 2026-11-08)Meaning
sold_price151.50What the buyer paid, MySlabs' 1% buyer premium included (as the archive shows it)
sold_price_before_premium150.00The sale price the listing page prints ("$150 / SOLD")
sold_date2026-11-06Day of the sale
sale_typefixed_pricefixed_price or auction (weekly Friday auctions)
identity2014 · PSA · 10 · #36Year, 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.

Live example

Real request and response JSON

Captured from the indexed primary action, sold, on .

Captured request
{
  "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"
  }
}
Captured response
{
  "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"
        ]
      }
    ]
  }
}
Actions

What the MySlabs API does

ActionDescriptionConcrete use caseKey params
searchSearch 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, ...
soldMySlabs' 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, ...
listingOne 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
filtersThe 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
Code samples

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"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.myslabs.sold with {"query":"charizard","grader":"psa"}.
Use cases

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
FAQ

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.

docs / myslabs

MySlabs

Graded card marketplace: live slabs and auctions, and what PSA, BGS and SGC slabs actually sold for, with dates.

base /myslabs/v14 endpoints
post/myslabs/v1/sold3 credits

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.

ParameterAllowed / rangeDescription
queryoptional—Keyword(s) as sellers write titles: player / character, set, card number, parallel ('jordan fleer', 'charizard base set', 'ohtani rookie'). Every word must appear.
category = slabbed_cardsoptionalslabbed_cards · raw_card_singles · raw_card_lots · wax · allslabbed_cards (graded: PSA, BGS, SGC, CGC …; default), raw_card_singles, raw_card_lots, wax (sealed), or all. sport / era / attributes work on every card category; grader / grade only on slabbed_cards; condition on raw singles / lots.
sportoptionalbaseball · basketball · football · hockey · soccer · pokemon · formula_one · other · other_non_sportSport or game (several allowed, comma-separated): baseball, basketball, football, hockey, soccer, pokemon, formula_one, other, other_non_sport. MySlabs files most other TCGs (One Piece, MTG, Yu-Gi-Oh!) under 'other'.
graderoptionalpsa · bgs · sgc · cgc · bvg · csg · otherGrading company the seller filed (slabbed_cards; several allowed): psa, bgs, sgc, cgc, bvg, csg, other (TAG, HGA, … are 'other').
gradeoptional—Grade (slabbed_cards; several allowed, comma-separated): 10, 9.5, 9 … 1 in half steps, or authentic.
eraoptionalpre_war · vintage · junk · modernThe site's year filter (several allowed): pre_war (1869-1939), vintage (1940-1986), junk (1987-1994), modern (1995-present).
yearoptional1869–2035Exact card year — matched as a word of the title (MySlabs has eras only).
attributesoptionalone_of_one · parallel · base · insert · hall_of_fame · in_person_auto · auto · patch_relic · prospect · rookie · serial_numbered · sp · sspCard attributes the seller ticked (several allowed): rookie, auto, serial_numbered, one_of_one, parallel, insert, base, patch_relic, sp, ssp, prospect, hall_of_fame, in_person_auto.
conditionoptionala · b · c · d · eRaw card condition on MySlabs' own scale (raw_card_singles; average for raw_card_lots; several allowed): a (nrmt/mt) … e (poor/fair).
lot_typeoptionalinsert_lot · player_lot · complete_set · partial_set · team_set · otherraw_card_lots only: insert_lot, player_lot, complete_set, partial_set, team_set, other.
price_rangeoptional—The site's own price buckets (several allowed): 0-249, 250-499, 500-749, 750-999, 1000-2999, 3000-4999, 5000+.
min_priceoptional0–10000000Lowest price in USD (inclusive). Picks the site buckets that overlap and drops rows outside the exact range (sold: compared with the price shown, premium included).
max_priceoptional0–10000000Highest price in USD (inclusive).
sort = newestoptionalnewest · oldest · price_desc · price_asc · most_viewed · most_trackedOrder of results.
page = 1optional1–500Page number, 72 rows a page. Page 1 answers in ~1-3 s; later pages can take up to a minute on a cold start (a site check is cleared first), then ~2-4 s.
sold_afteroptional—Only sales on/after this date (YYYY-MM-DD) — applied to the rows of the page fetched (combine with sort / pages for a longer window).
sold_beforeoptional—Only sales on/before this date (YYYY-MM-DD), same rule as sold_after.
Try in playground →
post/myslabs/v1/listing2 credits

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.

ParameterAllowed / rangeDescription
listing_idrequired—A listing id (rows[].listing_id) or a myslabs.com/slab/view/<id>/ or /auction/view/<lot>/ URL.
auction_lot_idoptional—An auction lot id (rows[].auction_lot_id) — instead of listing_id.
include_bids = trueoptional—Auction lots: also fetch the live status (reserve, next minimum bid) and the bid history (masked bidder as the site prints it, amount, time).
Try in playground →
post/myslabs/v1/filters2 credits

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.

ParameterAllowed / rangeDescription
category = slabbed_cardsoptionalslabbed_cards · raw_card_singles · raw_card_lots · wax · allslabbed_cards (graded: PSA, BGS, SGC, CGC …; default), raw_card_singles, raw_card_lots, wax (sealed), or all. sport / era / attributes work on every card category; grader / grade only on slabbed_cards; condition on raw singles / lots.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.