# Ouest-France Immo Property Search API Documentation

Search Ouest-France Immo property listings in France for sale or rent. Filter by property type, place (ids from /autocomplete), price in EUR, living area in square metres, minimum bedrooms and minimum rooms, then sort and page. Each item carries the price (price_kind says sale_price or monthly_rent), agency fees, charges, rent excluding charges, price drops, area, rooms, bedrooms, floor, features, energy class (DPE and GES), coordinates, place, full description, dates, photos, virtual tour, video, flags and the agency id and phone. Every other filled field of the source ad is returned under attributes. Filtering by bathrooms is not offered: the source has no bathroom filter, so the bathrooms, min_bathrooms and max_bathrooms parameters are rejected with a 422 instead of being ignored. The bathrooms field of an item is only filled when the ad states it. Land and exceptional properties exist for sale only. A page past the last one is a valid empty page that keeps the requested page number and the true totals.

- **Documentation:** [https://scrappa.co/docs/ouestfrance-immo-api/ouestfrance_immo_search](https://scrappa.co/docs/ouestfrance-immo-api/ouestfrance_immo_search)
- **API group:** Ouest-France Immo API
- **Endpoint:** `GET https://scrappa.co/api/ouestfrance-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 |
| --- | --- | --- | --- |
| `listing_type` | string | Yes | sale or rent. |
| `property_type` | string | No | Sale: apartment, house, land, parking, exceptional or other. Rent: apartment, house, parking or other. Without it all types match. |
| `place_id` | string | No | One or more place ids from /autocomplete, separated by commas (at most 10). Example: 15818 for Rennes. Without a place the search covers all of France. |
| `min_price` | integer | No | Minimum price in EUR (sale price or monthly rent). |
| `max_price` | integer | No | Maximum price in EUR. |
| `min_area` | integer | No | Minimum living area in square metres. |
| `min_bedrooms` | integer | No | Minimum number of bedrooms. |
| `min_rooms` | integer | No | Minimum number of rooms (pièces). |
| `sort` | string | No | price_asc, price_desc or date_desc. Without it the order is the Ouest-France Immo default. |
| `page` | integer | No | One-based page number. Defaults to 1. |
| `limit` | integer | No | Listings per page, 1 to 50. Defaults to 24. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/ouestfrance-immo/search?listing_type=sale&property_type=apartment&place_id=15818&max_price=300000&min_bedrooms=2&limit=5"
```

## Example response

```json
{
    "success": true,
    "data": {
        "items": [
            {
                "id": 20677139,
                "reference": "JN0785-NP2",
                "url": "https://www.ouestfrance-immo.com/immobilier/vente/appartement/rennes-35-35238/3-pieces-20677139.htm",
                "listing_type": "sale",
                "property_type": {
                    "id": 201,
                    "label": "Vente appartement",
                    "slug": "appartement",
                    "category_id": 6202,
                    "category_label": "3 pi\u00e8ces",
                    "category_slug": "3-pieces"
                },
                "price": 104500,
                "price_kind": "sale_price",
                "currency": "EUR",
                "pricing": {
                    "agency_fee": 4500,
                    "agency_fee_percent": 4.5,
                    "charges": null,
                    "rent_excluding_charges": null,
                    "deposit": null,
                    "price_drop_amount": null,
                    "price_drop_percent": null,
                    "coownership_lots": 140,
                    "coownership_annual_charges": 2127
                },
                "area_sqm": 64,
                "land_area_sqm": null,
                "rooms": 3,
                "bedrooms": 3,
                "bathrooms": null,
                "shower_rooms": 1,
                "floor": "3",
                "floors_in_building": 8,
                "features": {
                    "balcony": true,
                    "terrace": false,
                    "garden": false,
                    "cellar": true,
                    "elevator": true,
                    "swimming_pool": false,
                    "furnished": false,
                    "heating_type": "autre",
                    "heating_mode": "collectif",
                    "exposure": "Sud"
                },
                "energy": {
                    "dpe_class": "D",
                    "dpe_value": 176,
                    "ges_class": "C",
                    "ges_value": 25
                },
                "location": {
                    "latitude": 48.123177,
                    "longitude": -1.708372,
                    "place_id": 100024,
                    "place_name": "Rennes Villejean",
                    "city": {
                        "id": 15818,
                        "name": "Rennes",
                        "type": "Villes",
                        "postal_code": "35000",
                        "insee_code": "35238"
                    },
                    "district": {
                        "id": 100024,
                        "name": "Rennes Villejean",
                        "type": "Quartiers"
                    }
                },
                "description": "Au 3\u00e8me \u00e9tage avec ascenseur, appartement T3 de 64 m2 \u00e0 r\u00e9nover.",
                "tags": "A r\u00e9nover",
                "dates": {
                    "created_at": "2026-09-17 16:04:23",
                    "published_at": "2026-10-23 00:00:00"
                },
                "photo_count": 7,
                "photos": [
                    "https://www.ouestfrance-immo.com/photo-vente-appartement-rennes-villejean-35/201/appartement-a-vendre-rennes-villejean-20677139_1.jpg"
                ],
                "virtual_tour_url": "https://my.matterport.com/show/?m=mebv5ECRRGi",
                "flags": {
                    "exclusive": false,
                    "professional": true,
                    "sold": false,
                    "new_build_programme": false
                },
                "agency": {
                    "id": 15197,
                    "phone": "0200000000",
                    "profile": null
                },
                "attributes": {
                    "transac_lib": "Vente",
                    "lieu_lib": "Rennes Villejean"
                }
            }
        ],
        "pagination": {
            "page": 1,
            "limit": 5,
            "total_results": 1042,
            "total_pages": 209,
            "has_next": true
        }
    },
    "meta": {
        "endpoint_family": "search",
        "billable": true
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A public parameter is missing or invalid. No upstream call is made and the response is not billable. |
| 502 | Unexpected Upstream Response | Ouest-France Immo answered with a body that is not the documented shape. The response is not billable. |
| 503 | Upstream Unavailable | Ouest-France Immo was temporarily unavailable or blocked the request. The response is not billable and the request never answers 429. |

## 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)
