Nettiauto Scraper — Finnish Used Cars, Prices & Specs
Pricing
from $3.50 / 1,000 results
Nettiauto Scraper — Finnish Used Cars, Prices & Specs
Scrape Nettiauto, Finland's largest car marketplace, in bulk: make, model, price in EUR, mileage, year, fuel type, transmission, body type, color, condition and VIN as separate sortable columns. Any category or filter URL. No login, no API key.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
17 hours
Issues response
20 hours ago
Last modified
Categories
Features
Share
Scrape Nettiauto, Finland's largest car marketplace, in bulk — no login, no API key, no browser. Point the Actor at any category or result page and it walks the pages, parses every card into flat, sortable columns, and saves rows as it goes.
19 columns per row · thousands of rows per run · numeric prices, not strings · JSON, CSV, Excel or API · pay only for the rows you keep.
Why this Nettiauto scraper
Nettiauto publishes everything a buyer needs on the result page — but as prose, inside a card, behind pagination. Reading it at any useful scale by hand is not realistic, and copy-paste gives you text where you need numbers.
This Actor turns those pages into a table. price is a number, not a formatted string. Location, seller and vehicle specs are their own columns instead of one blob. That is the difference between data you can pivot on and data you have to clean first.
It is built on the same engine as the rest of this fleet, which means three things you only notice when they are missing:
- It respects the clock. Every run carries a time budget and saves rows continuously, so a slow page never costs you the whole run.
- One bad page does not end the crawl. An unreachable page is retried, then skipped and logged — not treated as the end of the listing.
- It says what it did. Row counts, skipped pages and stop reasons all appear in the log, so a short run is always explainable.
What you get
Market research for the Finnish car market
Nettiauto is where Finns buy and sell cars. price is numeric in EUR, mileage is in kilometres, and make/model are clean strings — enough to compare asking prices across makes and model years without any cleanup.
Fuel-type and powertrain trends in Finland
fuel and transmission are separate columns. Chart them over time to see how quickly the Finnish market is shifting from petrol manuals to electric automatics.
Dealer and inventory monitoring
Track which cars are listed, at what price, and how often inventory turns over. Schedule daily runs and diff the results to spot new listings, price drops, and disappeared ads.
Vehicle identification and history lookup
vin is included when the seller publishes it. Cross-reference VINs with a vehicle history service to add accident and service records to your dataset.
Input
| Field | Type | What it does |
|---|---|---|
startUrl | string | Any Nettiauto category or result URL. The Actor paginates from here. |
maxResults | integer | Stop after this many rows (default 200). |
proxyConfiguration | object | Apify Proxy settings. Defaults to the UNBLOCKER group — see below. |
Note: Nettiauto embeds every filter in the URL. Copy any search or filter result page URL and paste it as the start URL.
Example input
{"startUrl": "https://www.nettiauto.com/vaihtoautot","maxResults": 200,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["UNBLOCKER"]}}
Why the UNBLOCKER proxy group
Nettiauto sits behind a Cloudflare managed challenge — the block page is "Just a moment…" with
a __cf_chl script, not a plain refusal. That is a JavaScript challenge, so no plain HTTP client
gets through it no matter how good its fingerprint: a residential Finnish exit IP and a genuine
Chrome TLS fingerprint were both measured returning HTTP 403. The UNBLOCKER group solves the
challenge upstream, which is why it is the default. It adds roughly ten seconds per page.
If you override the proxy with other groups the run will very likely be refused — and it will fail loudly rather than hand you an empty dataset.
Output
One row per listing, 19 columns:
| Column | Type | Description |
|---|---|---|
listingId | string | Nettiauto listing ID from the URL. |
title | string | Make, model and year headline. |
listingUrl | string | Canonical listing page on Nettiauto. |
make | string | Car manufacturer. |
model | string | Car model. |
price | number | Asking price in euro. |
currency | string | Always EUR. |
mileage | number | Odometer reading in kilometres. |
year | number | Model year extracted from the title. |
fuel | string | Fuel type in Finnish (Bensiini, Diesel, Sähkö, Hybridi). |
transmission | string | Transmission type in Finnish (Manuaali, Automaatti). |
bodyType | string | Body style in Finnish (Sedan, Farmari, Viistoperä, etc.). |
color | string | Exterior color in Finnish. |
condition | string | Used or New. |
vin | string | Vehicle identification number when available. |
imageUrl | string | First listing photo. |
country | string | Always Finland. |
source | string | Always nettiauto. |
scrapedAt | string | ISO timestamp of collection. |
Example row
{"listingId": "…","title": "…","listingUrl": "…","make": "…","model": "…","price": 0,"currency": "…","mileage": 0,"year": 0,"fuel": "…","transmission": "…","bodyType": "…","color": "…","condition": "…","vin": "…","imageUrl": "…","country": "…","source": "…","scrapedAt": "…"}
Export from the Apify Console as JSON, CSV, Excel, XML or RSS, or pull it straight from the Dataset API.
Run outcomes: how to tell an empty market from a blocked crawl
A scraper that is blocked on every page and a search that genuinely has no cars both produce an empty dataset. Treating those as the same thing makes the output unusable for monitoring, so this Actor classifies every run and refuses to report an unverified emptiness as success.
| Outcome | Run status | Meaning |
|---|---|---|
COMPLETED | Succeeded | Every requested page was fetched and rows were saved. |
PARTIAL | Succeeded | Rows were saved, but some pages were unreachable. The page numbers are listed. |
EMPTY_RESULT | Succeeded | Pages were fetched and parsed successfully and this search really has no listings. |
BLOCKED | Failed | Every page was refused with HTTP 403/429/503. |
INVALID_START_URL | Failed | The start URL is not a nettiauto.com address, or it returned 404. |
FETCH_FAILED | Failed | No page could be fetched for transport reasons (timeouts, proxy errors). |
INCOMPLETE_NO_ROWS | Failed | Pages were skipped and nothing was saved, so an empty result cannot be trusted. |
The rule behind the table: a run that fetched zero pages can never finish as Succeeded. It learned nothing about the market, so it reports a failure you can alert on.
Run summary
Every run writes a SUMMARY record to the key-value store and prints the same figures to the log,
so the row count is always reconcilable with what the crawl actually did:
| Field | Meaning |
|---|---|
outcome, detail | The classification above, and a sentence explaining it |
rowsSaved, rowsRequested | Rows written versus rows asked for |
pagesRequested, pagesFetched | Pages attempted versus pages that returned HTML |
pagesSkipped | The page numbers that could not be fetched |
emptyPages, parseFailures | Pages that returned no rows, and pages that failed to parse |
httpRequests, httpRetries | Requests issued, and how many were retries |
httpStatusCounts | Per-status breakdown, e.g. {"200": 7, "403": 2} |
transportErrors | Failures that never reached an HTTP status |
proxyGroups | The proxy groups the run actually used |
terminationReason | Why the crawl stopped |
How to use it
- Open the Actor and paste a Nettiauto URL into Category or listing URL.
- Set Maximum results to how many rows you want.
- Click Start. Rows appear in the dataset while the run is still going.
- Export, or schedule the run daily and diff the results to track price moves.
You can also run it from the Apify API, the JavaScript client or the Python client, and wire the output into Google Sheets, Zapier, Make or your own warehouse.
Frequently asked questions
Do I need a Nettiauto account?
No. All data comes from public result pages — no login, no API key.
How do I filter by make, model or fuel type?
Nettiauto puts every filter in the URL. Use the Nettiauto website to build your search, then paste the result URL as the start URL.
Why are fuel type and body type in Finnish?
Nettiauto serves its data in Finnish. Bensiini = Petrol, Diesel = Diesel, Sähkö = Electric, Hybridi = Hybrid. Manuaali = Manual, Automaatti = Automatic.
Why is vin often null?
Not all sellers publish their vehicle identification number. About 30% of listings include it.
Which currency?
Euro (EUR), stated in the currency column.
How many listings does Nettiauto have?
Over 70,000 used cars at any given time, making it Finland's largest car marketplace.
How much does it cost?
You pay per row kept (see the Pricing tab); there are no separate Apify platform fees to calculate. A 1,000-row run is inexpensive; run it on a schedule and you have a continuous price feed for the cost of a coffee.
Is scraping Nettiauto legal?
This Actor reads only publicly available pages — the same ones anyone can open in a browser — and collects no personal data beyond the seller display name that Nettiauto itself publishes next to each listing. You are responsible for how you use the output, including compliance with Nettiauto's terms and with data-protection law such as the GDPR. If in doubt, take legal advice.
Related Actors
Browse the rest of the fleet for country marketplace, classifieds, property and company-registry scrapers covering more than eighty countries.
🤖 AI Agents, MCP & RAG Integration
Nettiauto Scraper works natively as an on-demand data tool for AI assistants and autonomous workflows.
Connect this Actor directly to Apify AI, Claude Desktop, Cursor, VS Code, Windsurf, LangChain, or LlamaIndex via the official Apify MCP Server — no custom wrapper code needed:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com?tools=logiover/nettiauto-car-scraper"}}}
- Schema-typed inputs & outputs: Clean JSON records with explicit
.actor/input_schema.jsonand.actor/output_schema.jsondefinitions so LLM agents infer parameters and parse fields accurately without HTML noise. - Bounded & predictable runs: Built-in volume caps and pay-per-result budget guards prevent runaway agent tool loops.
- RAG & automation ready: Stream run datasets straight into vector stores, n8n, Make, Zapier, or webhook pipelines.
💬 Support, Issues & Reviews
Found a broken column or a site change? Open an issue on the Actor's Issues tab and it will be looked at. This Actor is actively maintained — see the Changelog for its history.
Nettiauto is a trademark of its respective owner. This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Nettiauto.
- Bug reports & target-site changes: Hit an unexpected empty result or selector change? Open a ticket in the Issues tab with your Run ID or sample input — we actively monitor issues and ship fixes fast.
- Feature & field requests: Need an additional data attribute or filter? Request it in the Issues tab.
- Enjoying this Actor? If it saved you engineering time, please consider leaving an honest review on Apify Store or bookmarking logiover/nettiauto-car-scraper — organic developer feedback helps others discover reliable tools and keeps maintenance prioritized.
Use cases
- Export car listings in bulk and analyse them in a spreadsheet or database.
- Track how the data changes over time by scheduling repeat runs.
- Feed car listings into a dashboard, CRM or internal tool through the Apify API.
- Build a research dataset without writing or maintaining a scraper.
- Monitor Nettiauto for new entries and alert your team when they appear.
Pricing
This Actor is pay per result: you are charged for the rows it writes to your dataset, not for the time it spends running. There are no platform fees to calculate on top, and higher Apify plans pay a lower rate per result. A run that returns nothing costs nothing.
Related scrapers
Other Actors from the same collection:
Nettiauto scraping — frequently asked questions
Do I need a Nettiauto API key, account or login?
No. This Actor reads publicly available pages and feeds, so there is nothing to register for and no credentials to manage.
How do I export Nettiauto data to CSV, Excel, JSON or Google Sheets?
Open the Storage tab after a run and pick the format you want — CSV, Excel, JSON, XML or an HTML table. For Google Sheets, Airtable or a database, use the dataset URL or the Apify API so the sheet refreshes itself on every run.
Can I schedule this Nettiauto scraper to run daily or hourly?
Yes. Use the Schedules tab and pick a cadence. Daily is enough for most tracking work; pick hourly only if the vehicle listings you care about really do change that fast.
How many vehicle listings can I get, and what does it cost?
See the volume section above for a measured figure. Billing is per result, so you pay for the rows you actually receive and a run that finds nothing costs nothing.
Is scraping Nettiauto legal?
This Actor collects only information that Nettiauto publishes publicly. It does not log in, does not defeat access controls and does not touch private data. You remain responsible for how you use the output, including under GDPR and similar rules where personal data is involved.
What happens if Nettiauto blocks the run or changes its layout?
A refused exit IP is swapped for a fresh one within a quarter of a second and retried, and rate limiting is waited out rather than fought. If nothing gets through, the run fails with the reason instead of reporting success with zero rows — so an empty result always means "no matches", never "the source would not answer".
Can I use this with an AI agent, LangChain or an MCP client?
Yes. The Actor is callable over the Apify API and through Apify's MCP server, so an agent can run it and read the dataset back as a tool call.
Legal and compliance
This Actor collects publicly available information from Nettiauto only. It does not log in, does not circumvent access controls, and collects no private data. You are responsible for using the output lawfully, including under GDPR and comparable regimes where the rows contain personal data, and for respecting Nettiauto's terms where they apply to you.
📝 Changelog
2026-11-11
- Added reliable terminal run status telemetry and structured Apify AI / MCP Server (
mcp.apify.com) tool configuration. - Added direct Issues & Reviews support links and refreshed live maintenance verification.
2026-11-01
- Monthly health check (2026-11-01): a live run on the current build completed successfully and returned data. Input options, output fields and pricing are unchanged.
- README pricing text corrected: platform usage is included in the per-result price, with no separate platform fees to calculate.
2026-10-15
- A run that reaches its maximum cost per run now stops cleanly with its results saved and a status message, instead of ending as aborted.
- A proxy group your account cannot use no longer stops the run at start-up; it falls back to the default Apify Proxy.
- Runs with a short timeout (API and AI-agent calls) now finish inside it with what they collected, instead of being cut off.
- Memory is managed within the run's own limit, which removes a rare out-of-memory crash on large pages.
2026-09-23
- Fleet-wide quality audit. Verified end to end against live data and re-checked the input schema, the output columns and the run configuration.
- Output verified on a live run: 200 row(s) across 19 columns, 96.8% of cells populated.
- Run reliability reviewed: 100.0% of public runs succeeded in the last 30 days.
- Input schema, output schema and pricing configuration reviewed.
2026-09-21
Blocked runs can no longer look like empty markets.
- Nettiauto is behind a Cloudflare managed challenge ("Just a moment…",
__cf_chl), not a plain block. That is a JavaScript challenge, so no HTTP client passes it however good its fingerprint — a residential Finnish exit IP and a genuine Chrome TLS fingerprint were both measured returning HTTP 403. The Actor now uses Apify Proxy's UNBLOCKER group by default, which solves the challenge upstream and fetches pages normally. - New run outcomes. Every run is now classified and the result is written to the log, to the
run's status message, and to a
SUMMARYrecord in the key-value store:Outcome Run status Meaning COMPLETEDSucceeded Every requested page was fetched and rows were saved. PARTIALSucceeded Rows were saved but some pages were unreachable; the page numbers are listed. EMPTY_RESULTSucceeded Pages were fetched and parsed and the search genuinely has no listings. BLOCKEDFailed Every page was refused with 403/429/503. INVALID_START_URLFailed The start URL is not a nettiauto.com address, or returned 404. FETCH_FAILEDFailed No page could be fetched for transport reasons. INCOMPLETE_NO_ROWSFailed Pages were skipped and nothing was saved, so an empty result cannot be trusted. - A run that fetched zero pages can no longer finish as Succeeded. Previously a site-wide 403
produced
Succeededwith an empty dataset, which is indistinguishable from a real empty market. - Run summary added. The log and the
SUMMARYrecord now report: pages requested, pages fetched, pages skipped (with their numbers), empty pages, parse failures, HTTP request count, retry count, a per-status HTTP breakdown, transport errors, the proxy groups used, and the termination reason. - The start URL is validated before any request is made, so a wrong host fails immediately with a clear message instead of crawling nothing.
- Per-request timeout raised to 60s because the upstream challenge solve adds roughly 10s per page.
2026-09-07
- Initial release. Scrapes Nettiauto result pages into 19 flat columns, with numeric prices, continuous saving and a per-run time budget.
- Verified end-to-end against live Nettiauto pages through Apify Proxy: 32 rows per page, pagination confirmed, and every column checked for fill rate.