Tradera Item & Category Scraper avatar

Tradera Item & Category Scraper

Pricing

Pay per usage

Go to Apify Store
Tradera Item & Category Scraper

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

Adam Berup

Maintained by Community

Actor 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

  1. Category pages (tradera.com/category/{id}) need a real browser — item cards are rendered client-side, confirmed empty in the raw HTML response. A PlaywrightCrawler loads the page, scrolls a few times, and collects every /item/... link it finds.
  2. Item pages (tradera.com/item/{catId}/{itemId}/...) are plain server-rendered HTML with the JSON-LD Product block always present, so a lightweight CheerioCrawler (no browser) fetches and parses each one directly. This is the fast, reliable, low-cost half of the run.
  3. Direct item URLs passed in startUrls skip category discovery entirely and go straight to phase 2.

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 maxCategoryPages input 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.price is 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 install
npx playwright install chromium
APIFY_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)

  1. npm install -g apify-cli (or npx apify-cli)
  2. 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.
  3. From this directory: apify push — builds and publishes this Actor to your Apify account.
  4. 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.