Auctionet API

Hundreds of European auction houses as one API, with no currency guessed and none converted

Auctionet API returns live Auctionet data as clean JSON for auctionet The primary endpoint, search, returns {query, status, total_available, page, page_count, currencies, results[]} — each result has item_id, url, title, description, condition,….

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a Auctionet endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
A
/auctionet/v1

4 active endpoints. Every call is 1 credit.

  • POST/auctionet/v1/search
  • POST/auctionet/v1/detail
  • POST/auctionet/v1/categories
  • POST/auctionet/v1/houses

What Auctionet endpoints does ReefAPI ship?

4 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

4 endpoints

search

1 cr

Search Auctionet's whole catalogue.

required
—
optional
query, status, country, house_id, category_id, sort, page, max_results, locale

detail

1 cr

One lot in full, live or from the archive, with its complete bid history (amount, bidder numb…

required
item
optional
locale

categories

1 cr

Auctionet's category tree.

required
—
optional
locale

houses

1 cr

Which auction houses, countries and categories hold lots matching a query, each with its lot…

required
—
optional
query, status, country, locale

Every parameter, every allowed value →

Auctionet API

4 of 4 endpoints, ready to run

View docs ↗

Search live or archived lots across every auction house on Auctionet, narrowed by country, house and category and sorted by ending time, price or recency. Each row carries the estimate, the starting bid, the current bid, the next valid bid and, for sold lots, the hammer price. Measured 2026-10-01: the unfiltered live set is 38,381 lots and query=rolex returns 31.

1 credit0 required · 8 optional
POST/auctionet/v1/search
oksample
{
  "ok": true,
  "data": {
    "query": "rolex",
    "status": "ended",
    "sort": "relevance",
    "filters": {
      "country": "SE",
      "house_id": null,
      "category_id": null
    },
    "total_available": 1455,
    "page": 1,
    "page_count": 50,
    "currencies": {
      "SEK": 50
    },
    "amounts_note": "Every amount is in that row's own `currency`; nothing is converted.",
    "results": [
      {
        "item_id": 512419,
        "url": "https://auctionet.com/en/512419-wristwatch-men-s-rolex-oyster-date-precision",
        "title": "WRISTWATCH, MEN'S, ROLEX, OYSTER DATE PRECISION.",
        "description": "Steel, Oyster bracelet, blue dial with date window, manual, green Rolex box, Diameter without crown ca. 34 mm.",
        "condition": "Traces of wear, functioned when testing.",
        "house": "Garpenhus Auktioner",
        "house_id": 4,
        "location": null,
        "lot_placement": null,
        "catalog_number": null,
        "category_id": 15,
        "category": "Wristwatches",
        "auction_id": 838293,
        "event_id": null,
        "auction_format": "online",
        "status": "ended",
        "outcome": "sold",
        "is_sold": true,
        "currency": "SEK",
        "estimate_low": 15000,
        "estimate_high": null,
        "starting_bid": 300,
        "current_bid": 15500,
        "final_bid": 15500,
        "bid_count": 14,
        "next_bid_amount": null,
        "reserve_amount": 12000,
        "reserve_met": true,
        "ends_at": "2016-10-31T13:27:16Z",
        "published_at": "2016-10-19T12:22:48Z",
        "image_count": 6,
        "images": [
          "https://images.auctionet.com/thumbs/hd_item_512419_615c1cf5e2.JPG",
          "https://images.auctionet.com/thumbs/hd_item_512419_21fa8bc56e.JPG",
          "https://images.auctionet.com/thumbs/hd_item_512419_7ab2077b70.JPG"
        ],
        "thumbnail": "https://images.auctionet.com/thumbs/w640_item_512419_615c1cf5e2.JPG"
      },
      {
        "item_id": 423460,
        "url": "https://auctionet.com/en/423460-wristwatch-rolex-oysterdate-precision-steel-1950s",
        "title": "WRISTWATCH, Rolex, Oysterdate Precision, Steel, 1950s.",
        "description": "Diameter of 32.5 mm. White embossed clock face with blued watch hands, index and indicators in polished steel. Mechanical clockwork. Rolex bracelet in black crocodile embossed leather. Rolex ref. 6294, serial no. 14,681th\n\nThe watch was serviced in February 2016, new gaskets new glass. Well functioning.",
        "condition": "The dial has small traces of corrosion by the index, bracelet worn.",
        "house": "Gästriklands Auktionskammare",
        "house_id": 71,
        "location": null,
        "lot_placement": null,
        "catalog_number": null,
        "category_id": 15,
        "category": "Wristwatches",
        "auction_id": 689325,
        "event_id": null,
        "auction_format": "online",
        "status": "ended",
        "outcome": "sold",
        "is_sold": true,
        "currency": "SEK",
        "estimate_low": 16000,
        "estimate_high": null,
        "starting_bid": 300,
        "current_bid": 21249,
        "final_bid": 21249,
        "bid_count": 19,
        "next_bid_amount": null,
        "reserve_amount": 13500,
        "reserve_met": true,
        "ends_at": "2016-05-23T08:53:05Z",
        "published_at": "2016-05-12T15:23:27Z",
        "image_count": 8,
        "images": [
          "https://images.auctionet.com/thumbs/hd_item_423460_465877b12a.JPG",
          "https://images.auctionet.com/thumbs/hd_item_423460_0b99cd0855.JPG",
          "https://images.auctionet.com/thumbs/hd_item_423460_8bbe034889.JPG"
        ],
        "thumbnail": "https://images.auctionet.com/thumbs/w640_item_423460_465877b12a.JPG"
      },
      {
        "item_id": 599567,
        "url": "https://auctionet.com/en/599567-damarmbandsur-rolex-oyster-perpetual-gold-and-steel",
        "title": "DAMARMBANDSUR, Rolex, Oyster Perpetual, gold and steel.",
        "description": "Ref 69173, Cal 2135, automatic, case # 69000A, serial number 2669211, diameter 26 mm. Certificates, case, external box, card holder, instruction manuals, all complete from the store, purchased from Douglas Krook AB, Malmo, Christmas 1994.",
        "condition": "Working, in very good condition.",
        "house": "Halmstads Auktionskammare EF",
        "house_id": 64,
        "location": null,
        "lot_placement": null,
        "catalog_number": null,
        "category_id": 15,
        "category": "Wristwatches",
        "auction_id": 1004608,
        "event_id": null,
        "auction_format": "online",
        "status": "ended",
        "outcome": "sold",
        "is_sold": true,
        "currency": "SEK",
        "estimate_low": 30000,
        "estimate_high": null,
        "starting_bid": 300,
        "current_bid": 24000,
        "final_bid": 24000,
        "bid_count": 9,
        "next_bid_amount": null,
        "reserve_amount": 22000,
        "reserve_met": true,
        "ends_at": "2017-04-09T17:18:00Z",
        "published_at": "2017-03-29T07:06:27Z",
        "image_count": 13,
        "images": [
          "https://images.auctionet.com/thumbs/hd_item_599567_d826776c5e.JPG",
          "https://images.auctionet.com/thumbs/hd_item_599567_35faf4afdb.JPG",
          "https://images.auctionet.com/thumbs/hd_item_599567_2aa1af43ee.JPG"
        ],
        "thumbnail": "https://images.auctionet.com/thumbs/w640_item_599567_d826776c5e.JPG"
      }
    ]
  }
}
Real response, fetched from the live endpoint with the parameters on the left — trimmed to the first few rows, with seller names left out. Press Try it for the untrimmed response.

How the Auctionet API works

Auctionet is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 321 engines.

02
Call
POST /auctionet/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 credit per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Read the currency off the row, because the lot page shows you a converted one

This is the trap that matters on Auctionet. The public lot page prints amounts converted into the visitor's currency, while the underlying data carries the house's original. On one lot the page showed an estimate of 301 with the currency marked USD, and the source gave 3,000 SEK. Deriving the currency from the country, or reading the page, would have published prices off by roughly elevenfold. Every amount here stays in that row's own currency and nothing is converted.

01categories
POST/auctionet/v1/categories
{"locale": "en"}

The category tree. A parent id is answered with its children, so take the ids from here rather than assuming.

02houses
POST/auctionet/v1/houses
{"country": "SE"}

The houses in that country with their ids and counts, for narrowing to a single auctioneer.

03search
POST/auctionet/v1/search
{"query": "rolex", "status": "ended", "country": "SE"}

The archive is where the price history lives: the same keyword gives 31 live lots and 1,999 ended ones. Sold lots carry the hammer price.

04detail
POST/auctionet/v1/detail
{"item": "5336678"}

The house's own description and condition report for one lot, live or archived.

Lots from hundreds of European houses in one feed, each in its own currency with the estimate, starting bid, current bid and hammer price where they exist, plus the house and category resolvers behind the filters.

request
curl -X POST https://api.reefapi.com/auctionet/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"rolex","max_results":10}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "auctionet",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

Sweden, Germany and the wider EU, in four currencies, with the archive far larger than the live set

Measured 2026-10-01 against the live gateway: 37 fixed cases run twice at 100%, 50 sampled lots per run for the field counts, plus an independent audit of 150 rows. Two of these lines go against us.

Many countries, many currencies

In a 150-row sample the currencies were SEK on 115 rows, EUR on 22, GBP on 10 and DKK on 3. Currency is read from each row, never derived from the country, and no amount is converted.

Always present

item_id, url, title, description, condition, house, house_id, category, category_id, currency, estimate_low, starting_bid, ends_at and status were filled on 100% of rows.

Conditional by nature

current_bid appears once a lot has a bid (60% of a live sample) and is null rather than zero before that; final_bid only exists on sold lots; next_bid disappears once bidding closes. These follow the source and are not filled in.

Against us: no endpoint takes a lot id directly

Auctionet has no by-id surface, so detail works by matching the id inside its own lot and makes a second call for archived lots. Verified on 8 of 8 lots, but it is a match rather than a lookup.

Against us: the house list is a facet, not a registry

houses is read from the site's own facet panel, which can be shortened. Completeness is only claimed when the counts add up to the total, and that is published as houses_cover_all rather than assumed.

Silently dropped filters are caught

An unknown category_id or company_id is answered by the site with its entire catalogue of 38,672 lots at HTTP 200. Enums are validated before the call, category ids against the live tree, and the returned rows are checked for the requested house and category afterwards.

Ended is not sold

In 200 archived rows, 168 had sold and 32 had not. The two are separate fields.

What people build with Auctionet

The jobs this data is most often used for.

4

endpoints

1

credit per call

01

Pricing and assortment teams use Auctionet to search Auctionet's whole catalogue.

02

Brand-protection teams use Auctionet to get one lot in full, live or from the archive, with its complete bid history (amount, bidder numb….

03

Retail analysts use Auctionet to get auctionet's category tree.

04

Catalog enrichment teams use Auctionet to get which auction houses, countries and categories hold lots matching a query, each with its lot….

What Auctionet data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 321 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/auctionet/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"rolex","max_results":10}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/auctionet/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "rolex",
  "max_results": 10
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Auctionet.

Get a free key →
What is the Auctionet API?▾

Auctionet API is a ReefAPI endpoint group for auctionet It returns live JSON through POST requests under /auctionet/v1.

Is the Auctionet API free to try?▾

Yes. ReefAPI starts with 1,000 free credits, no card required. Auctionet calls use the same shared credit balance as every other ReefAPI engine.

Do I need an Auctionet login or account?▾

No login to Auctionet is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Auctionet data?▾

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Auctionet API use?▾

Auctionet actions currently cost 1 credit per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Auctionet from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call auctionet actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Auctionet API an Auctionet scraper?▾

It is the managed alternative to a DIY Auctionet scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same auctionet back as clean JSON.

Why does my Auctionet scraper keep getting blocked?▾

Most Auctionet scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked calls are free.

26 More APIs APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Auctionet, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 320 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-01.