Passer au contenu principal
POST
/
properties
/
search
Search properties with filters
curl --request POST \
  --url https://api.immoteur.com/public/v1/properties/search \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "page": 1,
  "transactionType": "sale",
  "propertyTypes": [
    "apartment",
    "house"
  ],
  "locationDepartments": [
    "75",
    "92"
  ],
  "locationInseeCodes": [
    "75056",
    "92050"
  ],
  "locationPostcodes": [
    "75001",
    "92000"
  ],
  "locationGeoBbox": {
    "sw": {
      "lat": 48.8156,
      "lng": 2.2241
    },
    "ne": {
      "lat": 48.9021,
      "lng": 2.4699
    }
  },
  "locationGeoCircle": {
    "center": {
      "lat": 48.8566,
      "lng": 2.3522
    },
    "radiusMeters": 5000
  },
  "transactionPriceMin": 200000,
  "transactionPriceMax": 1000000,
  "propertyBedroomCountMin": 2,
  "propertyAreaMin": 40,
  "propertyElevatorExists": true,
  "propertyTerraceExists": true,
  "propertyParkingExists": true,
  "sourceDomains": [
    "bienici.com",
    "orpi.com"
  ],
  "sourceDomainsCountMin": 1,
  "sourceDomainsCountMax": 3
}'
{
  "items": [
    {
      "id": "3a8f1d72-3d0b-4ee6-9a83-a7a9a73ae6c2",
      "status": {
        "current": "available"
      },
      "description": "Appartement lumineux de 3 pièces avec balcon.",
      "location": {
        "city": {
          "name": "Paris",
          "inseeCode": "75056"
        },
        "country": "france",
        "department": "75",
        "postcode": "75001",
        "latitude": 48.8606,
        "longitude": 2.3376
      },
      "media": {
        "images": [
          {
            "id": "2f6bb0f5-1e2f-4dc9-8f46-8fd0c1f7cafe",
            "position": 1,
            "url": "https://images.immoteur.com/sample/apt-paris-1.jpg"
          }
        ]
      },
      "property": {
        "type": "apartment",
        "area": 52.5,
        "bedroomCount": 2,
        "roomCount": 3,
        "balconyExists": true
      },
      "classifieds": [
        {
          "id": "75caa436-207a-4f06-b0d1-3c1a3508dbbb",
          "status": {
            "current": "available"
          },
          "source": {
            "domain": "seloger.com",
            "url": "https://www.seloger.com/annonces/achat/appartement/paris-1er-75/5-pieces/0.htm"
          },
          "publisher": {
            "isProfessional": true,
            "type": "agency",
            "email": "contact@agence-paris.fr",
            "phone": "+33123456789",
            "feesUrl": "https://www.agence-paris.fr/honoraires",
            "siren": "123456789"
          },
          "transaction": {
            "current": 650000,
            "history": [
              {
                "value": 680000,
                "timestamp": "2025-06-20T10:23:00Z"
              },
              {
                "value": 650000,
                "timestamp": "2025-06-25T07:45:00Z"
              }
            ],
            "initial": 680000,
            "perSquareUnit": 12500
          }
        }
      ],
      "transaction": {
        "type": "sale",
        "price": {
          "current": 650000,
          "history": [
            {
              "value": 680000,
              "timestamp": "2025-06-20T10:23:00Z"
            },
            {
              "value": 650000,
              "timestamp": "2025-06-25T07:45:00Z"
            }
          ],
          "initial": 680000,
          "perSquareUnit": 12500
        }
      },
      "meta": {
        "firstSeenAt": "2025-05-10T08:00:00Z",
        "lastSeenAt": "2025-06-20T11:00:00Z"
      },
      "energy": {
        "dpe": {
          "date": "2023-05-10",
          "label": "d",
          "value": 180
        },
        "ges": {
          "date": "2023-05-10",
          "label": "e",
          "value": 45
        },
        "heating": {
          "source": "gas",
          "system": "radiator",
          "type": "individual"
        }
      }
    }
  ],
  "meta": {
    "subscriptionPlan": "pro200",
    "dataAccessLimit": {
      "departments": [
        "75",
        "92"
      ],
      "sirens": [
        "123456789"
      ],
      "sirets": [
        "12345678900011"
      ]
    },
    "page": 1,
    "nextPage": 2,
    "perPage": 20,
    "total": 240,
    "totalPages": 12
  }
}

