Discover/SCP Auctions API
live

SCP Auctions APIcatalogs.scpauctions.com ↗

Query SCP Auctions past and active lots via 4 endpoints. Get final prices, bid counts, grades (PSA/SGC/BGS), graders, sale dates, and Buy Now figures.

Endpoint health
verified 6d ago
search_sales
get_lot
search_active
get_active_lot
4/4 passing latest checkself-healing
Endpoints
4
Updated
6d ago

What is the SCP Auctions API?

The SCP Auctions Catalog API provides structured access to SCP Auctions' public lot data across 4 endpoints, covering both ended and active listings. The search_sales endpoint returns up to 5 fully resolved past-lot records per call, including final price, bid count, grader, grade, and sale date. Companion endpoints handle single-lot lookup, active auction search, and Buy Now discovery — all returning consistent, typed response fields with ISO currency codes and UTC-normalized dates.

This call costs5 credits / call— charged only on success
Try it
1-based page of `limit` records over the search result stream.
Result ordering, mirroring the site's Sort By menu.
Number of lot records to return, 1 to 5; larger values are clamped to 5.
Free-text keyword search over lot titles and descriptions (one shape: a player name plus set or grade words).
Restricts results to past lots that sold, went unsold, or either.
→ api.parse.bot/scraper/e55ab4c1-095c-4aac-987a-d141bd1b8fda/<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/e55ab4c1-095c-4aac-987a-d141bd1b8fda/search_sales?sort=relevance&query=Michael+Jordan+PSA+10&status=any' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 4 totalmissing one? ·

Searches SCP Auctions' catalog of past (ended) lots by keyword and returns up to 5 fully resolved lot records per call, in the site's own order for the chosen sort. One search request plus one lot-page request per returned record (max 6 requests). Each record has the same shape as get_lot: status is exactly one of sold, not_sold, ended_unknown (auction ended but the site shows neither a sold price nor an Unsold label), or not_ended; an ended auction alone never yields sold. final_amount, currency, price_basis and buyer_premium_included are populated only for sold lots and are null otherwise; buyer_premium_rate is always null because the site does not publish the rate on lot pages. sale_date/sale_datetime is the lot page's own close time (with UTC offset) and is never taken from the site's current headline dates; sale_date_precision is datetime when it is present. grader/grade are parsed from the lot title (grade_source is title) and null when the title carries no recognizable grade. Pagination: page selects the next block of `limit` records; has_more is true while the site's total_results exceeds the records consumed so far. total_results is the site's own count for the query and status filter. failed_lots lists any lot pages that could not be fetched or parsed for this page. A query with no matches returns an empty results list.

