Try any of 3860 endpoints — live.
Pick an endpoint, load a working example, tweak the params, and send — no signup to try. Results render the way the data deserves; raw JSON, headers & code are one tab away.
Search Spanish property listings by location — for sale or to rent — with fotocasa's own filters: price range, rooms, bathrooms, surface, property type, state of repair, new-build vs resale, amenities, free text and sort order. Location is mandatory in one of four forms (location, location_slug, location_id or url). 30 listings per page; paginate with page/max_pages.
Where to search — REQUIRED unless you pass location_slug, location_id or url. Free text in Spanish ('Madrid', 'Chamberí, Madrid', 'Las Rozas de Madrid', 'Bilbao'): it is resolved through fotocasa's own location service and the match that was used is reported in meta.location_resolved. Spain is searched by place, so one of these four location inputs must always be supplied.
A fotocasa location slug, used verbatim as the URL segment and therefore the cheapest option (no resolver call). Examples: madrid-capital, barcelona-capital, bilbao, valencia-capital, malaga, las-rozas-de-madrid, espana. Note the pattern: 'madrid' is the PROVINCE and 'madrid-capital' is the city.
A fotocasa combined-location id, exactly as location_search returns it (nine comma-separated numbers). This targets a province, town, district or neighbourhood precisely. Zip-code and street suggestions do NOT carry one and cannot be used here.
District/zone slug inside the location (default todas-las-zonas = the whole town). Only meaningful together with location_slug.
Sale or rental market. Default buy.
Which fotocasa catalogue to search. These are the segments the site itself serves; anything else is rejected rather than quietly returning the wrong catalogue.
Minimum price in EUR (monthly rent when transaction=rent). (0–)
Maximum price in EUR (monthly rent when transaction=rent). (0–)
Minimum number of rooms (bedrooms). (0–20)
Maximum number of rooms (bedrooms). (0–20)
Minimum number of bathrooms. (0–20)
Maximum number of bathrooms. (0–20)
Minimum built surface in m². (0–)
Maximum built surface in m². (0–)
Amenities the property must have — ALL of them (fotocasa intersects them: lift + pool returned 1 170 of 11 979 Madrid listings). Pass a list or a comma-separated string; a raw numeric fotocasa feature id is also accepted. Note that swimming_pool matches a COMMUNAL pool as well as a private one — 26 of the 31 rows on the first filtered page came back with the amenity `community_pool`.
State of repair. Several values may be combined.
New build vs resale. On Madrid this split 270 vs 11 713 of 11 984.
Listing-level flags fotocasa filters on: price_drop, bank_owned, with_videos, with_video_or_virtual_tour, quality_seal, subsidised_housing and friends.
Numeric fotocasa property-subtype ids to include (UNION, unlike features): 2 apartment, 3 house/chalet, 5 semi-detached, 6 penthouse, 7 duplex, 8 loft, 9 rural, 52 ground floor, 54 studio, 14/58/59/60 land. Usually the property_type segment is easier; this exists for combinations the segments cannot express.
Free-text term matched against the listing (Spanish). 'piscina' cut Madrid from 11 984 to 1 704.
Result order. These four are the orders fotocasa actually serves — its other sort keys return a server error, so they are not offered.
First page to fetch (30 listings per page). Fotocasa stops at page 333; beyond that it silently re-serves page 333, so deeper requests are refused here instead. (1–333)
How many consecutive pages to fetch in one call (1-20). Each page is one upstream request. (1–20)
Fotocasa injects ONE extra promoted listing above each results page (31 rows where its own page size is 30) and rotates it per request. It is a real property, so it is returned by default flagged `promoted: true` and counted in meta.promoted_count. Set false to receive only the 30 organic rows.
Alternatively paste a fotocasa search URL straight from the browser; its path and query are used as-is and page/max_pages still apply.
curl -X POST https://api.reefapi.com/fotocasa/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"location_slug":"madrid-capital"}'Press Send request to see the live result here.
Not sure what to send? Ask Reef AIWhat you can run here, without an account
ReefAPI is one HTTP gateway to 632 live web-data APIs covering 3860 endpoints across 13 categories. Every endpoint answers with the same JSON envelope, so one integration reaches all of them. Each response reports what it cost and when the source was read.
No signup, no API key and no card are required to try an endpoint on this page. Anonymous calls run on a shared demo key, capped at 15 calls per hour per visitor. Pick an API, fill the parameters and the real response comes back from the live source, not from a canned sample. A free account lifts the cap and gives you 1,000 credits and your own key.
Browse every API in the catalog, read an endpoint's fields and example response in the docs, or see per-call credit costs on the pricing page.
Coverage by category
| ecommerce | 350 |
| classifieds | 116 |
| real-estate | 29 |
| media | 25 |
| utilities | 18 |
| jobs | 18 |
| developer-tools | 18 |
| reviews | 15 |
| social | 15 |
| search-seo | 11 |
| travel | 8 |
| other | 5 |
| finance | 4 |