ParuVendu Immobilier Property Search API returns property for sale or rent in France as JSON. Filter by place, property type, rooms, price, area, bedrooms, bathrooms and seller, sort by update date, price, area or rooms, and page through up to 5 pages of 30 listings. Each listing carries the id, link, title, price, area, rooms, bedrooms, city, energy class, seller, agency, update date, a text snippet and photos. The response also returns the total count and the price range of the search.
Notes: Filters are always honoured. A listing that breaks a price, area, bedroom, rooms, seller or photo filter is never returned, and search_metadata.filtered_out counts the removed items. A price that the seller did not communicate (NC) is null, never 0. Rent prices include charges (includes_charges); deposit and fees appear only in the description. The site stops after 5 pages, so one query reaches at most 150 listings (reachable_results): slice a bigger market by price band, area or rooms. A page past the real end is an empty page with the true total. The place must be a search_slug from the autocomplete route; a place or filter combination without a result page answers 404 and is not billed. min_bathrooms is applied by the site and cannot be checked on the cards, so bathrooms are only read on the listing route. bathrooms alone returns a 422 error. rooms_filter_applied_to_page_only appears when the site dropped the rooms filter for a house search: listings are still checked one by one and total_results is null.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
1 required parameter needed before sending a request.
13 optional filters available.
string
Required
Place slug: the search_slug of an autocomplete place. Example: lyon.
example
string
Optional
sale (default) or rent. Example: sale.
example
string
Optional
apartment (default), house, studio or land. Example: apartment.
example
string
Optional
studio, 2, 3, 4, 5 or 6_plus. Apartment and house only. Example: 3.
example
integer
Optional
Minimum price in EUR (rent: monthly rent). Example: 200000.
10
integer
Optional
Maximum price in EUR. Example: 400000.
10
integer
Optional
Minimum area in m2. Example: 40.
10
integer
Optional
Maximum area in m2. Example: 120.
10
integer
Optional
Minimum bedrooms. Example: 2.
10
integer
Optional
Minimum bathrooms. Example: 2.
10
string
Optional
private for private sellers only. Cannot be combined with with_photos.
example
boolean
Optional
true to keep only listings with photos. Cannot be combined with seller.
true
string
Optional
newest (default), relevance, price_asc, price_desc, area_desc, area_asc, rooms_desc or rooms_asc.
relevance
integer
Optional
Page 1 to 5 (default 1, 30 results per page). Example: 2.
1
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
data
success
{
"data": {
"listings": [
{
"url": "https://www.paruvendu.fr/immobilier/vente/appartement/1296518917A1KIVHAP000",
"city": "Lyon 7",
"price": {
"text": "320 000 \u20ac",
"amount": 320000,
"per_sqm": 4923,
"currency": "EUR",
"includes_charges": false
},
"rooms": 3,
"title": "Appartement 65 m\u00b2 Lyon 7",
"agency": null,
"energy": {
"class": "C",
"kwh_per_sqm_year": null,
"kg_co2_per_sqm_year": null
},
"photos": [
"https://img.paruvendu.fr/media_ext/_https_/media.paruvendu.fr/0d/aa/L21lZGlhLXBhL1dJMTcvOC8wL1dJMTc4MDg5MDgzXzIuanBnPzIwMjYxMDIxMjMwMjEw_rct?func=crop&w=1000&gravity=auto",
"https://img.paruvendu.fr/media_ext/_https_/media.paruvendu.fr/96/bb/L21lZGlhLXBhL1dJMTcvOC8wL1dJMTc4MDg5MDgzXzMuanBnPzIwMjYxMDIxMjMwMjEw_rct?func=crop&w=1000&gravity=auto"
],
"area_m2": 65,
"bedrooms": 2,
"features": [
"Garage"
],
"rooms_max": null,
"agent_name": null,
"listing_id": "1296518917A1KIVHAP000",
"updated_at": "2026-10-21",
"photo_count": 3,
"postal_code": null,
"seller_type": "private",
"listing_type": "sale",
"property_type": "apartment",
"department_code": null,
"description_snippet": "Vente appartement 2 chambres. T3 de 65 m2, lumineux et r\u00e9nov\u00e9, \u00e0 lyon 7. situ\u00e9 au 1er \u00e9tage avec ascenseur, cet appartement t3 de 65 m\u00b2 s\u00e9duit par sa pi\u00e8ce de v"
},
{
"url": "https://www.paruvendu.fr/immobilier/vente/appartement/1296132798A1KIVHAP000",
"city": "Lyon 9",
"price": {
"text": "300 000 \u20ac",
"amount": 300000,
"per_sqm": 2222,
"currency": "EUR",
"includes_charges": false
},
"rooms": 7,
"title": "Appartement 135 m\u00b2 Lyon 9",
"agency": {
"url": "https://www.paruvendu.fr/immobilier/pro/kahute-champagne-au-mont-d-or-69-68766/",
"name": "KAHUTE",
"slug": "kahute-champagne-au-mont-d-or-69-68766",
"listing_count": 125
},
"energy": {
"class": "D",
"kwh_per_sqm_year": 226,
"kg_co2_per_sqm_year": 40
},
"photos": [
"https://img.paruvendu.fr/media_ext/_https_/media.immo-facile.com/3e/9f/L29mZmljZTIwL2thaHV0ZV8wMjAxMjQvY2F0YWxvZy9pbWFnZXMvcHJfcC82LzEvNi8yLzYvMS8zLzEvNjE2MjYxMzFhLmpwZz9EQVRFTUFKPTA5LzEwLzIwMjYtMTU6MTg6NDgmMjAyNjEwMjYwODA0MDU_rct?func=crop&w=1000&gravity=auto",
"https://img.paruvendu.fr/media_ext/_https_/media.immo-facile.com/15/79/L29mZmljZTIwL2thaHV0ZV8wMjAxMjQvY2F0YWxvZy9pbWFnZXMvcHJfcC82LzEvNi8yLzYvMS8zLzEvNjE2MjYxMzFiLmpwZz9EQVRFTUFKPTA5LzEwLzIwMjYtMTU6MTg6NDgmMjAyNjEwMjYwODA0MDU_rct?func=crop&w=1000&gravity=auto"
],
"area_m2": 135,
"bedrooms": 4,
"features": [
"Garage"
],
"rooms_max": null,
"agent_name": null,
"listing_id": "1296132798A1KIVHAP000",
"updated_at": "2026-10-26",
"photo_count": 12,
"postal_code": null,
"seller_type": "agency",
"listing_type": "sale",
"property_type": "apartment",
"department_code": null,
"description_snippet": "Cet appartement T7 spacieux se trouve \u00e0 Lyon, \u00e0 10 min \u00e0 pied du centre de Champagne-au-Mont-d'Or. Situ\u00e9 au 3\u00e8me \u00e9tage d'une r\u00e9sidence calme, il comprend 4 cham"
}
],
"search_metadata": {
"page": 1,
"per_page": 30,
"low_price": 200000,
"high_price": 400000,
"filtered_out": 0,
"has_next_page": true,
"total_results": 637,
"upstream_items": 30,
"reachable_results": 150
},
"search_parameters": {
"page": 1,
"sort": "newest",
"place": "lyon",
"max_price": 400000,
"min_price": 200000,
"listing_type": "sale",
"property_type": "apartment"
}
},
"success": true
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
A required parameter or a value is invalid. This response is not billable.
{
"errors": {
"field": [
"The field is invalid."
]
},
"message": "The request validation failed"
}Not Found
The listing, agency, place or result page does not exist, or the filters match nothing. This response is not billable.
{
"meta": {
"billable": false,
"retryable": false,
"endpoint_family": "search"
},
"error": {
"code": "NOT_FOUND",
"message": "The requested listing, agency or result page was not found. Check the id, slug or place and the filters."
},
"success": false
}Upstream Unavailable
ParuVendu Immobilier could not be reached. This response is not billable and is retryable.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "search"
},
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "ParuVendu Immobilier could not be reached. Please retry shortly."
},
"success": false
}Unexpected Upstream Data
ParuVendu Immobilier returned data in an unexpected shape. This response is not billable and is retryable.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "search"
},
"error": {
"code": "INVALID_UPSTREAM_SHAPE",
"message": "ParuVendu Immobilier returned data in an unexpected shape. Please retry shortly."
},
"success": false
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.