Milanuncios Scraper - Spain Classifieds API
Pricing
Pay per event
Milanuncios Scraper - Spain Classifieds API
Scrape Milanuncios, Spain's biggest classifieds site: listing id, title, price in EUR, category path, province and city, description, private vs professional seller, publish date, photos and URL. Cars, property, phones, furniture, jobs. $1.00 per 1,000 listings, no proxy needed.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Milanuncios Scraper — Spain's classifieds as JSON
Pulls listings from Milanuncios, Spain's largest general classifieds site (Adevinta, sibling of Fotocasa and InfoJobs). Cars, property, phones, furniture, jobs, pets — all 17 sections and 2,302 categories.
Per listing you get the id, title, full description, price in EUR, the category path, province and city, whether the seller is a private individual or a professional, publish and update timestamps, the photos and the listing URL.
$1.00 per 1,000 listings, plus $0.001 per run start. Flat on every plan.
What a listing looks like
{"listingId": "611038030","title": "Sofa Cama","description": "Vendo sofa Cama de color verde nuevo en buem estado\nmedidas 171 largo × 1,03 Ancho × 1,76 Alto","price": 250,"priceText": "250 €","currency": "EUR","previousPrice": null,"priceIncludesTaxes": null,"sellerType": "private","sellerId": "233110658","sellerName": "Marcos","categoryId": 486,"categoryName": "Sillas sofás sillones","categorySlug": "sillas-sofas-y-sillones","sectionId": 30,"sectionName": "Casa y Jardín","categoryPath": "Casa y Jardín > Muebles > Sillas sofás sillones","province": "Jaén","provinceId": 23,"city": "Baeza","cityId": 27466,"region": "Andalucía","latitude": null,"longitude": null,"publishedAt": "2026-08-21T13:58:38Z","updatedAt": "2026-08-21T13:58:38Z","transaction": "supply","isHighlighted": false,"isNew": true,"reserveStatus": "RELEASED","contactByPhone": false,"contactByChat": true,"attributes": { "color": "verde", "itemCondition": "ALMOST_NEW" },"images": ["https://images.milanuncios.com/api/v1/ma-ad-media-pro/images/d4e74c88-...?rule=hw396_70"],"imageCount": 2,"url": "https://www.milanuncios.com/sillas-sofas-y-sillones/sofa-cama-611038030.htm","scrapedAt": "2026-08-21T16:20:11.016Z"}
attributes is a per-category bag of whatever Milanuncios attached to the ad. Cars carry
kilometers, year, fuel, transmission, hp, doors, color, warranty,
environmentalLabel. Furniture carries itemCondition and color. Property carries room counts and
floor area. It's passed through as-is rather than flattened, because every category is different.
Input
| Field | What it does |
|---|---|
query | Search terms in Spanish — sofa cama, iphone 15, piso alquiler. |
category | Name, slug or id: Coches, Inmobiliaria, Telefonía, coches-de-segunda-mano, 13. Accent-insensitive, so Telefonia works too. |
searchUrls | Paste Milanuncios URLs instead. Category, search text, price range, seller type and sort order are all read back out of the URL. |
provinces | Madrid, Barcelona, A Coruña, or INE codes 1–52. |
sellerType | private (particulares) or professional (dealers, agencies, shops). |
sort | relevance, cheap, expensive work everywhere. newest and oldest only work in Motor — see below. |
minPrice / maxPrice | EUR bounds. |
transaction | supply (things for sale) or demand (wanted ads). Milanuncios carries both. |
maxItems | Total listings across all searches. Each one is a charged result. |
You need at least one of query, category or searchUrls. An empty run returns a single labelled
sample row and charges nothing.
Why it's cheap to run
Milanuncios' web pages sit behind F5 Shape. Request one from outside Spain and you get "Pardon Our Interruption" with a GeeTest captcha. We measured that block on a residential Canadian address, on three US static-ISP addresses, across three TLS fingerprints, with a Googlebot user-agent, and in a real headful Chrome.
The site's own data doesn't come from those pages. It comes from a separate API gateway host that answers a plain HTTP request with full JSON. So this launches no browser, uses no proxy, and does one request per 100 listings. A 200-listing run is two requests, and the price reflects that.
Limits
- No phone numbers or seller contact details. The API says whether a seller accepts phone or chat
contact (
contactByPhone,contactByChat), but the number itself sits behind a separate authenticated endpoint and is personal data. Not scraped. - 8,300 results is the ceiling for any one search. Milanuncios stops paginating at offset 8200. Past that it silently restarts from the beginning, so the actor stops rather than bill you for duplicates. To go deeper, split the search — by province, by price band, or by sub-category. Ten provinces is ten separate searches and ten separate ceilings.
newestandoldestonly work in Motor. Milanuncios returns zero rows for those orderings anywhere else. Ask forneweston Inmobiliaria and the actor falls back torelevanceand says so in the log rather than handing you an empty dataset.- Photos are 396 px. The image service whitelists one size rule. The URLs in
imagesalready carry it; the bare image URL 404s. - No result-count field. Milanuncios reports a match count in its own response but caps it at 10,000, so it's a floor rather than a count. It goes in the run log and deliberately not on the rows.
- No coordinates on most ads.
latitude/longitudeare usually null. Milanuncios only exposes them for a minority of listings. - Province filtering is done here, not there. Milanuncios' own province filter is loose and returns neighbouring provinces too — we measured 80 of 100 rows actually in Madrid when asking for Madrid. This actor drops the other 20 and never charges you for them.
Cost
You're charged for listings that land in your dataset. Diagnostics, sample rows and listings dropped by the province filter are all free.
| Listings | Cost |
|---|---|
| 100 | $0.10 |
| 1,000 | $1.00 |
| 10,000 | $10.00 |
Plus $0.001 per run start.
Questions
What is Milanuncios? Spain's largest general classifieds site, owned by Adevinta. Roughly the Spanish equivalent of Craigslist or Gumtree — cars, property, jobs, electronics, furniture, pets and services.
Can I scrape Milanuncios cars specifically? Yes. Set category to Coches (id 13), Motos for
motorbikes, Furgonetas for vans, or a specific make like Audi or BMW — each make is its own
category. Car ads carry mileage, year, fuel type, transmission, horsepower and the Spanish
environmental label in attributes.
Can I filter to private sellers only? Yes, sellerType: "private". That's a real filter on
Milanuncios' side, not a post-filter. professional gives you dealers, agencies and shops.
Can I scrape a specific province or city? Province, yes — set provinces. City-level filtering
isn't exposed, but every row carries city so you can filter downstream.
How many listings can I get? Up to 8,300 per search. Split by province to multiply that — the 52
provinces are 52 independent searches. maxItems goes up to 50,000 across all searches in one run.
Does it need a proxy? No. Leaving it off is faster. You can supply your own if your setup requires it.
Is the data live? Yes, fetched at run time from Milanuncios' own search backend. publishedAt
and updatedAt come straight from the ad.
What language is the data in? Spanish, as published. Titles, descriptions, category names, province names and attribute values are Milanuncios' own text. Field names are English.
How do I get the full-size photo? You can't. Milanuncios' image service whitelists one size rule
(hw396_70, 396 px, AVIF) and 404s everything else. The URLs in images already include it.
Why is a listing I can see on the website missing? Most likely the 8,300-result depth limit, or
the newest sort outside Motor. The run log names both cases explicitly.