Input
ParamTypeDescription
pageinteger1-based page of `limit` records over the search result stream.
sortstringResult ordering, mirroring the site's Sort By menu.
limitintegerNumber of lot records to return, 1 to 5; larger values are clamped to 5.
queryrequiredstringFree-text keyword search over lot titles and descriptions (one shape: a player name plus set or grade words).
statusstringRestricts results to past lots that sold, went unsold, or either.
Response
{
  "type": "object",
  "fields": {
    "page": "page number served",
    "limit": "effective page size after clamping to 5",
    "query": "echo of the search keywords",
    "results": "array of lot records, same shape as get_lot data",
    "has_more": "true when more records exist beyond this page",
    "failed_lots": "array of {url, status_code, error?} for lot pages that could not be fetched or parsed",
    "status_filter": "status filter applied (any, sold, unsold)",
    "total_results": "site-reported total matching lots for the query and status filter; null if the site omitted it"
  },
  "sample": {
    "data": {
      "page": 1,
      "limit": 2,
      "query": "Michael Jordan PSA 10",
      "results": [
        {
          "id": "9394841",
          "url": "https://catalogs.scpauctions.com/online-auctions/scp-auctions-inc/1986-fleer-57-michael-jordan---psa-gem-mint-10-9394841",
          "grade": "GEM MINT 10",
          "title": "1986 Fleer #57 Michael Jordan - PSA GEM MINT 10",
          "grader": "PSA",
          "status": "sold",
          "currency": "USD",
          "bid_count": 15,
          "image_url": "https://s1.img.bidsquare.com/item/xl/3810/38105385.jpeg",
          "sale_date": "2026-07-26",
          "auction_id": "23246",
          "lot_number": "3",
          "auction_url": "https://catalogs.scpauctions.com/auctions/scp-auctions-inc/2026-summer-premier-23246",
          "description": "This 1986 Fleer #57 Michael Jordan rookie card grades PSA GEM MINT 10, the highest grade on the PSA scale.",
          "price_basis": "sold_price_including_buyer_premium",
          "auction_name": "2026 Summer Premier",
          "final_amount": 360000,
          "grade_source": "title",
          "status_label": "Sold for",
          "sale_datetime": "2026-07-26T22:30:00-04:00",
          "currency_symbol": "$",
          "sale_date_source": "lot_page_auction_close_time",
          "auction_dates_text": "Thu, Jul 9, 2026 12:00PM CDT - Sun, Jul 26, 2026 09:30PM CDT",
          "buyer_premium_note": "Sold Price includes BP",
          "buyer_premium_rate": null,
          "final_amount_label": "Sold for",
          "sale_date_precision": "datetime",
          "buyer_premium_included": true
        },
        {
          "id": "6742678",
          "url": "https://catalogs.scpauctions.com/online-auctions/scp-auctions-inc/sensational-1984-star-101-xrc-michael-jordan-autographed-true-rookie---bgs-nm-mt-8-5-beckett-9-auto-one-of-highest-dual-grades-in-hobby-6742678",
          "grade": "NM-MT+ 8.5",
          "title": "Sensational 1984 Star #101 XRC Michael Jordan Autographed True Rookie - BGS NM-MT+ 8.5, Beckett 9 Auto. (One of Highest Dual Grades in Hobby!)",
          "grader": "BGS",
          "status": "sold",
          "currency": "USD",
          "bid_count": 19,
          "image_url": "https://s1.img.bidsquare.com/item/xl/2823/28233694.jpeg",
          "sale_date": "2024-11-23",
          "auction_id": "16485",
          "lot_number": "4",
          "auction_url": "https://catalogs.scpauctions.com/auctions/scp-auctions-inc/2024-fall-premier-16485",
          "description": "Presented here is one of the finest signed versions of MJ's first rookie card you will find in the hobby.",
          "price_basis": "sold_price_including_buyer_premium",
          "auction_name": "2024 Fall Premier",
          "final_amount": 312000,
          "grade_source": "title",
          "status_label": "Sold for",
          "sale_datetime": "2024-11-23T22:30:00-05:00",
          "currency_symbol": "$",
          "sale_date_source": "lot_page_auction_close_time",
          "auction_dates_text": "Wed, Nov 6, 2024 12:00PM CST - Sat, Nov 23, 2024 09:30PM CST",
          "buyer_premium_note": "Sold Price includes BP",
          "buyer_premium_rate": null,
          "final_amount_label": "Sold for",
          "sale_date_precision": "datetime",
          "buyer_premium_included": true
        }
      ],
      "has_more": true,
      "failed_lots": [],
      "status_filter": "sold",
      "total_results": 280
    },
    "status": "success"
  }
}

About the SCP Auctions API

Past Lot Search and Detail

The search_sales endpoint accepts a free-text query (player name, set name, grade keywords) and optional status filter (sold, unsold, or either) to retrieve ended lots from SCP Auctions' catalog. Results are paginated via page and limit (capped at 5), and the response includes total_results for the matching query and filter, a has_more flag for pagination, and a failed_lots array listing any lot URLs that could not be resolved. Each record in results carries title, grade, grader, bid_count, sale_date (YYYY-MM-DD), currency, and status — where status is one of sold, not_sold, ended_unknown, or not_ended.

The get_lot endpoint resolves a single past-lot page by URL and returns the same field shape. It is useful for spot-checking a specific lot or refreshing a record. The grade field captures the full descriptor string (e.g., GEM MINT 10), and grader is parsed from the title to one of the recognized abbreviations (PSA, SGC, BGS, CGC, etc.) or null when absent. final_amount reflects the price on a buyer-premium basis as reported by the site, and currency is the ISO code for that figure.

Active Listings: Auctions and Buy Now

The search_active endpoint searches non-ended lots. The required listing_type parameter selects between buy_now (fixed-price gallery lots) and auction (timed-auction lots). Responses share the same pagination shape as search_sales and return records whose status field is one of available, active, upcoming, ended, or unknown. Each record includes amount (the current bid or asking price as a number), currency, bid_count, grader, and grade.

The get_active_lot endpoint fetches one active-listing page by URL. It adds a year field that extracts the first four-digit year from the title — useful when the lot title leads with a card year. The listing_type on the response is buy_now when the site marks the lot as such; otherwise it is auction. Past lot URLs also resolve through this endpoint, returning status: ended.

