Skip to main content
Create a new alert for this Property search
curl --request PUT \
  --url https://api.fluximmo.io/v2/protected/properties/search/alerts \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "search_query": {
    "filterProperty": {
      "adverts": [],
      "habitation": {
        "bathroomCount": {
          "max": 123,
          "min": 123
        },
        "bedroomCount": {
          "max": 123,
          "min": 123
        },
        "characteristics": {
          "hasAlarm": true,
          "hasBalcony": true,
          "hasCellar": true,
          "hasConcierge": true,
          "hasDigicode": true,
          "hasFireplace": true,
          "hasGarage": true,
          "hasGarden": true,
          "hasGrenier": true,
          "hasInterphone": true,
          "hasJacuzzi": true,
          "hasLand": true,
          "hasLift": true,
          "hasMezzanine": true,
          "hasParking": true,
          "hasPool": true,
          "hasTerrace": true,
          "hasVisAVis": true,
          "isPeaceful": true
        },
        "climate": {
          "epcClimate": [],
          "epcClimateScore": {
            "max": 123,
            "min": 123
          },
          "epcEnergy": [],
          "epcEnergyScore": {
            "max": 123,
            "min": 123
          },
          "epcClimateDate": {
            "max": "2022-10-21T11:31:33.593Z",
            "min": "2022-10-21T11:31:33.593Z"
          },
          "epcEnergyDate": {
            "max": "2022-10-21T11:31:33.593Z",
            "min": "2022-10-21T11:31:33.593Z"
          }
        },
        "features": {
          "exposure": [],
          "furniture": [],
          "propertyFloor": {
            "max": 123,
            "min": 123
          },
          "propertyTotalFloor": {
            "max": 123,
            "min": 123
          },
          "constructionMaterials": [],
          "glazingTypes": [],
          "hasThroughExposure": true,
          "viewOns": [],
          "viewTypes": []
        },
        "heatTypes": [],
        "heatTypeDetails": [],
        "heatings": [],
        "propertyCondition": [
          {
            "constructionYear": 123,
            "interiorCondition": null,
            "renovationYear": 123,
            "generalConditions": []
          }
        ],
        "roomCount": {
          "max": 123,
          "min": 123
        },
        "surface": {
          "balconies": {
            "max": 123,
            "min": 123
          },
          "floorSpace": {
            "max": 123,
            "min": 123
          },
          "gardens": {
            "max": 123,
            "min": 123
          },
          "groundFloor": {
            "max": 123,
            "min": 123
          },
          "kitchen": {
            "max": 123,
            "min": 123
          },
          "livingSpace": {
            "max": 123,
            "min": 123
          },
          "livingroom": {
            "max": 123,
            "min": 123
          },
          "terraces": {
            "max": 123,
            "min": 123
          },
          "total": {
            "max": 123,
            "min": 123
          }
        },
        "type": "PROPERTY_TYPE_T1_T2",
        "wcCount": {
          "max": 123,
          "min": 123
        }
      },
      "isUrgent": true,
      "land": {
        "canConstruct": true,
        "isServiced": true,
        "surface": {
          "max": 123,
          "min": 123
        },
        "surfaceConstructable": {
          "max": 123,
          "min": 123
        },
        "type": [],
        "haveBuildingPermit": true,
        "haveElectricity": true,
        "haveTelecom": true,
        "haveWater": true
      },
      "location": [],
      "meta": {
        "firstSeenAt": {
          "max": "2022-10-21T11:31:33.593Z",
          "min": "2022-10-21T11:31:33.593Z"
        },
        "isTotallyOffline": true,
        "lastPublishedAt": {
          "max": "2022-10-21T11:31:33.593Z",
          "min": "2022-10-21T11:31:33.593Z"
        },
        "lastSeenAt": {
          "max": "2022-10-21T11:31:33.593Z",
          "min": "2022-10-21T11:31:33.593Z"
        },
        "lastUpdatedAt": {
          "max": "2022-10-21T11:31:33.593Z",
          "min": "2022-10-21T11:31:33.593Z"
        }
      },
      "parking": {
        "count": {
          "max": 123,
          "min": 123
        },
        "numberOfCars": {
          "max": 123,
          "min": 123
        },
        "surface": {
          "max": 123,
          "min": 123
        },
        "type": []
      },
      "price": {
        "currency": [],
        "initial": {
          "source": {
            "flxId": "<string>",
            "url": "<string>",
            "website": "<string>"
          },
          "value": {
            "max": 123,
            "min": 123
          },
          "valuePerArea": {
            "max": 123,
            "min": 123
          }
        },
        "isAuction": true,
        "latest": {
          "source": {
            "flxId": "<string>",
            "url": "<string>",
            "website": "<string>"
          },
          "value": {
            "max": 123,
            "min": 123
          },
          "valuePerArea": {
            "max": 123,
            "min": 123
          }
        },
        "scope": [],
        "warrantyDeposit": {
          "max": 123,
          "min": 123
        },
        "variation": []
      },
      "process": [],
      "tags": [
        "<string>"
      ],
      "type": [
        "CLASS_HOUSE"
      ],
      "hasAnomaly": true,
      "offer": []
    },
    "fullTexts": [
      "<string>"
    ],
    "keywords": [
      "<string>"
    ]
  },
  "webhook_url": "<string>",
  "search_name": "<string>",
  "match": [
    "ALERT_MATCH_CREATED"
  ],
  "context": {
    "metadata": {}
  }
}
'
{
  "data": {
    "alert_id": "<string>"
  }
}

