# ParuVendu Immobilier Property Search API Documentation

<p><strong>ParuVendu Immobilier Property Search API</strong> 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.</p><p>Notes: Filters are always honoured. A listing that breaks a price, area, bedroom, rooms, seller or photo filter is never returned, and <code>search_metadata.filtered_out</code> counts the removed items. A price that the seller did not communicate (NC) is <code>null</code>, never 0. Rent prices include charges (<code>includes_charges</code>); deposit and fees appear only in the description. The site stops after 5 pages, so one query reaches at most 150 listings (<code>reachable_results</code>): 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 <code>search_slug</code> from the autocomplete route; a place or filter combination without a result page answers 404 and is not billed. <code>min_bathrooms</code> is applied by the site and cannot be checked on the cards, so bathrooms are only read on the listing route. <code>bathrooms</code> alone returns a 422 error. <code>rooms_filter_applied_to_page_only</code> appears when the site dropped the rooms filter for a house search: listings are still checked one by one and <code>total_results</code> is null.</p>

- **Documentation:** [https://scrappa.co/docs/paruvendu-immo-api/paruvendu_immo_search](https://scrappa.co/docs/paruvendu-immo-api/paruvendu_immo_search)
- **API group:** ParuVendu Immobilier API
- **Endpoint:** `GET https://scrappa.co/api/paruvendu-immo/search`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `place` | string | Yes | Place slug: the search_slug of an autocomplete place. Example: lyon. |
| `listing_type` | string | No | sale (default) or rent. Example: sale. |
| `property_type` | string | No | apartment (default), house, studio or land. Example: apartment. |
| `rooms` | string | No | studio, 2, 3, 4, 5 or 6_plus. Apartment and house only. Example: 3. |
| `min_price` | integer | No | Minimum price in EUR (rent: monthly rent). Example: 200000. |
| `max_price` | integer | No | Maximum price in EUR. Example: 400000. |
| `min_area` | integer | No | Minimum area in m2. Example: 40. |
| `max_area` | integer | No | Maximum area in m2. Example: 120. |
| `min_bedrooms` | integer | No | Minimum bedrooms. Example: 2. |
| `min_bathrooms` | integer | No | Minimum bathrooms. Example: 2. |
| `seller` | string | No | private for private sellers only. Cannot be combined with with_photos. |
| `with_photos` | boolean | No | true to keep only listings with photos. Cannot be combined with seller. |
| `sort` | string | No | newest (default), relevance, price_asc, price_desc, area_desc, area_asc, rooms_desc or rooms_asc. |
| `page` | integer | No | Page 1 to 5 (default 1, 30 results per page). Example: 2. |

## Example response

```json
{
    "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

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required parameter or a value is invalid. This response is not billable. |
| 404 | Not Found | The listing, agency, place or result page does not exist, or the filters match nothing. This response is not billable. |
| 503 | Upstream Unavailable | ParuVendu Immobilier could not be reached. This response is not billable and is retryable. |
| 503 | Unexpected Upstream Data | ParuVendu Immobilier returned data in an unexpected shape. This response is not billable and is retryable. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
