Milanuncios Scraper
Pricing
from $3.00 / 1,000 ads
Milanuncios Scraper
Scrape Milanuncios classifieds by keyword, category or ad URL. One row per ad: title, price, city/province, 4-level category tree, images, publish date and seller type (private vs professional). Spanish residential proxy included. Optional attributes + contact flags.
Pricing
from $3.00 / 1,000 ads
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Turn any Milanuncios search into clean, structured classifieds data. Search by keyword (iphone 15, opel astra, piso alquiler), or paste search, category and ad URLs — and get one flat row per ad with title, price, city and province, a 4-level category tree, images, publish date and — crucially — whether the seller is private or professional.
Built for used-car and dealer intelligence, property research, price monitoring and Spanish classifieds analysis.
How it works

✨ Why use this scraper?
- Spanish residential proxy included — Milanuncios refuses non-Spanish traffic outright: a normal request gets HTTP 405 and a captcha, no matter the fingerprint. This actor ships with a Spanish residential pool at no extra cost, so it just works. That's the whole reason most Milanuncios scrapers return nothing.
- Real used-car specs — car ads return
kilometers,year,fuel,transmission,hp,doors,color,warrantyand the SpanishenvironmentalLabel(0 / ECO / C / B), in both machine-readable and display form ("39681"and"39.681 kms"). Filter and sort on them directly. - Private vs professional sellers — every row carries
sellerType, so you can isolate dealers from private sellers in one filter. That's the split that matters for dealer intelligence and lead-gen. - Supply vs demand ads — Milanuncios carries wanted ads alongside for-sale ads;
sellTypeseparates them so you don't pollute price analysis with "compro" listings. - 4-level category tree —
Motor > Coches > Volkswagen,Telefonía > Móviles > Teléfonos móviles > iPhone. Structured levels, not a single label. - Engagement + seller volume — deep mode returns favourites, shares and the seller's total live listing count, which tells you a dealer's inventory size at a glance.
- Fast mode or deep mode — feed rows already include price, description, city/province, category tree and seller type. Turn on deep mode for attributes, contact flags and counters. You choose cost vs depth.
- JSON, CSV, Excel or API — pipe straight into your sheet, CRM or pipeline. Billed per ad.
🎯 Use cases
| You are a… | Use it to… |
|---|---|
| Used-car dealer / analyst | Pull local inventory with km, year, fuel, transmission and power for market pricing |
| Dealer-network researcher | Isolate sellerType: professional and size each dealer by listing count |
| Property analyst | Track listings by province and category over time |
| Price-monitoring / repricing | Follow asking prices for a model or product across Spain |
| Reseller / flipper | Source underpriced private-seller ads before dealers list them |
| Market researcher | Measure supply, price distribution and category mix by province |
📥 Supported inputs
| Input | Example | What it does |
|---|---|---|
| Search keyword | iphone 15, opel astra | Builds & paginates that search feed |
| Search URL | https://www.milanuncios.com/anuncios/?s=iphone | Paginates that search |
| Category URL | https://www.milanuncios.com/coches-de-segunda-mano/ | Paginates that whole category |
| Ad URL | https://www.milanuncios.com/iphone/…-593529484.htm | Scrapes that single ad in full detail |
Not supported: private messages, buyer data, and anything behind a login. The actor reads only public Milanuncios pages.
Note on phone numbers. Milanuncios does not publish seller phone numbers on the page — it exposes only which contact channels an ad offers. Rows therefore carry
hasPhone,hasChatandhasContactFormflags rather than a raw number.
⚙️ How it works
- Classify every input — keywords become search URLs; pasted URLs are sorted into search / category / ad.
- Unlock each page through a Spanish residential exit. The geo-block is per-IP and flaky, so each page races a small batch of fresh sessions and takes the first real response.
- Parse the embedded
__INITIAL_PROPS__JSON — the feed's ad array, and each ad page's full object. - Enrich (optional) — for each ad, open its page to add structured attributes, contact flags, favourites and the seller's listing count.
- Push one flat, deduplicated row per ad to the dataset.
🔧 Input configuration
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | array | ["iphone 15"] | Keywords to search. Each is paginated. |
startUrls | array | [] | Search, category and/or ad URLs. Auto-classified. |
scrapeDetails | boolean | false | Open each ad page (attributes, contact flags, counters). |
maxItems | integer | 1000 | Hard cap on rows for the whole run. |
maxItemsPerSearch | integer | 1000 | Cap per keyword / search URL (~41 ads per page). |
maxConcurrency | integer | 6 | Parallel requests — keep moderate, Milanuncios rate-limits. |
maxRequestRetries | integer | 12 | Retry budget; each retry rotates to a fresh Spanish IP. |
proxy | object | built-in | Optional override — ES residential ships at no extra cost. |
📤 Output overview
One row per ad.
Fast mode (feed): adId, title, description, price, sellerType, sellType, location (city, province, region), categoryTree/categoryPath, images, isNew, isReserved, isHighlighted, publishDate, url.
Deep mode adds: attributes + attributesFormatted, hasPhone/hasChat/hasContactForm, favorites, shares, sellerListings, updateDate, priceIndicator.
🧾 Output samples
A car listing (deep mode):
{"rowType": "listing","adId": "597677383","url": "https://www.milanuncios.com/volkswagen-de-segunda-mano/…-597677383.htm","title": "VOLKSWAGEN Golf Advance 1.6 TDI BMT DSG","price": 13900,"currency": "EUR","sellerType": "professional","sellType": "supply","location": { "cityName": "Santa Coloma de Queralt", "provinceName": "Tarragona" },"categoryPath": "Motor > Coches > Volkswagen","attributes": {"kilometers": "106500", "year": "2017", "fuel": "diesel","transmission": "AUTOMATIC", "hp": "110", "doors": "5", "color": "gris"},"attributesFormatted": { "kilometers": "106.500 kms", "hp": "110 CV" },"hasPhone": true, "hasChat": true,"favorites": 8, "sellerListings": 12,"publishDate": "2026-05-03T11:18:46.000Z"}
A phone listing (deep mode) — private seller, no attribute set:
{"adId": "593529484","title": "Iphone 15","price": 445,"sellerType": "private","location": { "cityName": "Córdoba", "provinceName": "Córdoba" },"categoryPath": "Telefonía > Móviles > Teléfonos móviles > iPhone","attributes": null,"hasPhone": false, "hasChat": true, "hasContactForm": true,"favorites": 1, "sellerListings": 6}
🔑 Key output fields
| Field | Description |
|---|---|
adId | Milanuncios ad id (stable dedup key) |
title / description | Ad title and full description |
price / currency | Numeric price; Milanuncios is EUR-only |
sellerType | private or professional — dealer vs individual |
sellType | supply (for sale) or demand (wanted) |
location | City, province and region with Milanuncios' ids |
categoryTree / categoryPath | 4-level category path and its structured levels |
images | Array of image URLs |
isNew / isReserved / isHighlighted | Ad state flags |
publishDate / updateDate | When the ad was posted and last updated (ISO) |
attributes | Category attributes, raw values (deep mode) |
attributesFormatted | The same attributes as displayed (deep mode) |
hasPhone / hasChat / hasContactForm | Contact channels offered (deep mode) |
favorites / shares / sellerListings | Engagement and the seller's live listing count (deep mode) |
❓ FAQ
Why do other Milanuncios scrapers return nothing? Milanuncios geo-blocks: from outside Spain it answers HTTP 405 with a captcha, regardless of browser fingerprint. It needs a Spanish residential IP, which this actor bundles.
Do I need my own proxy? No. Spanish residential proxy is included at no extra cost. You can override it in the proxy field if you have your own Spanish pool.
Do I get seller phone numbers? No. Milanuncios does not publish the number on the page — only which contact channels the ad offers. You get hasPhone, hasChat and hasContactForm instead.
Which categories return attributes? Ones where Milanuncios itself uses structured filters — cars, motorbikes and property are the richest. Most phone and general second-hand ads carry no attribute set, so attributes is null there. That reflects the source, not a parsing gap.
Can I separate dealers from private sellers? Yes — sellerType is on every row, including in fast mode, and deep mode adds sellerListings so you can size each dealer's inventory.
How many results per search? Milanuncios returns ~41 ads per page. The actor walks up to 100 pages per feed (~4,100 ads). Use several keywords or categories to go wider.
🛟 Support
Found a bug or need a field added? Open an issue on the actor's Issues tab in the Apify Console and we'll take a look.
🚀 Additional services
Need a different marketplace, site, or a custom schema? We build and maintain scrapers across classifieds, real estate, jobs and e-commerce.
🔎 Explore more scrapers
- Wallapop Scraper
- OLX Marketplace Scraper (7 countries)
- OfferUp Marketplace Scraper
- Kleinanzeigen Scraper
- Craigslist Scraper
⚠️ Disclaimer
This actor scrapes only publicly available ad data from Milanuncios. It does not access private messages, buyer data, or any content behind a login, and it does not collect personal data beyond the public ad information Milanuncios itself displays. You are responsible for using the scraped data in compliance with Milanuncios' Terms of Service, applicable laws (including GDPR and other data-protection and consumer-protection laws), and any restrictions on automated access. Use the output lawfully and ethically.
🔍 SEO Keywords
Milanuncios scraper, Milanuncios API, Milanuncios data extractor, scrape Milanuncios ads, Milanuncios coches scraper, Milanuncios car scraper, Milanuncios property scraper, Spanish classifieds scraper, segunda mano scraper, used car data Spain, Milanuncios price monitoring, dealer inventory scraper Spain, Milanuncios JSON export, anuncios clasificados scraper.