Tradera API

Swedish auctions as JSON, where a lot with no bids does not pretend to have one

Tradera API returns live Tradera data as clean JSON for tradera The primary endpoint, search, returns {query, status, total_available, page, page_count, currency, results[]} — each result has item_id, url, title, listing_type, is_auction,….

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

4 active endpoints. Every call is 1 credit.

  • POST/tradera/v1/search
  • POST/tradera/v1/detail
  • POST/tradera/v1/categories
  • POST/tradera/v1/seller

What Tradera 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 Tradera.

required
—
optional
query, category_id, status, listing_type, seller_type, county, sort, min_price, max_price, page, max_results

detail

1 cr

One Tradera listing in full.

required
item
optional
—

categories

1 cr

Tradera's category tree with a live listing count per category.

required
—
optional
query, category_id, status

seller

1 cr

A Tradera seller's public profile.

required
member_id
optional
page, max_results

Every parameter, every allowed value →

Tradera API

4 of 4 endpoints, ready to run

View docs ↗

Search Tradera's live lots or its archive by keyword, category, county, seller type and listing type. Auctions and fixed-price listings are returned as two clearly different shapes: an auction carries starting bid, current bid and bid count, a buy-now listing carries a buy-now price and nulls the auction fields. Measured 2026-10-01: query=rolex returns 423 live lots, 553 sold and 402 unsold.

