Autohero Cars Scraper — All Europe avatar

Autohero Cars Scraper — All Europe

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Autohero Cars Scraper — All Europe

Autohero Cars Scraper — All Europe

Scrape used-car listings from Autohero across all 10 EU storefronts. Get structured rows: make, model, trim, price, mileage, power, fuel, transmission, emissions, accidents, service history, dealer location, and image — straight from Autohero's own catalog API.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

15

Total users

14

Monthly active users

20 days ago

Last modified

Share

Scrape used-car listings from Autohero (AUTO1 Group's B2C marketplace) across all 10 European storefronts — make, model, trim, price, monthly finance, mileage, power, fuel, transmission, drivetrain, emissions, accident & damage counts, service-book status, previous owners, dealer branch location, image, and the direct car URL. One flat row per car, straight from Autohero's own catalog API.

How the Autohero Cars Scraper works

Why this actor

Autohero sells inspected used cars online in 10 European markets — Germany, Austria, Spain, France, Belgium (FR + NL), Italy, Netherlands, Poland, and Sweden — a combined live inventory of ~23,000 cars. This actor pulls them all as clean structured rows:

  • All 10 storefronts from one actor — pick the locales you want; each is an independent country catalog with prices in the local currency (EUR / SEK / PLN).
  • Autohero's own catalog API — no HTML scraping, no anti-bot, no fingerprinting. We call the same endpoint the Autohero website uses, so the data arrives pre-structured.
  • ~40 fields per car in one pass — the search response carries everything, so there's no slow per-car detail fetch.
  • Condition signals competitors miss — accident count, damage count, previous-owner count, service-book status, last-service date. Autohero inspects every car and exposes this; we surface it.
  • Decoded, not coded — fuel type, transmission, and emission class come back as integer codes from the API; we translate them to readable labels (Petrol / Diesel / Electric / Hybrid, Manual / Automatic / Dual-clutch, EURO 5 / 6 / 6d-TEMP) while keeping the raw code too.
  • Mixed input — scrape a full locale catalog, or paste direct car URLs to grab specific vehicles.

Use cases

  • Used-car price intelligence — track asking prices by make/model/year/mileage across 10 markets; spot cross-border arbitrage (a model cheaper in PL than DE).
  • Dealer & remarketing analytics — monitor Autohero's inventory mix, ageing, and pricing as a market signal.
  • Automotive market research — fuel-mix shift (EV/hybrid share), emission-class distribution, average mileage by segment.
  • Lead & inventory feeds — pipe structured car rows into your own marketplace, comparison site, or valuation model.
  • Condition-aware sourcing — filter the dataset for low-accident, full-service-history cars.

Input

FieldTypeRequiredNotes
localesstring[]noStorefronts to scrape in full. Any of de, at, es, fr, fr-be, nl-be, it, nl, pl, se. Defaults to ["de"] (largest catalog, ~7,400 cars).
startUrlsstring[]noOptional direct car URLs (https://www.autohero.com/de/{brand-model}/id/{uuid}/). Each scrapes one car. Any /{locale}/... URL also adds its storefront to the locale set.
maxItemsintegernoMax car rows per locale. 3 locales × maxItems: 500 → up to 1,500 rows. Each row is one paid dataset item. Default 1000. Free-tier users are capped at 100 total.
pageLimitintegernoCars per API request (1–100). Default 100.
maxConcurrencyintegernoParallel API calls. No anti-bot, so 4–8 is comfortable. Default 6.
maxRequestRetriesintegernoPer-request retry budget on transient errors. Default 5.
proxyobjectnoApify Residential (any country) recommended. Direct + datacenter also work. Override the country if a locale returns empty.

Example input

{
"locales": ["de", "fr", "it"],
"maxItems": 500,
"pageLimit": 100,
"maxConcurrency": 6,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

How it works

  1. Resolve the plan — your locales (+ any locales implied by pasted URLs) become catalog jobs; direct car URLs become single-car lookups.
  2. Page 0 per locale — a single paginated request to Autohero's structured catalog feed (scoped by country) returns the first 100 cars and the total count.
  3. Parallel pagination — remaining offsets are fetched with a sliding window (limit + offset), capped by your maxItems.
  4. Map + dedupe + emit — each ad is mapped to a flat row, deduped globally by vehicleId, and pushed to the dataset. Direct car URLs are fetched by id.

Output schema

Every row has rowType: "car". ~40 fields per car. Real sample (Sweden storefront):

{
"rowType": "car",
"vehicleId": "a1b354eb-ddd9-4602-b621-f870d459c792",
"stockNumber": "GW78790",
"retailAdId": "d5bf29eb-7cdf-4053-9011-6e77e9998f6b",
"locale": "se",
"countryCode": "SE",
"detailUrl": "https://www.autohero.com/se/subaru-forester/id/a1b354eb-…/",
"title": "Subaru Forester 2.0 e-Boxer",
"make": "Subaru",
"model": "Forester",
"trim": "2.0 e-Boxer",
"builtYear": 2023,
"firstRegistrationYear": 2024,
"firstRegistration": "20240108T000000.000Z",
"mileageKm": 26300,
"price": { "amount": 380000, "currency": "SEK" }, // offer price
"dealerSalesPrice": { "amount": null, "currency": null }, // when present
"monthlyPayment": { "amount": 4042, "currency": "SEK", "financingMonths": 36 },
"fuelType": "Petrol", "fuelTypeCode": 1039,
"transmission": "Automatic", "transmissionCode": 1139,
"driveTrain": "all-wheel-drive",
"powerKw": 110, "powerHp": 150,
"engineCcm": 1995,
"acceleration0to100": 11.8,
"isPluginHybrid": false,
"fuelConsumption": { "city": 7.4, "highway": 6.4, "combined": 8.1 },
"co2Value": 185,
"emissionClass": "EURO 6", "emissionClassCode": 3532,
"emissionSticker": null,
"vatType": "VAT deductible",
"previousOwners": 1,
"accidents": 0,
"damages": 2,
"hasServiceBook": false,
"lastServiceOn": "20260327",
"dealer": { "branchId": 0, "name": "...", "city": "...", "zipcode": "...", "street": "..." },
"mainImageUrl": "https://img-eu-c1.autohero.com/img/…/640x480-….jpg",
"firstPublishedAt": "…", "publishedAt": "…",
"retailAdState": "imported-to-retail",
"isComingSoon": false,
"scrapedAt": "2026-05-31T…Z"
}

Key output fields

FieldMeaning
vehicleIdAutohero's stable car UUID — the dedupe key.
stockNumberHuman-readable stock code (e.g. GW78790).
price / dealerSalesPrice / monthlyPaymentOffer price, dealer sales price (when shown), and financing instalment — all in the locale's currency.
mileageKm, powerKw / powerHp, engineCcmOdometer + power (kW and computed hp) + displacement.
fuelType / transmission / emissionClassDecoded labels; raw codes kept in *Code fields.
accidents / damages / previousOwners / hasServiceBookCondition & history signals from Autohero's inspection.
dealerBranch handling the car — name, city, zip, street.
detailUrl / mainImageUrlCanonical public car page + lead image.

FAQ

Which markets are covered? All 10 Autohero storefronts: Germany (de), Austria (at), Spain (es), France (fr), Belgium French (fr-be), Belgium Dutch (nl-be), Italy (it), Netherlands (nl), Poland (pl), Sweden (se). Prices come back in each market's currency.

How many cars are there? ~23,000 across all locales at the time of writing (DE ~7,400; IT ~3,500; FR ~3,400; ES ~2,500; BE ~1,900; AT ~950; NL ~670; PL ~670; SE ~500). Inventory changes daily.

Why is maxItems per locale, not per run? So multi-country runs are predictable: ["de","fr","it"] with maxItems: 500 gives up to 500 from each (1,500 total), not 500 split arbitrarily.

Why are some fields null? Autohero doesn't publish every field for every car — dealerSalesPrice, emissionSticker, previousOwners, and a few specs are populated for most but not all listings. We never synthesize; absent data is null. The raw fuelTypeCode / transmissionCode / emissionClassCode are always present even when a new code hasn't been added to the decode map yet.

Can I scrape one specific car? Yes — paste its URL (https://www.autohero.com/de/{brand-model}/id/{uuid}/) into startUrls. It's fetched by id and emitted as one row.

What does each dataset-item charge cover? One car row with all ~40 fields. maxItems is per locale, so a maxItems: 100 run with 3 locales = up to 300 charges. The Apify Store pricing event is apify-default-dataset-item.

Support

  • Bugs / feature requests — open an issue on the GitHub repo.
  • Custom exports / extra fields / filters (make, price band, year) — drop a note via the Apify Store contact form.
  • Other actors — see my Apify Store profile for the rest of the catalog.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Autohero, AUTO1 Group SE, or any of their subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper extracts only publicly visible car listings served by Autohero's own public storefront API — no login, no CAPTCHA solving, no access to AUTO1's dealer-only B2B platform. It rate-limits via a concurrency cap (default 6) to avoid burdening Autohero's infrastructure.

Users are responsible for:

  • Complying with Autohero's Terms of Service
  • Following GDPR and your jurisdiction's data-protection laws when storing or processing scraped listings
  • Not republishing scraped data in a way that competes commercially with Autohero

SEO Keywords

autohero scraper, scrape autohero, autohero.com scraper, autohero api, auto1 scraper, used car scraper europe, used car listings api, european car marketplace scraper, car price data, used car price scraper, germany used cars scraper, autohero germany, car inventory api, vehicle data extraction, car mileage data, ev hybrid market share, emission class car data, dealer inventory scraper, automotive market research, car valuation data, apify autohero, used car arbitrage, multi-country car scraper