Spain's largest classifieds as JSON: marketplace, cars and real estate
The milanuncios API returns Spain's largest classifieds site as clean JSON in four actions: search for the marketplace in any category, cars/search for cars, off-roaders, classic cars, motorbikes, vans, trucks, caravans and campervans, real_estate/search for flats, houses, chalets, premises, offices, garages and more for sale, rent, flat-share or holiday rent, and listing for the full record of any ad.
4 active endpoints. Every call is 1 credit.
- POST/milanuncios/v1/search
- POST/milanuncios/v1/cars/search
- POST/milanuncios/v1/real_estate/search
- POST/milanuncios/v1/listing
What milanuncios endpoints does ReefAPI ship?
4 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
milanuncios API
4 of 4 endpoints, ready to run
milanuncios ads for a keyword or category: price or no-price flag, price drops, region, province and city, private or professional seller, highlighted and reserved flags, condition, shipping, publication and renewal dates, photos and description.
{ "ok": true, "meta": { "api": "milanuncios", "endpoint": "search", "mode": "live", "latency_ms": 331.2, "record_count": 30, "cache_hit": false }, "data": { "listings": [ { "ad_id": "615112048", "title": "Bicicleta BTWIN", "url": "https://www.milanuncios.com/bicicletas-clasicas-de-segunda-mano/bicicleta-btwin-615112048.htm", "category_id": 2057, "category": "Bicicletas clásicas", "category_path": [ { "id": 31, "name": "Deportes y náutica" }, { "id": 678, "name": "Deportes" }, { "id": 679, "name": "Bicicletas" } ], "transaction": "offer", "price": 120, "currency": "EUR", "price_not_published": false, "price_includes_taxes": null, "financed_price": null, "previous_price": null, "price_drop_pct": null, "published_at": "2026-09-16T12:48:41Z", "renewed_at": "2026-09-16T12:48:41Z", "updated_at": "2026-09-16T12:48:41Z", "is_renewed": false, "location": { "region_id": 28, "region": "Madrid", "province_id": 28, "province": "Madrid", "city_id": 33731, "city": "Villanueva de la Cañada", "latitude": null, "longitude": null, "coordinates_withheld": false, "extra_provinces": [] }, "is_highlighted": false, "is_reserved": false, "condition": "like_new", "condition_label": "prácticamente nuevo", "shipping": { "shippable": false, "type": "maexpress", "package_weight": "NONE" }, "contact_methods": { "chat": true, "form": true, "phone": false }, "syndicated_from": null, "attributes": [ { "key": "color", "label": "color", "value": "negro", "value_label": "negro" } ], "image_count": 0, "images": [], "thumbnail": null, "description": "Bici Rock Rider 520 ergo fitsystem size L aluminium heat treated alloy... bueno, una bici de deporte, fin. Sin usar." }, { "ad_id": "597072457", "title": "Engwe c20pro", "url": "https://www.milanuncios.com/bicicletas-electricas-de-segunda-mano/engwe-c20pro-597072457.htm", "category_id": 2056, "category": "Bicicletas eléctricas", "category_path": [ { "id": 31, "name": "Deportes y náutica" }, { "id": 678, "name": "Deportes" }, { "id": 679, "name": "Bicicletas" } ], "transaction": "offer", "price": 600, "currency": "EUR", "price_not_published": false, "price_includes_taxes": null, "financed_price": null, "previous_price": null, "price_drop_pct": null, "published_at": "2026-05-26T20:13:20Z", "renewed_at": "2026-09-16T04:11:01Z", "updated_at": "2026-09-16T13:11:01Z", "is_renewed": true, "location": { "region_id": 28, "region": "Madrid", "province_id": 28, "province": "Madrid", "city_id": 33078, "city": "Coslada", "latitude": null, "longitude": null, "coordinates_withheld": false, "extra_provinces": [] }, "is_highlighted": false, "is_reserved": false, "condition": "like_new", "condition_label": "prácticamente nuevo", "shipping": { "shippable": false, "type": "maexpress", "package_weight": "NONE" }, "contact_methods": { "chat": true, "form": true, "phone": false }, "syndicated_from": null, "attributes": [ { "key": "color", "label": "color", "value": "gris", "value_label": "gris" } ], "image_count": 8, "images": [ "https://images.milanuncios.com/api/v1/ma-ad-media-pro/images/991954f5-2855-47d3-9499-02923bc31705", "https://images.milanuncios.com/api/v1/ma-ad-media-pro/images/a605565a-20a9-4aba-98dd-e29976612506", "https://images.milanuncios.com/api/v1/ma-ad-media-pro/images/fe289afc-5c66-4814-940d-77d155f327ed" ], "thumbnail": "https://images.milanuncios.com/api/v1/ma-ad-media-pro/images/991954f5-2855-47d3-9499-02923bc31705", "description": "Bicicleta eléctrica plegable ENGWE C20 Pro en color gris, con 590 kilómetros . Diseñada para facilitar el transporte y el almacenamiento.\n- Motor de 250W |MAX 25KM/H | 36V 15.6Ah Batería Alcance de 40-120 km\n- 7 Velocidades.\n- cuadro de aleación de aluminio 6061, horquilla delantera de suspensión y sillín y manillar ajustables. Los anchos neumáticos de aleación de aluminio de 20 x 3.0 pulgadas ofrecen estabilidad y agarre en diferentes tipos de terrenos.\n- Con un peso de solo 24.8 kg y una capacidad de carga de hasta 120 kg, es ideal para el uso diario. En estado plegado, mide 100*54*78 cm y se puede almacenar fácilmente." }, { "ad_id": "550283884", "title": "bicicleta", "url": "https://www.milanuncios.com/bicicletas-montana-de-segunda-mano/bicicleta-550283884.htm", "category_id": 2048, "category": "Bicicletas de montaña", "category_path": [ { "id": 31, "name": "Deportes y náutica" }, { "id": 678, "name": "Deportes" }, { "id": 679, "name": "Bicicletas" } ], "transaction": "offer", "price": 90, "currency": "EUR", "price_not_published": false, "price_includes_taxes": null, "financed_price": null, "previous_price": null, "price_drop_pct": null, "published_at": "2025-07-20T18:05:45Z", "renewed_at": "2026-09-16T04:10:25Z", "updated_at": "2026-09-16T13:10:25Z", "is_renewed": true, "location": { "region_id": 28, "region": "Madrid", "province_id": 28, "province": "Madrid", "city_id": 44, "city": "Madrid", "latitude": null, "longitude": null, "coordinates_withheld": false, "extra_provinces": [] }, "is_highlighted": false, "is_reserved": false, "condition": "like_new", "condition_label": "prácticamente nuevo", "shipping": { "shippable": false, "type": "maexpress", "package_weight": "NONE" }, "contact_methods": { "chat": true, "form": true, "phone": false }, "syndicated_from": null, "attributes": [ { "key": "color", "label": "color", "value": "negro", "value_label": "negro" } ], "image_count": 2, "images": [ "https://images.milanuncios.com/api/v1/ma-ad-media-pro/images/2b5846e9-e466-4f54-8c10-ab470269536e", "https://images.milanuncios.com/api/v1/ma-ad-media-pro/images/8c4d7876-21eb-4206-9703-5ddc91279ba4" ], "thumbnail": "https://images.milanuncios.com/api/v1/ma-ad-media-pro/images/2b5846e9-e466-4f54-8c10-ab470269536e", "description": "Vendo bicicleta de 6 marchas,por quedarse pequeña a mí hija,tiene 24 pulgadas,en buen estado.del 2019 atiendo por tlf 660921628,solo se vende a particulares,,por la zona, Madrid y vernos ok" } ], "count": 30, "total": 771, "total_is_lower_bound": false, "highlighted_count": 0, "duplicates_dropped": 0, "dropped_outside_price_range": 0, "sponsored_dropped": 0, "page": 1, "limit": 30, "sort_applied": "highlighted_first_then_newest_renewal", "has_more": true } }
How the milanuncios API works
milanuncios is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 252 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Diesel SEAT Ibiza under 80,000 km in Madrid, then the full ad
cars/search narrows the market with filters that were each checked to bite, and listing opens one ad with its shipping and seller details.
{"make": "seat", "model": "ibiza", "fuel": "diesel", "mileage_max": 80000, "province": "madrid"}Cash price, financed price, year, mileage, gearbox, horsepower and dealer or private seller on every row, highlighted ads flagged. Take listings[].ad_id; page 2 with page: 2.
{"ad_id": "<ad_id from step 1>"}The full record: every attribute, all photos, warranty, whether taxes are included, the seller's member-since date and reviews.
A filtered, dated view of one model's used market in one province, with each price labelled for what it is.
curl -X POST https://api.reefapi.com/milanuncios/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"bicicleta"}'{
"ok": true,
"data": { … },
"meta": {
"api": "milanuncios",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}Five milanuncios prices that are not simply a price
A milanuncios ad can show 0 € when the seller set no price, carry a cash and a financed price, sit at the top of a page because it paid to, have been lowered to nothing, or slip into a price filter it does not match. Each looks like an ordinary number. This engine labels every one.
| Ad (category) | price | flag | the catch |
|---|---|---|---|
| Electrician and plumber, Servicios | null | price_not_published: true | milanuncios returns 0 € when no price was set - 67 of 100 service ads on 2026-09-16. Returned as null, never 0 |
| 2023 hatchback from a dealer, Coches | 14990 | financed_price: 14990, price_includes_taxes: true | Dealers publish a cash price and a price with their financing; price is always the cash price |
| E-bike, Bicicletas | 1245 | previous_price: 1345, price_drop_pct: 7 | The seller lowered the price; the earlier price and the site's own percentage come with the row |
| Swap offer for a phone, Telefonía | null | previous_price: 90 | Lowered from 90 € to no price at all and still listed as a price drop; the percentage is left out |
| Flat for rent in Barcelona province, max 1,200 € | - | dropped_outside_price_range: 1 | An ad with no published price came back inside the price filter; rows outside the range you asked for are removed and counted |
Measured on 2026-09-16. Paid highlighted ads open every page - all 100 rows of one car page that day - and are flagged is_highlighted rather than removed, because they do match the search. Classified ads come and go - the rows above are dated.
What was checked, and what milanuncios leaves out
Measured on 2026-09-16: 88 live calls across the four actions with no failure, 75 controlled checks including every filter, and 16 ads compared with their own pages. Four of these lines go against us.
Every marketplace category, cars, off-roaders, classic cars, motorbikes, vans, trucks, caravans, campervans and quads, and 14 property types for sale and rent plus flat-shares and holiday rentals. Spain only, prices in EUR.
Each filter was run against its unfiltered total in the same minute and every returned row checked: 'iphone 13', 1,290 ads, became 322 like new and 536 shipped; SEAT Ibiza, 4,535, became 1,702 diesel and 233 automatic.
On 16 ads across bikes, phones, furniture, cars, motorbikes, rentals, sales and services, the title, price, seller type, photo count, province, city, reserved flag and publication date matched each ad's own page.
No published price, cash versus financed car prices, price drops and ads that slipped into a price filter each have their own field or count. Paid highlighted ads are flagged.
Median across 88 calls: a marketplace search 0.62 seconds, a car search 0.64 seconds, a property search 1.22 seconds, an ad 0.58 seconds. The slowest call measured took 2.1 seconds.
Results come in milanuncios' own order - paid highlighted ads first, then the most recently renewed. Price and date sorting are not available; pages reach the 8,200th result of a search.
A private seller's name, avatar, postcode and the map position of private property ads are left out on purpose. Professional sellers are named.
Seller reviews existed on 1 of 16 checked ads and an energy certificate on 1 of 4 property ads. A motorbike's full ad record carries no year or mileage - its search row does.
milanuncios keeps phone numbers out of the ad data, and removed ads simply disappear (NOT_FOUND) rather than showing as sold.
What people build with milanuncios
The jobs this data is most often used for.
endpoints
credit per call
Car dealers and valuation tools track used-car cash and financed prices, price drops and mileage by make, model, year, fuel and province with cars/search.
Property analysts follow asking rents and sale prices, price per m², bedrooms and surface by province and city, across flats, houses, premises and garages, with real_estate/search.
Resale and pricing tools compare second-hand prices by condition and shipping while keeping unpublished prices out of the averages.
Market-mapping teams measure how much of a category is professional versus private and how much is paid highlighting, without collecting private sellers' personal data.
What milanuncios data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 252 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/milanuncios/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"bicicleta"}'import requests
r = requests.post(
"https://api.reefapi.com/milanuncios/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "bicicleta"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up milanuncios.
Get a free key →Which parts of milanuncios does the API cover?▾
The whole site in three search actions. search covers every marketplace category with milanuncios' own category ids - 1,290 'iphone 13' ads on 2026-09-16. cars/search covers cars, off-roaders, classic cars, motorbikes, vans, trucks, caravans, campervans and quads - 4,535 SEAT Ibiza that day. real_estate/search covers 14 property types for sale and rent plus flat-shares and holiday rentals - 2,773 flats for rent in Barcelona province. listing returns the full ad from any category. milanuncios is Spain only; prices are in EUR.
Is a private seller's name or phone number included?▾
No. A private seller's name, avatar and postcode are left out, and so are the map coordinates milanuncios attaches to private property ads - the region, province and city stay. milanuncios does not put phone numbers in the ad data; the API says whether the seller accepts chat, a contact form or calls. For professional sellers the business name is returned.
What does a price of null mean?▾
That the seller published no price. milanuncios sends 0 € for these ads - services, wanted ads, 'a consultar' - and the API returns null with price_not_published true, so they never drag an average down. A price that was lowered carries previous_price and price_drop_pct. Car dealers' ads carry the cash price in price and the financed price in financed_price.
Are paid or highlighted ads marked?▾
Yes. milanuncios places paid highlighted (destacado) ads at the top of every results page. They match your search, so they stay in the results, each with is_highlighted true, and every page reports highlighted_count. A separate paid top-ad list, when milanuncios returns one, is kept out of the results and counted; include_sponsored returns it apart.
Do the filters really narrow the results?▾
Each one was checked live on 2026-09-16: the filtered total had to be smaller than the unfiltered one, and every returned row had to match. For 'iphone 13' (1,290 ads): private sellers 1,002, like new 322, shipped 536, price dropped 46, Madrid province 163. For SEAT Ibiza (4,535): 2015 to 2018 659, under 80,000 km 1,329, diesel 1,702, automatic 233. For flats for rent in Barcelona province (2,773): 3 bedrooms or more 868, 60 to 90 m² 954.
Can I sort by price or date?▾
No. milanuncios returns its own order - paid highlighted ads first, then the most recently renewed ads - and the API says so in sort_applied. Use price_min and price_max to narrow by price instead. Pages go up to the 8,200th result of a search; narrow the search to see further.
Why is an ad from another province in my province search?▾
Some dealers advertise in more provinces than the one they are in, and milanuncios includes them in each. The row keeps the dealer's own province and lists the others in location.extra_provinces, so you can keep or drop them.
What does milanuncios not publish?▾
Phone numbers and e-mail addresses. A price for services and wanted ads. Reviews for most sellers - 1 of 16 checked ads had one. The car model as a separate field (it is in the title; the make comes separately). Year and mileage in a motorbike's full ad record - they are on its search row. A sold status: removed ads return NOT_FOUND.
What is the milanuncios API?▾
milanuncios API is a ReefAPI endpoint group for spain's largest classifieds: marketplace, cars and real estate as json. It returns live JSON through POST requests under /milanuncios/v1.
Is the milanuncios API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. milanuncios calls use the same shared credit balance as every other ReefAPI engine.
Do I need a milanuncios login or account?▾
No login to milanuncios is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the milanuncios data?▾
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the milanuncios API use?▾
milanuncios actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call milanuncios from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call milanuncios actions with the same key, credit pool and JSON envelope used by normal REST requests.
16 Classifieds & Second-hand APIs on the same key
One key, one credit pool, one response envelope. If you are pulling milanuncios, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 251 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-16.