1 credit0 required · 6 optional
POST/tradera/v1/search
oksample
{
  "ok": true,
  "data": {
    "query": "rolex",
    "status": "sold",
    "sort": "relevance",
    "filters": {
      "category_id": null,
      "listing_type": "any",
      "seller_type": "any",
      "county": null,
      "min_price": null,
      "max_price": null
    },
    "total_available": 554,
    "total_is_capped": false,
    "page": 1,
    "page_count": 80,
    "currency": "SEK",
    "listing_types": {
      "auction": 44,
      "auction_with_buy_now": 5,
      "fixed_price": 31
    },
    "amounts_note": "All amounts are in SEK. On an auction with no bids the figure is the STARTING price (`starting_bid`), not a bid — `current_bid` is null until someone bids.",
    "results": [
      {
        "item_id": 744723410,
        "url": "https://www.tradera.com/item/1000984/744723410/rolex-oyster-precision",
        "title": "Rolex Oyster Precision",
        "listing_type": "auction",
        "listing_type_raw": "Auction",
        "is_auction": true,
        "is_buy_now": false,
        "currency": "SEK",
        "starting_bid": null,
        "current_bid": 29325,
        "bid_count": 1,
        "reserve_met": null,
        "buy_now_price": null,
        "price_before_discount": null,
        "discount_percent": null,
        "is_ended": true,
        "is_sold": true,
        "final_price": 29325,
        "starts_at": "2026-08-11T07:37:07Z",
        "ends_at": "2026-08-18T17:37:07Z",
        "category_id": 1000984,
        "condition": "Gott skick",
        "is_authenticated_item": false,
        "accepts_offers": false,
        "is_promoted": true,
        "free_shipping": false,
        "shipping_options": [
          {
            "provider": "AlternativeDenmark",
            "cost": 116
          },
          {
            "provider": "Takeaway",
            "cost": 0
          }
        ],
        "shipping_cost_min": 0,
        "image": "https://img.tradera.net/images/249/655552249_86aca15b-6ade-4d0e-8bfb-4cf82a6ff46d.jpg",
        "images": [
          "https://img.tradera.net/images/249/655552249_86aca15b-6ade-4d0e-8bfb-4cf82a6ff46d.jpg",
          "https://img.tradera.net/images/249/655552249_451327b4-9bef-4aaf-acba-92c861570b04.jpg"
        ],
        "thumbnail": "https://img.tradera.net/multithumb/249/655552249_86aca15b-6ade-4d0e-8bfb-4cf82a6ff46d.jpg"
      },
      {
        "item_id": 735429525,
        "url": "https://www.tradera.com/item/191504/735429525/rolex-ask-med-rolex-planbok",
        "title": "Rolex-ask med Rolex-plånbok",
        "listing_type": "auction",
        "listing_type_raw": "Auction",
        "is_auction": true,
        "is_buy_now": false,
        "currency": "SEK",
        "starting_bid": null,
        "current_bid": 457,
        "bid_count": 2,
        "reserve_met": null,
        "buy_now_price": null,
        "price_before_discount": null,
        "discount_percent": null,
        "is_ended": true,
        "is_sold": true,
        "final_price": 457,
        "starts_at": "2026-06-08T08:01:08Z",
        "ends_at": "2026-06-15T18:01:08Z",
        "category_id": 191504,
        "condition": "Oanvänt",
        "is_authenticated_item": false,
        "accepts_offers": false,
        "is_promoted": false,
        "free_shipping": false,
        "shipping_options": [
          {
            "provider": "BringDenmark",
            "cost": 49
          }
        ],
        "shipping_cost_min": 49,
        "image": "https://img.tradera.net/images/913/648448913_a8a27350-fc5a-4115-9421-5476e9b5eeb8.jpg",
        "images": [
          "https://img.tradera.net/images/913/648448913_a8a27350-fc5a-4115-9421-5476e9b5eeb8.jpg",
          "https://img.tradera.net/images/913/648448913_17e153b0-a741-4736-8e37-494ecf3b8713.jpg"
        ],
        "thumbnail": "https://img.tradera.net/multithumb/913/648448913_a8a27350-fc5a-4115-9421-5476e9b5eeb8.jpg"
      },
      {
        "item_id": 749962810,
        "url": "https://www.tradera.com/item/191506/749962810/rolex-broschyrer",
        "title": "Rolex Broschyrer",
        "listing_type": "auction_with_buy_now",
        "listing_type_raw": "AuctionBin",
        "is_auction": true,
        "is_buy_now": true,
        "currency": "SEK",
        "starting_bid": 699,
        "current_bid": null,
        "bid_count": 0,
        "reserve_met": null,
        "buy_now_price": 700,
        "price_before_discount": null,
        "discount_percent": null,
        "is_ended": true,
        "is_sold": true,
        "final_price": 699,
        "starts_at": "2026-09-12T09:11:50Z",
        "ends_at": "2026-09-12T09:16:51Z",
        "category_id": 191506,
        "condition": "Gott skick",
        "is_authenticated_item": false,
        "accepts_offers": false,
        "is_promoted": false,
        "free_shipping": false,
        "shipping_options": [
          {
            "provider": "DHL",
            "cost": 49
          },
          {
            "provider": "SchenkerPrivpak",
            "cost": 49
          },
          {
            "provider": "PostNordParcel",
            "cost": 56
          }
        ],
        "shipping_cost_min": 49,
        "image": "https://img.tradera.net/images/365/659611365_4b5f2e7b-5085-461f-90ff-1a9df1deed92.jpg",
        "images": [
          "https://img.tradera.net/images/365/659611365_4b5f2e7b-5085-461f-90ff-1a9df1deed92.jpg"
        ],
        "thumbnail": "https://img.tradera.net/multithumb/365/659611365_4b5f2e7b-5085-461f-90ff-1a9df1deed92.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 Tradera API works

Tradera 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 /tradera/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.

A bold number on an auction is the starting bid until somebody bids

Two lots, measured on the same day: one showed 60,000 SEK with zero bids and the listing's own opening bid was also 60,000, so nobody had bid; another showed 18,500 with 48 bids and an opening bid of 500, so that figure was the live bid. Publishing the first as a current bid would have been wrong on 61 of the 80 auction rows in that sample. Here current_bid is filled only when bid_count is above zero, and the figure otherwise appears as starting_bid.

01categories
POST/tradera/v1/categories
{"query": "rolex"}

The categories that actually carry the thing you are after, with their ids.

02search
POST/tradera/v1/search
{"query": "rolex", "status": "sold"}

The archive is where price history lives. sold and unsold are separate statuses; the verdict is read from each row, so a dropped filter cannot turn an unsold lot into a sale.

03detail
POST/tradera/v1/detail
{"item": 752099400}

One lot in full. Its own opening bid and leading bid are what the search row was checked against.

04seller
POST/tradera/v1/seller
{"member_id": 2499738}

Everything one seller has listed.

Swedish auction and buy-now listings in one feed, each with the fields its own sale type actually has, prices in SEK, and the sold/unsold verdict taken from the row rather than from the filter that was asked for.

request
curl -X POST https://api.reefapi.com/tradera/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": "tradera",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

Sweden only, in kronor, and every column below 100% is a field that sale type does not have

Measured 2026-10-01 against the live gateway: 38 fixed cases run twice at 38/38, 400 rows for the field counts with the promoted and first-page rows deliberately included. One of these lines goes against us.

One country, one currency

Sweden, prices in SEK. Tradera does not publish a per-row currency, and nothing is converted.

Always present

item_id, url, title, listing_type, currency, starts_at, ends_at, category_id, image, is_ended, free_shipping and shipping_cost_min on 100% of 400 rows. condition on 92%.

Structurally conditional, not missing

buy_now_price 60% = exactly the buy-now rows; bid_count 55.8% = exactly the auction rows; starting_bid and current_bid split by whether a bid exists; is_sold and final_price only on closed rows. A pure auction has no buy-now price and Tradera prints zero there, which comes back null.

Checked against a second witness

24 rows were re-read from their own listing pages and compared on opening bid, leading bid and fixed price: 24 of 24 matched. That check is what caught a buy-now price being dropped on one listing type.

Against us: the source swallows unknown filter values

An unrecognised item type, sort or county is accepted with HTTP 200 and simply ignored, and asking for Ended silently returns the sold set. Every enum is therefore validated against Tradera's own published options before the call, and the returned rows are checked afterwards.

Ceilings

80 rows a page, 10,000 lots per query, last page 125. Measured, and enforced instead of returning a page that looks empty.

What people build with Tradera

The jobs this data is most often used for.

4

endpoints

1

credit per call

01

Pricing and assortment teams use Tradera to search Tradera.

02

Brand-protection teams use Tradera to get one Tradera listing in full.

03

Retail analysts use Tradera to get tradera's category tree with a live listing count per category.

04

Catalog enrichment teams use Tradera to get a Tradera seller's public profile.

What Tradera 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/tradera/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/tradera/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 Tradera.

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

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

Is the Tradera API free to try?▾

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

Do I need a Tradera login or account?▾

No login to Tradera 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 Tradera 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 Tradera API use?▾

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

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

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

Is the Tradera API a Tradera scraper?▾

It is the managed alternative to a DIY Tradera 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 tradera back as clean JSON.

Why does my Tradera scraper keep getting blocked?▾

Most Tradera 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 Tradera, 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.