milehighcardco APImilehighcardco.com ↗
Search Mile High Card Company auction lots by keyword and retrieve per-lot pricing, grade, bid count, and completion status via two structured endpoints.
What is the milehighcardco API?
The Mile High Card Company API exposes 2 endpoints covering the site's live auction catalog: search_lots for keyword-driven lot discovery and get_lot for full per-lot detail. A single search response surfaces up to 20 lot summaries per page including lot number, title, status, bid count, and auction close timing. The detail endpoint returns 14+ fields per lot, with every price role — starting minimum bid, current bid, hammer price, and buyer's premium — reported separately.
curl -X GET 'https://api.parse.bot/scraper/681dbc73-7a9d-4d4c-a98f-10e3949dbb3a/search_lots?query=Mantle' \ -H 'X-API-Key: $PARSE_API_KEY'
Searches lot titles and descriptions in the auction the site currently displays as its catalog and returns up to 20 lot summaries per page (one round trip per page). Each row carries the native lot_id (also usable with get_lot), lot number, title, lot URL, status, bid count, and an economics object where each price role is a separate field: starting_minimum_bid, current_bid (open lots only; not observed in this build because no auction was open), hammer_price and buyers_premium_amount (always null here — the catalog listing shows only minimum bid and final price; use get_lot for them), and total_price_with_premium (closed lots; the site's 'Final Price', which includes buyer's premium). currency_symbol is the symbol printed by the site and currency_code is null unless the site prints an ISO code (it did not during this build). grader/grade/qualifier are parsed only when a grading company and grade appear verbatim in the title (e.g. 'SGC 1.5'); otherwise they are null. scheduled_auction_close is the auction-level close date shown on the catalog (day precision, America/Denver), never a lot's actual completion. page defaults to 1; has_more is true when a further page of matching lots exists. A term with no matching lots returns an empty lots array with has_more false.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based results page of 20 lots. |
| queryrequired | string | Free-text term matched against lot title and description, e.g. a player name. |
{
"type": "object",
"fields": {
"lots": "array of lot summaries: lot_id (string, native inventory id), lot_number, title, url, status ('closed'|'open'), bid_count, economics {starting_minimum_bid, current_bid, hammer_price, buyers_premium_amount, total_price_with_premium, currency_symbol, currency_code}, grader, grade, qualifier",
"page": "1-based page returned",
"query": "echo of the search term",
"has_more": "true when another page of matching lots exists",
"page_size": "fixed page size (20)",
"auction_name": "name of the auction searched",
"scheduled_auction_close": "object {date (YYYY-MM-DD), time, timezone (IANA), precision ('day'|'minute'), source_text}: the auction-level close published on the catalog, not lot completion"
},
"sample": {
"data": {
"lots": [
{
"url": "https://www.milehighcardco.com/1951_Bowman__253_Mickey_Mantle_SGC_1_5_FR-LOT127007.aspx",
"grade": "1.5",
"title": "1951 Bowman #253 Mickey Mantle SGC 1.5 FR",
"grader": "SGC",
"lot_id": "127007",
"status": "closed",
"bid_count": 15,
"economics": {
"current_bid": null,
"hammer_price": null,
"currency_code": null,
"currency_symbol": "$",
"starting_minimum_bid": 2500,
"buyers_premium_amount": null,
"total_price_with_premium": 12753.88
},
"qualifier": null,
"lot_number": 2
}
],
"page": 1,
"query": "Mantle",
"has_more": true,
"page_size": 20,
"auction_name": "August 2026 Extra Innings",
"scheduled_auction_close": {
"date": "2026-08-19",
"time": null,
"timezone": "America/Denver",
"precision": "day",
"source_text": "Auction closed on 8/19/2026. Final prices include buyers premium."
}
},
"status": "success"
}
}About the milehighcardco API
Searching the Auction Catalog
search_lots accepts a required query string matched against lot titles and descriptions in the currently active auction. Pass an optional page integer (1-based) to walk through paginated results of 20 lots per page. Each entry in the returned lots array includes a lot_id string that feeds directly into get_lot, along with lot_number, title, url, status ('open' or 'closed'), and bid_count. The response also carries auction_name, a has_more boolean for pagination, and a scheduled_auction_close object with structured date, time, IANA timezone, and precision fields so you can distinguish a day-level estimate from a minute-level close time.
Lot Detail and Economics
get_lot takes a single lot_id and returns the full public record for that lot. The economics object breaks out starting_minimum_bid, current_bid (on open lots), hammer_price (the site-stated winning bid before buyer's premium on closed lots), and buyers_premium as separate fields — no arithmetic required to separate them. Additional fields include grade (numeric or 'AUTHENTIC'), grader (the grading company), qualifier (e.g. MC, OC, ST), category, description, auction_id, and auction_name.
Status and Timing
Lot status reflects whether the page states bidding has ended ('closed') or is still active ('open'), independent of the scheduled_auction_close timestamp. This means you can detect lots that have actually closed before or after the scheduled time without comparing timestamps manually. Both endpoints are read-only and operate against the auction the site currently displays as its catalog.
The milehighcardco API is a managed, monitored endpoint for milehighcardco.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when milehighcardco.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 milehighcardco.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?+
- Monitor bids on specific player cards by polling
get_lotwith a knownlot_idto trackcurrent_bidchanges over time. - Build a price history reference by recording
hammer_priceandbuyers_premiumfor closed lots returned bysearch_lots. - Alert collectors when lots matching a keyword (e.g. a player name or set year) appear in a new auction via
search_lots. - Extract
gradeandgraderfields fromget_lotto compare realized prices across different grading services for the same card. - Aggregate
bid_countacrosssearch_lotsresults to identify which categories or player names attract the most bidding activity. - Cross-reference
scheduled_auction_closeprecision and actualstatusto detect early closings or extended bidding windows.
| 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.
Does Mile High Card Company offer an official developer API?+
What does the `economics` object in `get_lot` actually contain, and how are the price fields separated?+
economics contains up to four distinct fields: starting_minimum_bid, current_bid (present on open lots), hammer_price (present on closed lots, representing the winning bid before premium), and buyers_premium. Each is a separate field, so you do not need to derive one from another.Does `search_lots` cover past auctions or only the current one?+
Is there a way to retrieve all lots in an auction without a search query?+
search_lots requires a query string; there is no browse-all or category-filter mode currently. The API covers keyword search and single-lot detail. You can fork it on Parse and revise to add a browse or category endpoint if that traversal is needed.How does lot `status` relate to `scheduled_auction_close`?+
status reflects what the lot page itself states — 'closed' when bidding is stated as ended, 'open' otherwise. scheduled_auction_close is the auction-level close published on the site. They are separate fields and may not always align, so a lot can show 'closed' before or after the scheduled close time.