Tradera Item & Category Scraper
Pricing
Pay per usage
Tradera Item & Category Scraper
Scrapes item data (title, price, condition, image, SKU) from Tradera.se category and item pages. Reads Tradera's own published structured product data instead of fragile page-scraping, for higher reliability than existing Tradera Actors.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Adam Berup
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Apify Actor. Scrapes item data (title, price, currency, condition, image, SKU, availability) from Tradera.se, Sweden's largest auction/marketplace site, given category page URLs and/or direct item page URLs.
Why this exists
The existing Tradera Actor on the Apify Store (crawlerbros/tradera-scraper) runs at roughly a 73.5% success rate — genuinely broken on about 1 in 4 runs. This Actor takes a different, more robust approach: instead of scraping Tradera's internal Next.js page structure (which changes silently), it reads the schema.org/Product JSON-LD block Tradera publishes as static, server-rendered metadata on every item page for SEO. That block is present even with JavaScript disabled and is far less likely to break silently than scraping rendered DOM text.
Verified live (23 sep 2026) against three different item categories (vintage goods, electronics, clothing): 8/8 items scraped cleanly in an end-to-end local test run.
How it works
- Category pages (
tradera.com/category/{id}) need a real browser — item cards are rendered client-side, confirmed empty in the raw HTML response. APlaywrightCrawlerloads the page, scrolls a few times, and collects every/item/...link it finds. - Item pages (
tradera.com/item/{catId}/{itemId}/...) are plain server-rendered HTML with the JSON-LDProductblock always present, so a lightweightCheerioCrawler(no browser) fetches and parses each one directly. This is the fast, reliable, low-cost half of the run. - Direct item URLs passed in
startUrlsskip category discovery entirely and go straight to phase 2.
Legal / robots.txt
Checked live 23 sep 2026: tradera.com/robots.txt disallows /search?*, /ajax/*, and every legacy /category/*.asp* path. This Actor never touches any of those — it only requests plain /category/{id} pages (not disallowed) and plain /item/{catId}/{itemId}/... pages (not disallowed; only /item/bidding/* and /item/*/bidhistory are excluded, and this Actor doesn't touch those either).
Known limitations (v0.1)
- No multi-page category pagination. Live testing found no numbered pager or "load more" control on any sampled category — item lists appear to load fully on one page (with scrolling). The
maxCategoryPagesinput field is reserved for this but currently has no effect. - No bid count / auction end time / seller name. These exist in Tradera's internal React payload but only as a messy, repeated, hard-to-target blob (not a clean JSON block like the Product data) — deliberately left out of v0.1 rather than shipping a fragile regex guess. Worth revisiting once there's a specific paying use case that needs it.
offers.priceis whatever price Tradera's own JSON-LD reports — for an active auction this is typically the current bid, not a guaranteed final sale price. Not verified against every possible listing state (e.g. ended auctions, buy-it-now-only listings).
Local development
npm installnpx playwright install chromiumAPIFY_LOCAL_STORAGE_DIR="$(pwd)/storage" node src/main.js
Put a test input at storage/key_value_stores/default/INPUT.json, e.g.:
{"startUrls": ["https://www.tradera.com/category/1001026"],"maxItems": 10}
Deploying (not yet done — needs an Apify account)
npm install -g apify-cli(ornpx apify-cli)apify login— needs an Apify account + API token from console.apify.com. Account creation, KYC (ID + payout details) and ToS acceptance are a personal step, not something to automate.- From this directory:
apify push— builds and publishes this Actor to your Apify account. - In the Apify Console, set pricing to Pay-Per-Event using
.actor/pay_per_event.json(already defined: $0.01 flat per run + $0.004 per item scraped) and publish to the Store.
Pricing (.actor/pay_per_event.json)
actorStartGb— $0.01, charged once per run.item-scraped— $0.004, charged once per item successfully scraped and returned.