Milanuncios Scraper - Spain Classifieds API avatar

Milanuncios Scraper - Spain Classifieds API

Pricing

Pay per event

Go to Apify Store
Milanuncios Scraper - Spain Classifieds API

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

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

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

FieldWhat it does
querySearch terms in Spanish — sofa cama, iphone 15, piso alquiler.
categoryName, slug or id: Coches, Inmobiliaria, Telefonía, coches-de-segunda-mano, 13. Accent-insensitive, so Telefonia works too.
searchUrlsPaste Milanuncios URLs instead. Category, search text, price range, seller type and sort order are all read back out of the URL.
provincesMadrid, Barcelona, A Coruña, or INE codes 1–52.
sellerTypeprivate (particulares) or professional (dealers, agencies, shops).
sortrelevance, cheap, expensive work everywhere. newest and oldest only work in Motor — see below.
minPrice / maxPriceEUR bounds.
transactionsupply (things for sale) or demand (wanted ads). Milanuncios carries both.
maxItemsTotal 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.
  • newest and oldest only work in Motor. Milanuncios returns zero rows for those orderings anywhere else. Ask for newest on Inmobiliaria and the actor falls back to relevance and 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 images already 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 / longitude are 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.

ListingsCost
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.