RR Auction APIrrauction.com ↗
Access RR Auction lot data via API. Search current and past auction lots by keyword, retrieve titles, bid counts, prices, and grading details.
What is the RR Auction API?
The RR Auction API provides 2 endpoints for querying auction lot data from rrauction.com, covering both active and completed sales. Use search_lots to find lots by keyword across current or past auctions, returning up to 5 summaries per page with lot identifiers, status labels, and amounts. Use get_lot to fetch a single lot's full detail record, including bid count, grading provenance, subtitle, image URL, and normalized status.
curl -X GET 'https://api.parse.bot/scraper/1b54b0f1-cd4f-464a-a1c8-02dbbcd0e047/search_lots?query=Lincoln&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 rrauction-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: RR Auction SDK — search lots, drill into detail, bounded iteration."""
from parse_apis.rrauction_com_api import RRAuction, LotStatusFilter, LotNotFound
client = RRAuction()
# Search past-auction lots for a keyword, capped at 5 total results.
for summary in client.lot_summaries.search(
query="Lincoln", status=LotStatusFilter.COMPLETED, limit=5
):
print(summary.title, summary.final_price, summary.estimate_text)
# Drill into the first result's full detail page.
hit = client.lot_summaries.search(query="Lincoln", status=LotStatusFilter.COMPLETED, limit=1).first()
if hit is not None:
try:
lot = hit.details()
except LotNotFound:
print("Lot no longer available")
else:
print(lot.title)
print(lot.description[:120])
print(f"Status: {lot.status} Bids: {lot.bid_count} Final: {lot.final_price}")
if lot.grading.grader:
print(f"Graded by {lot.grading.grader}: {lot.grading.grade}")
print("exercised: lot_summaries.search / LotSummary.details")
Searches RR Auction lots by title keyword in either current (active) or past (completed) auctions and returns one bounded page of lot summaries, at most 5 per call. Paging is a true offset over the site's result stream: `page` (default 1) and `limit` (1-5, default 5) select rows offset (page-1)*limit; `has_more` reports whether more rows exist and `total_matching` is the site's own match count for the chosen status tab. Each row carries the native 15-digit `lot_id` (also split into `item_id`, `auction_id`, `lot_number`), exact title and URL, an explicit `status` (active | ended | sold) derived only from the site's own labels (`status_source_label` is the card's end/closed text, `amount_label` is the price role label such as 'Now At', 'Starting Bid' or 'Sold For'), and role-separated amounts `current_bid` / `opening_bid` / `final_price` (only the one matching `amount_label` is set; others are null). `currency` is null on this endpoint because the cards show only a '$' symbol (`currency_symbol`); `bid_count` is present only for active lots; `includes_buyers_premium` is true when the card marks the price '(w/BP)'; `auction_label` (auction number and date) appears only on completed-lot cards. One site request per call. An empty `items` array with total_matching 0 is a valid result for a query with no matches.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based result page; combined with limit as a row offset. |
| limit | integer | Rows per page, 1 to 5; values outside that range are rejected. |
| queryrequired | string | Title keyword(s) to search for. |
| status | string | Which auction tab to search: current auctions or past (sold/closed) auctions. |
{
"type": "object",
"fields": {
"page": "requested page",
"items": "array of lot summaries: lot_id, item_id, auction_id, lot_number, title, url, status, status_source_label, amount_label, currency (null), currency_symbol, includes_buyers_premium, bid_count (nullable), estimate_text, auction_label (nullable), image_url, current_bid, opening_bid, final_price (nullable numbers)",
"limit": "requested limit",
"query": "echo of the search keyword",
"has_more": "true when rows exist beyond this page",
"status_filter": "requested status filter (active | completed)",
"total_matching": "site-reported number of matching lots for this tab",
"status_filter_source_label": "the site's tab label for that filter"
},
"sample": {
"data": {
"page": 2,
"items": [
{
"url": "https://www.rrauction.com/auctions/lot-detail/351690307490008-abraham-lincoln-document-signed-as-president-appointing-a-collector-of-internal-revenue/",
"title": "Abraham Lincoln Document Signed as President, Appointing a Collector of Internal Revenue",
"lot_id": "351690307490008",
"status": "sold",
"item_id": "3516903",
"currency": null,
"bid_count": null,
"image_url": "https://cdn.rrauction.com/auction/749/preview/3516903_3.jpg?w=380",
"auction_id": "749",
"lot_number": "8",
"current_bid": null,
"final_price": 9983,
"opening_bid": null,
"amount_label": "Sold For",
"auction_label": "Auction #749 - September 16, 2026",
"estimate_text": "$4,000+",
"currency_symbol": "$",
"status_source_label": "Closed",
"includes_buyers_premium": true
}
],
"limit": 3,
"query": "Lincoln",
"has_more": true,
"status_filter": "completed",
"total_matching": 1178,
"status_filter_source_label": "Past Auctions Lots"
},
"status": "success"
}
}About the RR Auction API
Searching Lots
The search_lots endpoint accepts a required query string (title keywords) and an optional status filter to target either active or completed auctions. Results are paged with page (1-based) and limit (1–5 rows; values outside that range are rejected). Each item in the returned items array includes lot_id, item_id, auction_id, lot_number, title, url, status, status_source_label, amount_label, and currency. The response also returns total_matching (the site-reported count for the selected tab), has_more (boolean), and status_filter_source_label (the site's own tab name for the filter you chose).
Fetching Lot Detail
The get_lot endpoint takes a lot_url — the native https://www.rrauction.com/auctions/lot-detail/... URL returned by search_lots — and returns the full detail record for that lot. Key fields include title, subtitle (the italic sub-headline, nullable), status (active, ended, or sold), status_source_label, bid_count, currency, image_url, and a structured grading object with grader, grade, qualifier, authenticator, and source. Grading fields are all null unless the lot description explicitly states them. lot_id is the 15-digit native index; the first 7 digits form item_id.
Pagination and Coverage
Pagination in search_lots is a true row offset: page and limit together determine which slice of the site's result stream is returned. With a maximum of 5 rows per call, iterating through large result sets requires multiple requests. The has_more flag tells you whether additional rows exist beyond the current page. Both current-auction and past-auction tabs are accessible via the status parameter, making the endpoint usable for historical price research as well as live bidding discovery.
The RR Auction API is a managed, monitored endpoint for rrauction.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when rrauction.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 rrauction.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 sold prices for specific autographs or memorabilia by searching past auctions with a keyword and reading
amount_label. - Monitor active RR Auction listings for a given collectible category by filtering
statusto current auctions. - Retrieve grading and authentication details (
grader,grade,authenticator) for a specific lot to verify provenance. - Build a price history index by paginating through completed lots and recording
amount_labelandlot_idover time. - Check
bid_counton active lots to gauge bidding interest before a sale closes. - Cross-reference
lot_numberandauction_idto group lots from the same auction event. - Pull
image_urlandtitlefor a gallery of notable historical items currently available on RR Auction.
| 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 RR Auction offer an official developer API?+
What does `status` mean in the `get_lot` response, and when is a lot marked `sold`?+
status is normalized to one of three values: active (bidding open), ended (auction closed but not explicitly labeled as sold), or sold (the site's page labels the price as 'Sold For'). The site's original bidding-status word is preserved separately in status_source_label, so you have both the normalized value and the exact label from the lot page.How many results can I retrieve per `search_lots` call, and how does paging work?+
limit accepts 1 to 5 rows per call; values outside that range are rejected. page is 1-based and, combined with limit, selects a row offset into the site's result stream. Use the has_more boolean to determine whether to fetch the next page. total_matching gives the site-reported count for the active tab so you can estimate total pages upfront.Does the API expose bidder identities, individual bid history, or pre-sale estimates?+
Is grading data available for every lot?+
grading object fields (grader, grade, qualifier, authenticator, source) are all null unless the lot's description explicitly states grading or authentication information. Many lots — particularly documents, photographs, and ungraded memorabilia — will return a fully null grading object. You can fork this API on Parse and revise the parser to extract additional provenance fields if the lot description format changes.