Tradera Sold Prices & New Listing Alerts avatar

Tradera Sold Prices & New Listing Alerts

Pricing

from $0.75 / 1,000 listing returneds

Go to Apify Store
Tradera Sold Prices & New Listing Alerts

Tradera Sold Prices & New Listing Alerts

Tradera sold prices: ended auctions with final price and bid count, plus live and unsold listings, one row per listing. Optional price summary per search. Monitor a search and get new-listing or price-below alerts in Slack, Discord or Telegram. No login or key; empty searches are free.

Pricing

from $0.75 / 1,000 listing returneds

Rating

0.0

(0)

Developer

Adriana Voss

Adriana Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Type a search, get what Swedish buyers actually paid. The actor reads Tradera's search pages and returns one row per listing: the final sold price in SEK, the number of bids, the end date, the listing type, condition, shipping and seller handle. Switch on the summary and each search also gets one extra row with the median, quartiles, lowest and highest price. Switch on monitoring and it flags new listings or listings priced below your limit and posts them to Slack, Discord or Telegram.

It covers sold, unsold and live listings, so the same actor answers "what does this sell for?", "what did not sell?" and "what was just listed?".

Who uses this

  • Resellers and flippers who price an item from real sold auctions before they buy or list it.
  • Bargain hunters and deal channels who want a message the moment a matching item is listed or drops under their limit.
  • Collectors, dealers and appraisers who track what a model, set or edition fetches over time, in a sheet or an n8n / Make / Clay workflow.

Try it in 30 seconds

Press Start with the pre-filled input. It reads the sold iphone 13 listings on Tradera and returns 50 rows plus one price summary:

{ "searches": ["iphone 13"], "mode": "sold", "maxItems": 50, "includeCompsSummary": true }

Write your own lines, one search per line:

iphone 13
lego star wars 75192
https://www.tradera.com/search?q=iphone+13

A pasted Tradera search link is read for its search words only; price, category and dates come from the settings.

What you get

One item row per listing:

FieldMeaning
itemId, url, titleTradera's item number, the listing link and the seller's title.
priceSekSold: the final price paid (a buy-now listing sold through an accepted offer shows the accepted price). Unsold and live: the last or current price.
bids, itemTypeNumber of bids; auction, auction-buy-now, buy-now or shop-item.
listingStatussold, unsold or live.
startDate, endDateWhen the listing started and ended or ends (UTC).
condition, shippingSek, categoryIdCondition in Tradera's wording, the lowest shipping price (0 = free, empty = pick-up only), and the category number.
sellerAlias, sellerIsCompanyThe seller's public handle, and whether the seller is a company.
changeType, previousPriceSek, alertTypeMonitoring fields (empty unless you turn monitoring on).

One summary row per search, when you ask for it: count, soldCount, medianSek, p25Sek, p75Sek, lowSek, highSek, medianBids, newestEndDate, and priceBasis (sold-price in sold mode, last-price for unsold, current-price for live, so a live summary is never mistaken for sale prices). It is worked out from the listing rows you receive, so a price filter or keyword filter changes it.

Settings, each one verified to change the result: mode (sold, live, unsold), categoryId, minPrice / maxPrice, sortBy (best match or newest listed), maxItems. Applied by the actor after reading: endedAfter, the final-price check on minPrice / maxPrice, the keyword filters and the columns choice.

Example: sold prices, a summary and a Discord alert

Daily run over live listings that returns only what is new or changed, and posts a listing to a Discord channel the first time it shows up at 1,500 SEK or less:

{
"searches": ["iphone 13"],
"mode": "live",
"maxItems": 100,
"maxPrice": 3000,
"deltaMode": true,
"deltaName": "iphone-13-live",
"skipFirstRun": true,
"alertOnChangeOnly": true,
"alertOn": "price-below",
"alertBelowSek": 1500,
"notifyUrl": "<your Discord webhook>"
}

And the sold-price version, a one-off price check you can paste into a sheet:

{ "searches": ["lego star wars 75192"], "mode": "sold", "maxItems": 200, "endedAfter": "2026-08-01", "includeCompsSummary": true }