Authorizations

Authorization
string
header
required

Send your Immoteur Personal Access Token in the Authorization header: Authorization: Bearer <token>

You can create and manage your Personal Access Tokens here: https://immoteur.com/dashboard/settings status: current: available

Body

application/json
page
integer
default:1
required

1-based page index.

Required range: 1 <= x <= 500
Example:

1

propertyTypes
enum<string>[]
required

One or more property types to include.

Example:
["apartment", "house"]
transactionType
enum<string>
required
Options disponibles:
rent,
sale
energyDpeLabels
enum<string>[]

Filter results to properties whose DPE label matches one of the provided letters.

Example:
["a", "b"]
energyGesLabels
enum<string>[]

Filter results to properties whose greenhouse-gas (GES) label matches one of the provided letters.

Example:
["a", "b"]
locationDepartments
string[]

List of French department codes (e.g., "75" for Paris).

Example:
["75", "92"]
locationGeoBbox
object

Bounding box filter built from south-west and north-east corners in EPSG:4326.

locationGeoCircle
object

Circular geo filter defined by a center and radius in meters.

locationInseeCodes
string[]

List of INSEE city codes.

Example:
["75056", "92050"]
locationPostcodes
string[]

List of French postcodes.

Example:
["75001", "92000"]
orderBy
enum<string>
default:desc

Direction applied to sortBy. Defaults to desc.

Options disponibles:
asc,
desc
propertyAreaMax
integer

Maximum property area (m²).

Example:

100

propertyAreaMin
integer

Minimum property area (m²).

Example:

40

propertyBalconyExists
boolean

Filter results to properties that have a balcony.

Example:

true

propertyBedroomCountMin
integer

Minimum number of bedrooms.

Required range: x >= 0
Example:

2

propertyCellarExists
boolean

Filter results to properties that have a cellar.

Example:

false

propertyElevatorExists
boolean

Filter results to properties that have an elevator.

Example:

true

propertyGarageExists
boolean

Filter results to properties that have a garage.

Example:

false

propertyGardenExists
boolean

Filter results to properties that have a garden.

Example:

false

propertyIsProgram
boolean

Limit to new-build/off-plan programs.

Example:

false

propertyParkingExists
boolean

Filter results to properties that have parking.

Example:

true

propertyRoomCountMin
integer

Minimum total room count.

Required range: x >= 0
Example:

3

propertySwimmingPoolExists
boolean

Filter results to properties that have a swimming pool.

Example:

false

propertyTerraceExists
boolean

Filter results to properties that have a terrace.

Example:

true

sortBy
enum<string>
default:firstSeenAt

Field used to sort results. Set orderBy to switch between ascending or descending order. Defaults to firstSeenAt with desc.

Options disponibles:
firstSeenAt,
lastSeenAt,
lastUpdatedAt,
price,
priceChangeDate,
pricePerSquareMeter,
relevance
sourceDomains
string[]

Limit results to classifieds originating from the provided domains.

Example:
["bienici.com", "orpi.com"]
sourceDomainsCountMax
integer

Maximum number of distinct source domains attached to each property.

Example:

3

sourceDomainsCountMin
integer

Minimum number of distinct source domains attached to each property.

Example:

1

transactionPriceHasChanged
boolean

Only properties whose price has changed recently.

Example:

false

transactionPriceMax
integer

Maximum current price.

Example:

1000000

transactionPriceMin
integer

Minimum current price.

Example:

200000

Response

List of properties matching the filters

items
object[]
required
meta
object
required