Tradera Sold Prices & New Listing Alerts
Pricing
from $0.75 / 1,000 listing returneds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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 13lego star wars 75192https://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:
| Field | Meaning |
|---|---|
itemId, url, title | Tradera's item number, the listing link and the seller's title. |
priceSek | Sold: 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, itemType | Number of bids; auction, auction-buy-now, buy-now or shop-item. |
listingStatus | sold, unsold or live. |
startDate, endDate | When the listing started and ended or ends (UTC). |
condition, shippingSek, categoryId | Condition in Tradera's wording, the lowest shipping price (0 = free, empty = pick-up only), and the category number. |
sellerAlias, sellerIsCompany | The seller's public handle, and whether the seller is a company. |
changeType, previousPriceSek, alertType | Monitoring 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
- 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).
- 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:
changeTypeisnew,price-drop,price-riseorunchanged. In live mode, newest listings come first, so a shortmaxItemsis enough to catch everything new. In sold mode, "new" means newly sold. - Send it somewhere. Paste a Slack or Discord webhook (or a Telegram bot link) into Send alerts to. Each
new-listingorprice-belowrow 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 wherealertTypeis 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
maxItemsis 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: newestwhen 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.
endedAftercompares 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
- In the Apify Console. Open the actor page and click Start — the
searchesfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - 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"]}'
- 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:
| query | found | status | rowType | itemId | url | title | categoryId | priceSek | buyNowSek | bids | startDate | endDate | itemType | listingStatus | condition | shippingSek | sellerAlias | sellerIsCompany | checkedAt | changeType | previousPriceSek | alertType | notifyErrors | priceBasis | count | soldCount | medianSek | p25Sek | p75Sek | lowSek | highSek | medianBids | newestEndDate | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| iphone 13 | true | OK | <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.