Monitoring: a new-listing alert in three steps

  1. Turn on monitoring and name the watchlist. Tick Remember listings between runs, type a Watchlist name, tick Only return rows that changed (a repeat run writes no row and costs nothing) and Seed silently (the first run only records what is there, so alerts start from the second run).
  2. Schedule it. Save the input as an Apify Task and add a daily or hourly Schedule. Each run compares every listing with the previous run of the same watchlist and search: changeType is new, price-drop, price-rise or unchanged. In live mode, newest listings come first, so a short maxItems is enough to catch everything new. In sold mode, "new" means newly sold.
  3. Send it somewhere. Paste a Slack or Discord webhook (or a Telegram bot link) into Send alerts to. Each new-listing or price-below row arrives as one message with title, price, bids, end date and the Tradera link. For n8n or Make, leave the format on JSON, or read the dataset rows where alertType is set.

Alerts are only sent for rows that were actually billed, messages are never billed, and a failed message never fails the run (the row's notifyErrors says why). A run posts at most 20 messages by default, then one "more alerts" message.

Limits, stated plainly

  • Sweden, in SEK. Tradera's Swedish site and prices. Other currencies are not converted.
  • Ended auctions as the search shows them. The sold list is Tradera's own "Sålda" filter. The actor does not open individual listings, so there are no descriptions, photos or bid histories, and no bidder information of any kind.
  • Up to 10,000 listings per search, 25 pages read. Tradera shows at most 125 pages of 80 listings. This actor reads at most 25 pages (2,000 listings) per search line; a strict date or price filter that rejects most of a long list can use up the pages before maxItems is reached.
  • Best match is not stable. Tradera re-ranks between page requests, so a long best-match list can repeat or skip a listing; repeats are removed. Use sortBy: newest when completeness matters.
  • Price filters follow the final price. Tradera filters on the listed price, the actor then checks the final price too, so a sold row satisfies both.
  • Date filters are UTC. endedAfter compares the end date in UTC; Swedish time is 1 to 2 hours ahead.
  • Searches only. One request a second, search pages only; nothing is logged in, bought, bid on or messaged.
  • Misses are free. Not found, blocked, challenge page, layout change: nothing is charged.

How to use

  1. In the Apify Console. Open the actor page and click Start — the searches field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~tradera-sold-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"searches":["iphone 13"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

Input

{
"searches": [
"iphone 13"
]
}

One search per line: keywords such as iphone 13, or a pasted tradera.com search link (only its search words are used; set price, category and dates below). Each search returns one row per listing. Accepted formats: iphone 13, lego star wars 75192, https://www.tradera.com/search?q=iphone+13.

Output

One row per listing, for example:

queryfoundstatusrowTypeitemIdurltitlecategoryIdpriceSekbuyNowSekbidsstartDateendDateitemTypelistingStatusconditionshippingSeksellerAliassellerIsCompanycheckedAtchangeTypepreviousPriceSekalertTypenotifyErrorspriceBasiscountsoldCountmedianSekp25Sekp75SeklowSekhighSekmedianBidsnewestEndDatescrapedAt
iphone 13trueOK <category id><price (sek)><buy-now price (sek)><shipping from (sek)><previous price (sek)><summary: price basis><summary: listings><summary: sold><summary: median (sek)><summary: 25th percentile (sek)><summary: 75th percentile (sek)><summary: lowest (sek)><summary: highest (sek)><summary: median bids><summary: newest end date>1970-01-01T00:00:00.000Z

A search that finds nothing comes back as one row with "found": false and is never charged.

Pricing

Pay-per-event. A flat per-run fee covers session/proxy warmup; you're billed per item only when data is actually found and returned — see .actor/pay_per_event.json for exact prices. A miss is never charged.

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~tradera-sold-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"searches":["iphone 13"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~tradera-sold-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"searches":["iphone 13"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~tradera-sold-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"searches":["{{search}}"]}, mapping the row's search into the searches array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Tradera Sold Prices & New Listing Alerts | Apify" — the agent will find and run this actor.