Référence API
Migrer de la v3.2 vers la v3.3
La version 3.3 de l'API MLS CONNECT est servie sous le préfixe
/api/v3.3/. Les préfixes /api/v3/, /api/v3.1/ et /api/v3.2/ continuent de servir les versions 3.0, 3.1 et 3.2, sans aucun changement de forme. Vous migrez donc quand vous le décidez : rien ne change pour vous tant que vous n'avez pas modifié vos URLs.La 3.3 ne retire ni ne renomme aucun champ. Elle ajoute des valeurs à deux vocabulaires déjà servis, un sous-type de bien et neuf aménagements, de nouvelles clés, et six filtres à la recherche de biens, dont un aussi à la recherche d'agences. Les uns comme les autres n'apparaissent que sous le nouveau préfixe : une version publiée ne change plus de forme, et un client qui ne connaît que la 3.2 pourrait mal les traiter. La description complète de chaque route et de chaque champ est dans la documentation de référence, qui décrit la version 3.3.
Ce qui change
| Champ | 3.0 à 3.2 | 3.3 |
|---|---|---|
property_subtype.slug d'un loft (recherche) |
studio |
loft |
property_type.sub_type.slug d'un loft (détail) |
studio |
loft |
amenities |
sans les neuf valeurs ci-dessous | avec ces neuf valeurs |
| Nouvelles clés, ci-dessous | absentes | servies |
Filtres country_iso, shapes et leurs !
|
ignorés | appliqués |
Filtres agency_network et agency_network!
|
ignorés | appliqués |
Le sous-type loft
Les lofts sont un sous-type d'appartement à part entière :
loft. Jusqu'en 3.2, ils sont servis sous le sous-type studio, avec ses libellés.// v3.2 "property_subtype": {"slug": "studio", "fr": "Studio", "en": "Studio", …} // v3.3 "property_subtype": {"slug": "loft", "fr": "Loft", "en": "Loft", …}
En recherche, le filtre suit la version appelée : sous
/api/v3.2/, property_subtype=studio ramène aussi les lofts, comme property_subtype!=studio les exclut. Sous /api/v3.3/, studio ne désigne plus que les studios.
À faire : ajouter
loft à votre table des sous-types. Si vous filtrez sur studio pour obtenir aussi les lofts, filtrez sur studio,loft.Neuf aménagements
amenities reçoit neuf nouvelles valeurs :| Valeur | Sens |
|---|---|
prestige |
Bien marqué Prestige |
pets_accepted |
Animaux acceptés, avec ou sans conditions, ou au moins une espèce |
pets_cats_allowed |
Chats acceptés |
pets_dogs_allowed |
Chiens acceptés |
senior_residence |
Résidence pour aînés |
furnished |
Meublé |
any_parking |
Au moins un stationnement, garage compris |
outdoor_storage |
Rangement extérieur |
storage |
Un rangement, quel qu'il soit : cave, cellier ou rangement extérieur |
parking garde son sens : il exclut le garage, qui a son propre aménagement garage. Le filtre amenity combinant ses valeurs en « et », c'est any_parking qui répond à « un stationnement, quel qu'il soit ».Le filtre
amenity accepte ces valeurs sous tous les préfixes. Seule leur présence dans les réponses dépend de la version.
À faire : accepter ces valeurs dans votre traitement de
amenities, ou ignorer celles que vous ne connaissez pas.Nouvelles clés
Ces clés ne sont servies que sous
/api/v3.3/ : sous un préfixe antérieur, elles sont absentes des réponses. Toutes, sauf missing_from_feed_at, s'écrivent en revanche en création et en mise à jour sous tous les préfixes, et les filtres de recherche qui les accompagnent sont acceptés partout.-
prestigeetlifestyles: le drapeau Prestige du bien et ses lifestyles. Le détail sert les preuves de chaque lifestyle, la recherche seulement leur type et leur position. La recherche ne porte pas la cléprestige: un bien Prestige y porte l'aménagementprestige, etlifestylesy est absent quand le bien n'en a aucun. Ils s'écrivent sur un board où le portail Prestige MLS est actif, ailleursprestige: trueet des lifestyles sont refusés ; ils se filtrent aveclifestyleetlifestyle!. -
inclusionsetexclusions: ce qui est inclus avec le bien et ce qui en est exclu, une clé par locale. - Dans
generalde la fiche :outdoor_storage,pets_allowed,pets_cats_allowed,pets_dogs_allowed,senior_residenceetsenior_autonomy. Chaque résultat de recherche porte les mêmes champs à sa racine, plushandicapped_access,cellaretparking_outside. -
missing_from_feed_at, à la racine de la fiche et de chaque résultat de recherche : la date à laquelle la source d'import a cessé d'envoyer le bien,nulltant qu'elle l'envoie. Elle s'efface quand le bien revient dans le flux ; elle ne s'écrit pas, et une création ou une mise à jour par l'API l'efface aussi. Un bien en vente ou en location qui sort du flux passe en même temps en retrait de mandat. Un bien vendu ou loué garde son statut, et ne reçoit cette date que d'une source qui garde ses ventes dans son flux. Elle se filtre avec les suffixes_gt,_gte,_ltet_lte, et se trie avecsort=missing_from_feed_at. -
agency_network(slug,name), sur l'agence du bien et sur chaque co-inscripteur, ainsi que dans la recherche et la fiche d'agence : le réseau d'agences (bannière) de l'agence,nullsi elle n'en a pas. Sonslugest la valeur du filtreagency_network. -
featured, à la racine de la fiche et de chaque résultat de recherche : le drapeau coup de cœur du bien. Il n'existe que sur un board où l'option coup de cœur est activée : ailleurs, il vaut toujoursfalse, y compris sur un bien resté marqué après la désactivation de l'option, et untrueenvoyé est refusé en422.
pets_allowed vaut yes, no ou conditional. null signifie que la source ne s'est pas prononcée : ce n'est pas un refus. senior_autonomy vaut autonomous, semi_autonomous ou non_autonomous.
À faire : accepter ces clés, ou ignorer celles que vous ne connaissez pas.
Deux filtres de recherche : country_iso et shapes
country_iso filtre sur le code pays ISO 3166-1 alpha-2 (fr, be, ca…), sans distinction de casse. Le filtre country, lui, attend le slug du pays (france, belgique).shapes cherche dans une union de zones : des cercles et des polygones séparés par ;, chacun préfixé par son type. Un bien est retenu s'il tombe dans au moins une zone.shapes=circle:7.272547,43.71769,500m;polygon:7.472159,43.770355,7.471648,43.756619,7.494524,43.755913
Une liste mal formée est refusée en
400. Le format complet est dans la documentation de référence.country_iso! et shapes! excluent les biens correspondants.Le filtre agency_network
agency_network ne retient que les biens des agences d'un réseau (bannière), co-inscriptions comprises : agency_network=ROYLEP,PRD, sans distinction de casse. agency_network! exclut les biens de ces réseaux. La recherche d'agences accepte aussi agency_network.Sous un préfixe antérieur, ces six filtres sont ignorés : la recherche répond comme s'ils n'avaient pas été envoyés.
À faire : ne pas envoyer ces filtres avant d'avoir basculé sur
/api/v3.3/, sous peine de recevoir le stock non filtré.Marche à suivre
-
Mettre à jour vos référentiels : le sous-type
loft, les neuf aménagements et les nouvelles clés. -
Revoir vos filtres sur
studio, s'il y en a, et n'utilisercountry_iso,shapesetagency_networkqu'une fois sur le nouveau préfixe. -
Tester sur
/api/v3.3/avec vos clés habituelles. Les mêmes clésapiKeyetapiTokenservent tous les préfixes, sur les mêmes boards. -
Contrôler l'en-tête
X-Api-Versionde vos réponses réussies : il vaut3.3sur le nouveau préfixe. Les réponses d'erreur ne le portent pas. - Basculer le préfixe dans votre configuration. Aucune autre modification d'URL n'est nécessaire : les routes sont identiques.
# avant GET https://app.mls-connect.com/fr/api/v3.2/properties/search?mls_board=xxx # après GET https://app.mls-connect.com/fr/api/v3.3/properties/search?mls_board=xxx
Si vous êtes sur un préfixe plus ancien, passez directement à la 3.3 en appliquant aussi les changements décrits dans Migrer de la v3 vers la v3.1 et Migrer de la v3.1 vers la v3.2.
Ce qui ne change pas
- La forme des réponses : aucun champ n'est retiré, renommé ni retypé
- Les routes et leurs paramètres
- Le sens des filtres existants, en dehors de
property_subtypesurstudio. Les filtreslifestyle,lifestyle!etmissing_from_feed_at_*, et le trisort=missing_from_feed_at, s'y ajoutent sous tous les préfixes ;country_iso,shapes,agency_networket leurs!sous/api/v3.3/seulement - L'authentification par
apiKeyetapiToken, et les droits par board - La pagination et les curseurs
- Les codes HTTP des erreurs, tels que la 3.2 les a fixés
- L'écriture d'un sous-type :
studiodésigne un studio sous tous les préfixes, etlofts'écrit sous tous les préfixes