Documentation Index

Fetch the complete documentation index at: https://doc.fluximmo.io/llms.txt

Use this file to discover all available pages before exploring further.

Avant de créer une alerte, vérifier que ton webhook répond 200 aux données de sample disponibles sans auth (GET /v2/sample/webhook/properties).
PUT /v2/protected/properties/search/alerts crée une alerte properties : à chaque property qui matche search_query, Fluximmo POSTe sur webhook_url un payload IDs only que vous refetchez ensuite via GET /v2/protected/properties/{flxId} ou en bulk via /properties/bulk. Le search_query réutilise le schéma de POST /v2/protected/properties/search. Pas de backfill à la création. Seules les properties créées / mises à jour après la création de l’alerte déclenchent un webhook.

Champs clés

  • search_query — payload FilterProperty, identique au search.
  • webhook_url — endpoint HTTPS public (cf. Webhooks).
  • match — tableau parmi ALERT_MATCH_CREATED (nouvelle property qualifiée) et ALERT_MATCH_MERGED (uniquement quand une nouvelle advert vient d’être fusionnée dans une property déjà matchée — pas à la création). Voir Match types & cycle alerte.
  • search_name — libellé humain.
  • context — objet QueryContextDto { metadata: object } propagé tel quel dans chaque webhook. Exemple : "context": {"metadata": {}} (objet, pas une string sérialisée).
Combo standard recommandé : match: ["ALERT_MATCH_CREATED"] seul. L’ajout de ALERT_MATCH_MERGED est un mode avancé qui multiplie le volume webhook (chaque enrichissement / fusion d’une property déjà matchée déclenche un nouvel appel). À réserver aux cas où vous voulez aussi recevoir les fusions a posteriori (analytics historique, scoring continu).

Cas d’usage

  • Marketplace / réplication BDD — synchroniser un référentiel de biens dédupliqués.
  • Analytics fintech — capter le flux de nouvelles properties d’un département pour stats temps réel.
  • AVM — alimenter un modèle d’estimation au fil de l’eau avec des biens nouvellement vus.

Exemples

C1 ★★ — Combo standard (default match=[CREATED])

Achat appartement Paris 1er, exclusion des biens totalement offline. Volume webhook minimal.
{
  "search_query": {
    "filterProperty": {
      "location": [{ "postalCode": "75001" }],
      "type": ["CLASS_FLAT"],
      "offer": [{ "type": "OFFER_BUY" }],
      "meta": { "isTotallyOffline": false }
    }
  },
  "webhook_url": "https://votre-domaine.com/webhooks/fluximmo-properties",
  "match": ["ALERT_MATCH_CREATED"],
  "search_name": "Properties Paris achat appartement"
}

C2 — Département + isTotallyOffline=false (analytics fintech)

Toutes les nouvelles properties d’achat dans un département, exclusion offline.
{
  "search_query": {
    "filterProperty": {
      "location": [{ "department": "13" }],
      "type": ["CLASS_FLAT", "CLASS_HOUSE"],
      "offer": [{ "type": "OFFER_BUY" }],
      "meta": { "isTotallyOffline": false }
    }
  },
  "webhook_url": "https://analytics.example.com/webhooks/fluximmo",
  "match": ["ALERT_MATCH_CREATED"],
  "search_name": "Bouches-du-Rhône achat - analytics"
}

C3 — match=[CREATED, MERGED] AVANCÉ

Recevoir aussi les fusions (= une property déjà matchée a été enrichie : nouvel advert rattaché, prix recalculé, etc.).
{
  "search_query": {
    "filterProperty": {
      "location": [{ "postalCode": "75009" }, { "postalCode": "75017" }],
      "type": ["CLASS_FLAT"],
      "offer": [{ "type": "OFFER_BUY" }],
      "price": { "latest": { "value": { "min": 50000, "max": 358000 } } },
      "meta": { "isTotallyOffline": false }
    }
  },
  "webhook_url": "https://votre-domaine.com/webhooks/fluximmo",
  "match": ["ALERT_MATCH_CREATED", "ALERT_MATCH_MERGED"],
  "search_name": "Paris 9/17 - veille enrichie"
}
Ce mode génère plus de webhooks uniquement quand une nouvelle advert est fusionnée dans une property déjà matchée — pas à chaque check de fraîcheur. Sur des filtres larges et un volume d’ingestion élevé, mesurez votre capacité receiver avant d’activer ALERT_MATCH_MERGED.

Authorizations

x-api-key
string
header
required

Body

application/json
search_query
object
required
webhook_url
string
search_name
string
match
enum<string>[]
Available options:
ALERT_MATCH_UNKNOWN,
ALERT_MATCH_CREATED,
ALERT_MATCH_MERGED
Example:
["ALERT_MATCH_CREATED"]
context
object

Response

data
object
required