Sirius Sports Auctions APIsiriussportsauctions.com ↗
Search Sirius Sports Auctions lots and prices realized. Two endpoints cover active auction bids, completed results, and fixed-price store items with grading data.
What is the Sirius Sports Auctions API?
The Sirius Sports Auctions API provides 2 endpoints that surface auction lot data and prices realized from siriussportsauctions.com. The search_lots endpoint lets you query active auction lots (with current bid and bid count), completed auction results, or fixed-price store items by free-text term, while get_lot returns full detail for any individual lot or store item — including grading, categories, and bid or sale price fields.
curl -X GET 'https://api.parse.bot/scraper/1874b146-72e4-468c-a41f-a0e9a03e784a/search_lots?query=mantle&status=completed' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace siriussportsauctions-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Sirius Sports Auctions SDK — search past auction results, drill into lot detail."""
from parse_apis.siriussportsauctions_com_api import (
SiriusSportsAuctions, LotStatus, LotNotFound,
)
client = SiriusSportsAuctions()
# Search completed (prices-realized) lots for a player name.
for summary in client.lot_summaries.search(query="mantle", status=LotStatus.COMPLETED, limit=5):
hammer = summary.hammer_price
price_str = hammer.display if hammer else "n/a"
print(f"{summary.title} — {price_str} ({summary.status_label})")
# Drill into the first result's full detail via the summary→detail navigation.
hit = client.lot_summaries.search(query="mantle", status=LotStatus.COMPLETED, limit=1).first()
if hit is not None:
lot = hit.details()
print(f"\n{lot.title}")
print(f" Lot #{lot.lot_number} in {lot.auction_name}")
if lot.grading:
print(f" Graded: {lot.grading.grader} {lot.grading.grade_label}")
if lot.premium_inclusive_total:
print(f" Total (incl. premium): {lot.premium_inclusive_total.display}")
print(f" Categories: {', '.join(lot.categories)}")
# Point-lookup by the same id — demonstrates lots.get with error handling.
try:
same_lot = client.lots.get(lot_id=lot.id)
print(f" Re-fetched: {same_lot.title} — bidding closed: {same_lot.bidding_closed}")
except LotNotFound:
print(" Lot no longer available.")
print("\nexercised: lot_summaries.search / LotSummary.details / lots.get")
Searches the site's own title-and-description search for one of three publicly listed pools selected by status: active = lots in the current auction (open for bidding, with current bid and bid count); completed = the site's prices-realized results across all past auctions (opening bid, the grid's 'Final Price' as hammer_price, and the site's status label, e.g. OVER); fixed_price = store items sold at an asking price (with optional sale price, special-offer flag and quantity available). Results are paged locally in pages of at most 20 (page starts at 1); the upstream catalog itself serves 25 (active) or 50 (fixed_price) per page, so one call may issue up to two upstream page loads, and has_more reports whether a further page exists in the upstream stream. total_matches is the exact count for completed (the site returns the whole result set) and null for the other pools, where source_total_pages/source_page_size describe the upstream stream instead. Money values are returned as {display, amount, currency_symbol, currency}; currency is always null because the site never states one (the symbol alone is not treated as a currency). grading is extracted only when the title names a grading company (PSA, PSA/DNA, SGC, BGS, BVG, CSG, CGC, GAI, KSA, Beckett) and is null otherwise; raw-condition text without a grader is not treated as a grade. scheduled_close is the auction's advertised end date (day precision, no timezone) and is not evidence the lot has closed; is_sold is always null because the site does not state whether a closed lot sold. Each result carries id and listing_type, which are the inputs of get_lot. An empty results array with total_matches 0 is a valid response for a query the site matches nothing on.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based result page over the locally paged result set. |
| queryrequired | string | Free-text search term matched by the site against lot/item title and description (e.g. a player or set name). |
| status | string | Which public pool to search: the current auction, prices realized from completed auctions, or fixed-price store items. |
| page_size | integer | Results per page, 1 to 20 inclusive; larger values are rejected. |
{
"type": "object",
"fields": {
"page": "1-based page returned",
"query": "the search term as sent",
"results": "array of lot/item records: id (string, native inventory id), listing_type ('auction'|'store'), url (native page), title, grading ({grader, grade_label, grade_numeric, source} or null), status_label; auction records add lot_number, auction_name, scheduled_close, opening_bid; active adds bid_count and current_bid; completed adds hammer_price, hammer_price_label ('Final Price') and is_sold (null); store records add asking_price, sale_price (null unless on offer), special_offer (boolean), quantity_available (integer)",
"has_more": "boolean, true when a further page exists upstream",
"page_size": "requested page size",
"auction_name": "active only: name of the current auction including its advertised end date",
"status_filter": "the status pool that was searched",
"total_matches": "exact match count for completed, null for active/fixed_price",
"scheduled_close": "active only: {date ISO YYYY-MM-DD, precision 'day', timezone null, raw} parsed from the auction name; a scheduled end, not a completion",
"source_page_size": "active/fixed_price only: upstream lots per page (25 or 50)",
"source_total_pages": "active/fixed_price only: number of upstream catalog pages for this query"
},
"sample": {
"data": {
"page": 2,
"query": "mantle",
"results": [
{
"id": "1746234",
"url": "https://siriussportsauctions.com/LotDetail.aspx?inventoryid=1746234",
"title": "1960 TOPPS 563 MICKEY MANTLE ALL STAR SGC NM+ 86",
"grading": {
"grader": "SGC",
"source": "title",
"grade_label": "NM+ 86",
"grade_numeric": 86
},
"is_sold": null,
"lot_number": "399",
"opening_bid": {
"amount": 1,
"display": "$1.00",
"currency": null,
"currency_symbol": "$"
},
"auction_name": "Sirius Sports Cards Auction # 420 - Ends 7/16/26",
"hammer_price": {
"amount": 759,
"display": "$759.00",
"currency": null,
"currency_symbol": "$"
},
"listing_type": "auction",
"status_label": "OVER",
"scheduled_close": {
"raw": "7/16/26",
"date": "2026-07-16",
"timezone": null,
"precision": "day"
},
"hammer_price_label": "Final Price"
}
],
"has_more": true,
"page_size": 5,
"status_filter": "completed",
"total_matches": 3574
},
"status": "success"
}
}About the Sirius Sports Auctions API
Endpoints and What They Return
The search_lots endpoint accepts a query string and a status parameter that selects one of three data pools: active (current auction, open for bidding), completed (prices realized across all past auctions), or fixed_price (store inventory). Results come back as a paged array of records, each with an id, title, url, listing_type ('auction' or 'store'), and a grading object that names the grading company and grade when one appears in the title. For active searches, the response also includes auction_name and scheduled_close (the advertised auction end date at day precision). For completed searches, total_matches returns the exact match count; for active and fixed-price pools it is null.
Pagination and Page Size
Pagination is 1-based via the page parameter. page_size can range from 1 to 20 results per request. The has_more boolean signals whether an additional page exists. For active and fixed-price pools, source_page_size reflects the upstream lot grouping (25 or 50), which can affect how results align across pages.
Detail Lookup with get_lot
Passing a native id from search_lots results to get_lot (along with the optional listing_type hint) returns the full detail record. Auction lots include lot_number, auction_name, scheduled_close, bid_count, and final_bid (a money object when the site labels it explicitly, otherwise null). Store items include sale_price. Both types include categories (breadcrumb paths) and a grading object. The is_sold field is always null because the source does not publish sold/unsold status.
The Sirius Sports Auctions API is a managed, monitored endpoint for siriussportsauctions.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when siriussportsauctions.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 siriussportsauctions.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?+
- Track current bid prices and bid counts on active auction lots for specific players or card sets
- Build a prices-realized reference for sports cards by querying the completed pool with player or set names
- Monitor fixed-price store inventory for specific cards using the fixed_price status filter
- Extract grading details (grader, grade label, grade numeric) from lot titles at scale
- Alert on new lots in a live auction by polling search_lots with status=active and checking has_more
- Pull full breadcrumb category paths for auction lots via get_lot to classify inventory by sport or era
| 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.