> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stream.estate/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Search

> Updates an existing search

### Path

<ParamField path="id" type="string" required>
  UUID of the existing search
</ParamField>

### Body

<ParamField body="bedroomMin" type="integer">
  Minimum number of bedrooms in the property.
</ParamField>

<ParamField body="bedroomMax" type="integer">
  Maximum number of bedrooms in the property.
</ParamField>

<ParamField body="budgetMax" type="integer">
  Maximum budget for the property.
</ParamField>

<ParamField body="budgetMin" type="integer">
  Minimum budget for the property.
</ParamField>

<ParamField body="endpointRecipient" type="string">
  HTTPS webhook that receives `match` payloads whenever a property satisfies the search. Requires `notificationEnabled=true`. You can test your endpoint with our [webhook simulator](/api-reference/endpoint/webhooks/send).
</ParamField>

<ParamField body="eventEndpoint" type="string">
  HTTPS webhook that receives advert `event` payloads (price changes, expirations, etc.) from the searches you subscribe to. Requires `notificationEnabled=true` and at least one entry in `subscribedEvents`. You can test your endpoint with our [webhook simulator](/api-reference/endpoint/webhooks/send).
</ParamField>

<ParamField body="excludedCities" type="array">
  Cities to be excluded.
</ParamField>

<ParamField body="excludedSites" type="array">
  Source sites to be excluded.
</ParamField>

<ParamField body="excludedSiteCategories" type="array">
  Site categories to be excluded.
</ParamField>

<ParamField body="expressions" type="array">
  Full text matching including/excluding words & phrases in the title or the description of the property.
  Example: `expressions[0][0][word]=travaux&expressions[0][0][options][includes]=true&expressions[0][0][options][strict]=false&expressions[0][1][word]=lumineux&expressions[0][1][options][includes]=true&expressions[0][1][options][strict]=false` which will search for properties that contain both the keywords `lumineux` and `travaux`.
</ParamField>

<ParamField body="furnished" type="boolean">
  Whether the property is furnished or not.
</ParamField>

<ParamField body="geoAccuracy" type="array">
  Filters properties by geocoding confidence level. Use `1` to keep only house-number level matches and `2` to include neighborhood-level approximations. Leave empty to allow both.
</ParamField>

<ParamField body="geoShapes" type="array">
  Filters properties within specified geographic areas. Example: `geoShapes[0][0][0]=6.063201&geoShapes[0][0][1]=44.549092&geoShapes[0][1][0]=6.063201&geoShapes[0][1][1]=44.543009&geoShapes[0][2][0]=6.073453&geoShapes[0][2][1]=44.543293&geoShapes[0][3][0]=6.073453&geoShapes[0][3][1]=44.549092&geoShapes[0][4][0]=6.063201&geoShapes[0][4][1]=44.549092`.
</ParamField>

<ParamField body="hidePropertyContact" type="boolean">
  Whether to hide property contact information or not.
</ParamField>

<ParamField body="includedCities" type="array">
  Included cities.
</ParamField>

<ParamField body="includedDepartments" type="array">
  Included departments.
</ParamField>

<ParamField body="includedSiteCategories" type="array">
  Included site categories.
</ParamField>

<ParamField body="includedSites" type="array">
  Source sites to be included.
</ParamField>

<ParamField body="includedZipcodes" type="array">
  Included zipcodes.
</ParamField>

<ParamField body="includedZipcodesInsee" type="array">
  Included INSEE codes (used to infer the cities associated with the search).
</ParamField>

<ParamField body="landSurfaceMax" type="integer">
  Maximum land surface.
</ParamField>

<ParamField body="landSurfaceMin" type="integer">
  Minimum land surface.
</ParamField>

<ParamField body="lat" type="number">
  Latitude of the center point used for radial filtering. Provide together with `lon`, otherwise this filter has no effect. Example: `lat=48.864716`
</ParamField>

<ParamField body="lon" type="number">
  Longitude of the center point used for radial filtering. Provide together with `lat`. Example: `lon=2.349014`
</ParamField>

<ParamField body="notificationEnabled" type="boolean" default="false">
  Enables delivery of matches and events either by webhook (`endpointRecipient`, `eventEndpoint`) or by email (`notificationRecipient`).
</ParamField>

<ParamField body="notificationRecipient" type="string">
  Email address that receives alert summaries when `notificationEnabled=true`. Use this as a fallback if you do not have a webhook yet.
</ParamField>

<ParamField body="pricePerMeterMax" type="integer">
  Maximum price per meter.
</ParamField>

<ParamField body="pricePerMeterMin" type="integer">
  Minimum price per meter.
</ParamField>

<ParamField body="propertyTypes" type="integer" required>
  Type of property. Apartment `0`, House `1`, Building `2`, Parking `3`, Office `4`, Land `5`, Shop `6`. Example: `propertyTypes[]=0&propertyTypes[]=1`
