Cette page rassemble les patterns que nous voyons systématiquement chez les intégrations qui tournent en production sans alerte.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.
Pagination — searchAfterHash
Fluximmo utilise une pagination par curseur, pas par offset. Chaque réponse inclut un searchAfterHash à renvoyer dans la requête suivante pour récupérer la page d’après.
Python
Retry côté client (request)
| Code HTTP | Retry ? | Stratégie |
|---|---|---|
2xx | Non | OK |
4xx (sauf 429) | Non | Erreur côté appelant — corriger le payload |
429 | Oui | Respecter Retry-After si présent, sinon backoff |
5xx | Oui (3-5 tentatives) | Backoff exponentiel + jitter : 2^n + random(0,1) |
Idempotence côté worker
Tous les flux Fluximmo (search, alertes, webhooks) peuvent livrer le mêmeflxId plusieurs fois. Conséquence : votre persistance doit être idempotente.
PostgreSQL — UPSERT par flxId
Refetch après webhook PROPERTIES
Les webhooks Properties ne livrent que lesflxId (pas le payload complet). Vous devez refetcher la donnée pour la persister.
Les webhooks Adverts, eux, contiennent le payload complet. Pas de refetch nécessaire.
Validation x-webhook-key
Toujours valider le header avec une comparaison timing-safe (voir Livraison des webhooks).
Filtre par défaut : exclure les biens offline
Activer un filtre offline est en général ce que vous voulez en production, sauf cas analytique rétrospectif.- Côté PROPERTIES :
filterProperty.meta.isTotallyOffline: falseexclut les biens dont toutes les annonces sont actuellement offline. - Côté ADVERTS (alerte) :
filterAd.isOnline: truene retient que les annonces actuellement publiées sur leur portail.
Payload search PROPERTIES
Tri par défaut : FIRST_SEEN_AT DESC
sortBy au root du payload accepte : FIRST_SEEN_AT, PRICE, LAST_UPDATED_AT, LAST_SEEN_AT, RELEVANCE. Combiné avec orderBy: "DESC", le tri canonique en production est FIRST_SEEN_AT DESC — vous récupérez d’abord les biens les plus récemment ingérés. Ne changez pas sortBy / orderBy entre deux pages : le cursor de pagination devient invalide.
Couvrir passé + futur
Pour ne rater aucun bien correspondant à un critère :- Côté PROPERTIES —
POST /v2/protected/properties/searchone-shot pour le passé + alerte property pour le flux continu. - Côté ADVERTS — alerte advert pour le flux continu + demande de backfill historique sur webhook par mail à [email protected] (volume + dates précisés).
- Dédupliquez côté client avec
flxIdcomme clé d’idempotence.
Checklist production-ready
- Clé API stockée en variable d’environnement (jamais en dur)
- Header
x-api-keyenvoyé sur toutes les requêtes - Retry avec backoff exponentiel + jitter sur 5xx et 429
- Pas de retry sur 4xx (sauf 429)
- UPSERT par
flxIdcôté persistance - Endpoint webhook valide
x-webhook-keyen timing-safe - Endpoint webhook acquitte en < 1s (queue + worker async)
- Refetch via
/properties/{flxId}ou bulk après webhook Properties - Filtre offline activé par défaut (
meta.isTotallyOffline=falsecôté PROPERTIES,isOnline=truecôté ADVERTS) - Tri canonique
sortBy: "FIRST_SEEN_AT", orderBy: "DESC"au root du payload search - Filtre temporel
meta.firstSeenAt.minaligné sur votre besoin (typiquement2025-01-01T00:00:00.000Zminimum) - Monitoring : taux d’erreur 5xx, latence webhook ack, taille de queue