Reliability & maintenanceVerified

The SCP Auctions API is a managed, monitored endpoint for catalogs.scpauctions.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when catalogs.scpauctions.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 catalogs.scpauctions.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
6d ago
Latest check
4/4 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
  • Track realized prices for graded PSA/SGC cards across SCP Auctions' completed sales
  • Compare bid counts and final amounts for the same player across multiple past auction cycles
  • Monitor current Buy Now asking prices for specific graded cards using search_active with listing_type=buy_now
  • Build a price-guide dataset filtered to sold lots only using the status filter in search_sales
  • Alert when an active auction lot for a target player or set goes live using search_active with listing_type=auction
  • Verify a specific lot's grade, grader, and sale date by passing its URL to get_lot
  • Aggregate sale_date and final_amount fields over time to chart auction price trends for a given card set
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 SCP Auctions offer an official developer API?+
SCP Auctions does not publish an official developer API or documented data feed. The Parse API is the structured programmatic interface available for their public catalog data.
What does the status field mean in get_lot responses, and how is it different from search_sales filtering?+
In get_lot, status reflects what the lot page itself shows: sold means a final price is present, not_sold means the page carries an Unsold label, ended_unknown means the auction ended but neither condition is shown, and not_ended means the auction is still open. The status parameter in search_sales is a pre-filter applied before records are fetched — it restricts the search result stream to sold, unsold, or either. The two operate at different levels: one filters the search pool, the other reports what a resolved page shows.
How does pagination work, and is there a way to retrieve more than 5 records per call?+
Both search_sales and search_active cap at 5 records per call via the limit parameter; values above 5 are clamped to 5. Use the page parameter to step through results and check has_more to know whether additional pages exist. total_results gives the site-reported count for the query, though it may be null if the site does not report it.
Does the API expose auction house fees, seller information, or provenance notes for individual lots?+
Not currently. The API covers lot titles, grades, graders, bid counts, final amounts on a buyer-premium basis, sale dates, and listing status. Seller details, itemized fee breakdowns, and provenance or description text are not included in the current response fields. You can fork the API on Parse and revise it to add an endpoint that captures those additional page elements.
Are image URLs included, and do they remain stable over time?+
Yes, get_lot returns an image_url field containing the primary lot image URL as listed on the lot page. SCP Auctions controls those image URLs, and their persistence after a sale closes depends on the site's own hosting. There is no guarantee of long-term stability for URLs pointing to the source site's image assets.
Page content last updated . Spec covers 4 endpoints from catalogs.scpauctions.com.
Related APIs in MarketplaceSee all →
lelands.com API
Access data from lelands.com.
wheatlandauctionservices.com API
Search through Wheatland Auction Services' current sports card and memorabilia auction by keywords or categories to find lots that interest you, then view detailed information about individual items including pricing data. Browse anonymously without needing an account to discover and compare available lots before bidding.
marketplace.cleansweepauctions.com API
Search for auction lots and fixed-price items across Clean Sweep Auctions' active listings, recently closed sales, or store inventory using keywords, then view detailed pricing and bid information for any specific lot. Get instant access to current market data including bid history and final sale prices without needing an account.
bid.memorylaneinc.com API
Access data from bid.memorylaneinc.com.
siriussportsauctions.com API
Search current and past Sirius Sports Cards auction lots and fixed-price items by your criteria, then view detailed information about specific cards including current auction prices and historical prices realized. Browse anonymously to discover cards and compare pricing across live auctions and completed sales without needing an account.
milehighcardco.com API
Search Mile High Card Company's current auction catalog by keyword and view detailed pricing information for individual lots, including separate price roles and completion status independent of scheduled auction timing. Perfect for tracking specific cards and monitoring auction activity without needing to browse the website directly.
collectauctions.com API
Search through Collect Auctions lots and view detailed information about each item, including current status (sold, unsold, or active), opening bid, final sale price with premium included, bid count, and auction dates. Access gallery views of lots and get comprehensive details to research auction history and track specific items.
collectrea.com API
Search through completed sports card auction results from Robert Edward Auctions to find past sales data, or look up detailed information about a specific lot's final price and sale details. This read-only access to the REA archive lets you research historical card values and auction outcomes directly from their official records.
SCP Auctions Catalog API – Lots, Prices & Grades · Parse