Lelands APIlelands.com ↗
Search Lelands' completed sports card and memorabilia auction archive. Get final sale prices, bid counts, grades, and lot details via two endpoints.
What is the Lelands API?
The Lelands.com API provides read-only access to the public past-auction archive at lelands.com through 2 endpoints, returning up to 13 fields per completed lot. Use search_sales to query the archive by keyword and retrieve paginated lists of finished lots, or call get_lot with a specific lot URL to retrieve the full sale record including final price, bid count, grader, grade, and sold status.
curl -X GET 'https://api.parse.bot/scraper/d219970c-feb5-4d1a-a22e-9146392618be/search_sales?query=1952+Topps+Mickey+Mantle' \ -H 'X-API-Key: $PARSE_API_KEY'
Searches Lelands' public past-auction archive by keyword and returns up to 5 completed lots per call, each with its full sale record (one extra round trip per returned lot, so a call costs at most six page loads). Results are the site's own search ordering: newest auction first by default, or the site's relevance ordering when sort is 'best'; the site's oldest-first ordering is not offered because the site fails to return it. Pagination is a true offset over the site's result stream: offset selects the first result to return (default 0) and limit (1-5) how many; has_more/next_offset tell you whether more results follow. A query the site has no results for returns an empty results array with count 0. Each result carries the lot's lelands.com page URL (source_url, accepted unchanged by get_lot), the site's numeric item_id, and a sale object with: status ('sold', 'not_sold' for reserve-not-met/unsold/withdrawn lots, 'ended_unknown' when the closed lot shows no outcome, or 'open' if the lot is still live), final_amount (the 'SOLD FOR' price the site states includes the buyer's premium; null when not sold), price_label (the site's verbatim outcome text), currency 'USD' inferred from the dollar sign (currency_explicit is false because the site never names a currency code), buyer_premium_rate (always null; the site does not publish the rate per lot), bid_count, starting_bid, sale_date/sale_datetime (the scheduled close of the auction the lot belonged to, US Eastern as displayed by the site, precision 'auction_end' - the site does not publish a per-lot close time, and the date is read from the lot's own auction record, never from the site's current-auction banner), grader and grade parsed from the lot title (null when the title carries no recognizable grading-company grade), image_url plus all image_urls, category, auction_name, lot_number, views and the full description. If a lot's detail page cannot be loaded, that row's sale is null and detail_error explains why; detail_failures counts such rows.
| Param | Type | Description |
|---|---|---|
| sort | string | Result ordering applied by the site. |
| limit | integer | Number of lots to return, 1 to 5 inclusive; values outside that range are rejected. |
| queryrequired | string | Free-text search over past-auction lot titles, e.g. a year, set, player and grade. |
| offset | integer | Zero-based index of the first result to return within the site's result stream; pass next_offset from a previous response to continue. |
{
"type": "object",
"fields": {
"sort": "ordering applied",
"count": "number of rows in results",
"limit": "requested page size",
"query": "echo of the search text",
"offset": "zero-based index of the first returned result",
"results": "array of lot rows: title, source_url (lelands.com lot page, input to get_lot), thumbnail_url, item_id (site's numeric lot id as a string), sale (full sale record, same shape as get_lot's payload, or null), detail_error (null or reason the sale record is missing)",
"has_more": "true when more results follow offset+limit",
"next_offset": "offset to pass for the next page, or null when has_more is false",
"total_pages": "number of result pages the site reports (24 results per site page), null when the site shows no pagination",
"detail_failures": "number of rows whose sale record could not be loaded",
"results_per_source_page": "site page size the offset is mapped over (24)"
},
"sample": {
"data": {
"sort": "newest",
"count": 2,
"limit": 2,
"query": "1952 Topps Mickey Mantle",
"offset": 0,
"results": [
{
"sale": {
"grade": "EX-MT 6",
"title": "1952 Topps Baseball #311 Mickey Mantle PSA EX-MT 6 - Newly Discovered Example",
"views": 4617,
"grader": "PSA",
"status": "sold",
"item_id": "113603",
"lot_url": "https://auction.lelands.com/bids/bidplace?itemid=113603",
"category": "Baseball and Trading Cards",
"currency": "USD",
"bid_count": 46,
"image_url": "https://auction.lelands.com/images_items/item_113603_1_328356.jpg",
"sale_date": "2023-08-05",
"image_urls": [
"https://auction.lelands.com/images_items/item_113603_1_328356.jpg",
"https://auction.lelands.com/images_items/item_113603_2_328357.jpg"
],
"lot_number": 2,
"description": "1952 Topps Baseball #311 Mickey Mantle First Topps card. Graded EX-MT 6 by PSA. ...",
"price_basis": "sold_for_price_including_buyers_premium",
"price_label": "SOLD FOR $159,312.00",
"auction_name": "2023 Summer Classic",
"final_amount": 159312,
"starting_bid": 10000,
"sale_datetime": "2023-08-05T22:00:00",
"sale_timezone": "US Eastern (as displayed by the site)",
"currency_symbol": "$",
"currency_explicit": false,
"buyer_premium_rate": null,
"buyer_premium_basis": "site notice: 'Prices Shown Include Buyer's Premium.'",
"sale_date_precision": "auction_end",
"auction_start_datetime": "2023-07-16T19:00:00",
"buyer_premium_included": true
},
"title": "52 Topps Baseball #311 Mickey Mantle PSA EX-MT 6 - Newly Discovered Example",
"item_id": "113603",
"source_url": "https://lelands.com/past-auctions/2023-summer-classic/52-topps-baseball-311-mickey-mantle-psa-ex-mt-6-newly-discovered-example",
"detail_error": null,
"thumbnail_url": "https://auction.lelands.com/images_items/item_113603_1_328356.jpg"
},
{
"sale": {
"grade": "EX+ 5.5",
"title": "1952 Topps Baseball #311 Mickey Mantle Card PSA EX+ 5.5 - Newly Discovered Example",
"views": 2654,
"grader": "PSA",
"status": "sold",
"item_id": "113602",
"lot_url": "https://auction.lelands.com/bids/bidplace?itemid=113602",
"category": "Baseball and Trading Cards",
"currency": "USD",
"bid_count": 28,
"image_url": "https://auction.lelands.com/images_items/item_113602_1_330024.jpg",
"sale_date": "2023-02-11",
"image_urls": [
"https://auction.lelands.com/images_items/item_113602_1_330024.jpg",
"https://auction.lelands.com/images_items/item_113602_2_330025.jpg"
],
"lot_number": 6,
"description": "1952 Topps Baseball #311 Mickey Mantle first Topps card. Graded EX+ 5.5 by PSA. ...",
"price_basis": "sold_for_price_including_buyers_premium",
"price_label": "SOLD FOR $107,828.40",
"auction_name": "Winter Focus 2023",
"final_amount": 107828.4,
"starting_bid": 10000,
"sale_datetime": "2023-02-11T22:00:00",
"sale_timezone": "US Eastern (as displayed by the site)",
"currency_symbol": "$",
"currency_explicit": false,
"buyer_premium_rate": null,
"buyer_premium_basis": "site notice: 'Prices Shown Include Buyer's Premium.'",
"sale_date_precision": "auction_end",
"auction_start_datetime": "2023-01-29T19:00:00",
"buyer_premium_included": true
},
"title": "52 Topps Baseball #311 Mickey Mantle Card PSA EX+ 5.5 - Newly Discovered Example",
"item_id": "113602",
"source_url": "https://lelands.com/past-auctions/winter-focus-2023/52-topps-baseball-311-mickey-mantle-card-psa-ex-5-5-newly-discovered-example",
"detail_error": null,
"thumbnail_url": "https://auction.lelands.com/images_items/item_113602_1_330024.jpg"
}
],
"has_more": true,
"next_offset": 2,
"total_pages": 1,
"detail_failures": 0,
"results_per_source_page": 24
},
"status": "success"
}
}About the Lelands API
Endpoints and Data Coverage
The API exposes two endpoints covering Lelands' completed auction catalog. search_sales accepts a required query string (e.g. "1952 Topps Mantle PSA 5") and optional limit (1–5), offset, and sort parameters. Each response includes a results array of matched lots with title, thumbnail_url, source_url, item_id, and basic sale metadata, plus pagination fields: has_more, next_offset, and total_pages. The site indexes 24 lots per result page, and total_pages reflects that granularity.
Per-Lot Sale Records
get_lot accepts either a past-auction lot page URL (as returned in results[*].source_url) or the lot's bidding-page URL (returned as lot_url). The response includes status (sold, not_sold, ended_unknown, or open), final_price with currency (ISO code, typically USD), bid_count, views, category, and parsed grader and grade fields extracted from the lot title — for example grader: "PSA" and grade: "EX-MT 6". When a grading company or grade cannot be parsed from the title, those fields return null.
Pagination and Failure Handling
To page through results, pass the next_offset value from one search_sales response as the offset in the next call. The has_more boolean indicates whether additional results exist. detail_failures reports how many lots in a given page could not have their sale records loaded, so callers can decide whether to retry individual lots via get_lot. Limits outside 1–5 are rejected at the API level.
The Lelands API is a managed, monitored endpoint for lelands.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when lelands.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 lelands.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 realized prices for graded sports cards (e.g. PSA 9 rookie cards) across Lelands auction history
- Compare bid counts and final prices for similar memorabilia lots to estimate market demand
- Build a price guide for vintage baseball cards using
final_priceandgradefields from completed lots - Monitor auction results for a specific player or set by querying
search_saleswith targeted keywords - Verify whether a specific Lelands lot sold or passed by checking the
statusfield viaget_lot - Aggregate category-level auction data using the
categoryfield returned byget_lot - Research grading company distribution across sold lots by parsing
gradervalues from search results
| 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 Lelands have an official developer API?+
What does the `status` field in `get_lot` distinguish?+
status field returns one of four values: sold (the lot closed with a winning bid), not_sold (the lot ended without meeting reserve or receiving bids), ended_unknown (the lot closed but sale outcome could not be determined), or open (the lot is still active). Most lots in the past-auction archive return sold or not_sold.How are `grader` and `grade` fields populated?+
grader: "PSA" and grade: "EX-MT 6". When no recognized grading company or grade notation appears in the title, both fields return null. The parsing is title-dependent, so lots described without standard grading shorthand may not populate these fields.Does the API cover active (live) Lelands auctions?+
Is there a way to retrieve all lots from a specific named auction?+
search_sales endpoint searches across the full past-auction archive by keyword and returns results in the site's default ordering. You can fork this API on Parse and revise it to add a by-auction browsing endpoint.