</ParamField>

<ParamField body="publisherTypes" type="integer">
  Type of publisher. Individual `0`, Professional `1`. Example: `publisherTypes[]=0&publisherTypes[]=1`
</ParamField>

<ParamField body="radius" type="integer">
  Distance in kilometers around the provided `lat`/`lon`. Example: `radius=20`
</ParamField>

<ParamField body="roomMin" type="integer">
  Minimum number of rooms.
</ParamField>

<ParamField body="roomMax" type="integer">
  Maximum number of rooms.
</ParamField>

<ParamField body="subscribedEvents" type="array">
  Event codes (e.g. `property.ad.create`, `ad.update.price`, `ad.update.expired`) you want to receive on the `eventEndpoint`. See the [webhook simulator page](/api-reference/endpoint/webhooks/send) for the full list.
</ParamField>

<ParamField body="surfaceMax" type="integer">
  Maximum property surface area.
</ParamField>

<ParamField body="surfaceMin" type="integer">
  Minimum property surface area.
</ParamField>

<ParamField body="title" type="string" required>
  Title of the created search.
</ParamField>

<ParamField body="transactionType" type="integer" required>
  Type of transaction. Sell `0`, Rent `1`. Example: `transactionType=0`
</ParamField>

<ParamField body="withCoherentPrice" type="boolean" default="true">
  Excludes adverts whose price has been flagged as incoherent/outlier by our quality checks. Set to `false` to return every result regardless of price sanity.
</ParamField>

<ParamField body="withVirtualTour" type="boolean">
  Whether the property includes a virtual tour.
</ParamField>

<RequestExample>
  ```bash Example Request theme={null}
  curl --location --request POST 'https://api.stream.estate/searches/{id}' \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api_key>' \
  --data-raw '{
    "bedroomMin": 0,
    "budgetMax": 0,
    "budgetMin": 0,
    "endpointRecipient": "https://www.mycompany.com/webhook_melo_match",
    "eventEndpoint": "https://www.mycompany.com/webhook_melo_updates",
    "excludedCities": [
      "string"
    ],
    "excludedSiteCategories": [
      "string"
    ],
    "expressions": "expressions[0][0][options][includes]=true&expressions[0][0][options][strict]=true&expressions[1][0][word]=viager&expressions[1][0][options][includes]=true&expressions[1][0][options][strict]=true",
    "furnished": true,
    "hidePropertyContact": true,
    "includedCities": [
      "string"
    ],
    "includedDepartments": [
      "string"
    ],
    "includedSiteCategories": [
      "string"
    ],
    "landSurfaceMax": 0,
    "landSurfaceMin": 0,
    "lat": "48.864716",
    "lon": "2.349014",
    "notificationEnabled": false,
    "notificationRecipient": "foo@bar.com",
    "pricePerMeterMax": 0,
    "pricePerMeterMin": 0,
    "propertyTypes": 3,
    "publisherTypes": 3,
    "radius": "20",
    "roomMin": 0,
    "subscribedEvents": [
      "ad.update.price"
    ],
    "surfaceMax": 0,
    "surfaceMin": 0,
    "title": "string",
    "transactionType": "0",
    "withCoherentPrice": true,
    "withVirtualTour": true
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Example Response theme={null}
  {
    "bedroomMin": 0,
    "budgetMax": 0,
    "budgetMin": 0,
    "endpointRecipient": "https://www.mycompany.com/webhook_melo_match",
    "eventEndpoint": "https://www.mycompany.com/webhook_melo_updates",
    "excludedCities": [
      "string"
    ],
    "excludedSiteCategories": [
      "string"
    ],
    "expressions": "expressions[0][0][options][includes]=true&expressions[0][0][options][strict]=true&expressions[1][0][word]=viager&expressions[1][0][options][includes]=true&expressions[1][0][options][strict]=true",
    "furnished": true,
    "hidePropertyContact": true,
    "includedCities": [
      "string"
    ],
    "includedDepartments": [
      "string"
    ],
    "includedSiteCategories": [
      "string"
    ],
    "landSurfaceMax": 0,
    "landSurfaceMin": 0,
    "lat": "48.864716",
    "lon": "2.349014",
    "notificationEnabled": false,
    "notificationRecipient": "foo@bar.com",
    "pricePerMeterMax": 0,
    "pricePerMeterMin": 0,
    "propertyTypes": 3,
    "publisherTypes": 3,
    "radius": "20",
    "roomMin": 0,
    "subscribedEvents": [
      "ad.update.price"
    ],
    "surfaceMax": 0,
    "surfaceMin": 0,
    "title": "string",
    "transactionType": "0",
    "withCoherentPrice": true,
    "withVirtualTour": true
  }
  ```
</ResponseExample>
