Établissements
Listez, créez, modifiez, archivez, recherchez et récupérez des établissements via client.locations.
Toutes les méthodes relatives aux établissements se trouvent sous client.locations. Installez le SDK et configurez votre clé avant de les utiliser ; consultez Installation et Démarrage rapide.
Identifiants des établissements
Les méthodes qui prennent un location_id acceptent un identifiant numérique (16808) ou son équivalent encodé en base64 ("TG9jYXRpb246MTY4MDg="). Le SDK encode automatiquement les identifiants numériques ; les deux formes sont donc interchangeables :
# These are equivalentclient.locations.retrieve(16808)client.locations.retrieve("TG9jYXRpb246MTY4MDg=")locations.add
Créez un établissement en un seul appel en passant chaque champ obligatoire sous forme d’argument nommé. C’est la méthode recommandée pour créer des établissements. Le SDK vérifie côté client les exigences de création de l’API et lève ValidationError avant tout appel réseau ; des données non valides provoquent donc un échec immédiat accompagné d’un message clair.
client.locations.add( *, name: str, description: str, sub_category_id: int, country_iso: str, city: str | None = None, street: str | None = None, state_iso: str | None = None, postal_code: str | None = None, phone: str | None = None, website: str | None = None, store_id: str | None = None, hide_address: bool | None = None, business_hours: list[dict] | None = None, service_area: dict | None = None, place_action_links: list[dict] | None = None, enabled_site_ids: list[int] | None = None, additional_fields: dict | None = None,) -> APIObjectVérifications côté client : name contient de 2 à 150 caractères, description contient au moins 200 caractères, sub_category_id et country_iso sont présents, et city est présent sauf si hide_address=True.
La valeur renvoyée correspond aux données de création : .location contient le nouvel établissement. Vous n’avez jamais besoin de vérifier les indicateurs de réussite ; le SDK lève ValidationError lorsque l’API rejette les données envoyées.
result = client.locations.add( name="Acme Dental", description=( "Acme Dental is a family-owned dental practice offering general, " "cosmetic, and pediatric dentistry in the heart of New York. Our " "team provides cleanings, fillings, crowns, whitening, and same-day " "emergency care in a modern, comfortable office with weekend hours " "and easy online booking for new and returning patients." ), sub_category_id=1432, country_iso="US", city="New York", street="123 Jump Street", state_iso="NY", postal_code="10013", phone="6443859313", website="https://acmedental.example.com", store_id="NYC-001", place_action_links=[ {"placeActionType": "APPOINTMENT", "uri": "https://acmedental.example.com/book", "isPreferred": True}, ], enabled_site_ids=[1, 24, 87],)print("Created:", result.location.id, result.location.name)locations.list
Liste les établissements avec une pagination par curseur. Renvoie un SyncPage.
client.locations.list( *, first: int | None = None, after: str | None = None, before: str | None = None, last: int | None = None,) -> SyncPage# First page of 25page = client.locations.list(first=25)for loc in page: print(loc.name, loc.city) # Next page manuallyif page.has_more: page2 = page.next_page() # Auto-paginate all locationsfor loc in client.locations.list(first=100).auto_paging_iter(): print(loc.name)locations.retrieve
Récupère un seul établissement par son identifiant. Lève NotFoundError si l’identifiant n’existe pas.
client.locations.retrieve(location_id: str | int) -> APIObjectloc = client.locations.retrieve(16808)print(loc.name, loc.street, loc.city)locations.list_by_ids
Récupère plusieurs établissements à partir d’une liste d’identifiants (numériques ou en base64) en un seul appel.
client.locations.list_by_ids(location_ids: list[str | int]) -> list[APIObject]locs = client.locations.list_by_ids([16808, 16809, "TG9jYXRpb246MTQwMjQ="])for loc in locs: print(loc.id, loc.name)locations.list_by_store_codes
Récupère les établissements correspondant aux codes de magasin fournis.
client.locations.list_by_store_codes(store_codes: list[str]) -> list[APIObject]locs = client.locations.list_by_store_codes(["SF-001", "NYC-042"])for loc in locs: print(loc.storeId, loc.name)locations.search
Recherche des établissements par mot-clé dans le nom, l’adresse ou l’identifiant du magasin. Renvoie un SyncPage.
client.locations.search( query: str, *, fields: list[str] | None = None, first: int | None = None, after: str | None = None, before: str | None = None, last: int | None = None,) -> SyncPage# Search all fieldspage = client.locations.search("downtown dental", first=10) # Restrict to name onlypage = client.locations.search("Acme Dental", fields=["name"], first=10) for loc in page: print(loc.name, loc.city)locations.create
Crée un établissement à partir d’un dictionnaire d’entrée brut avec des noms de champs camelCase. Privilégiez locations.add pour utiliser des arguments nommés et bénéficier de la validation côté client ; utilisez create lorsque vous disposez déjà de données camelCase.
client.locations.create(input: dict) -> APIObjectChamps exigés par l’API : name, description (au moins 200 caractères), subCategoryId, countryIso et city (pour les pays où l’adressage inclut la ville).
result = client.locations.create({ "name": "Acme Dental Brooklyn", "description": ( "Acme Dental Brooklyn is a family-owned dental practice offering " "general, cosmetic, and pediatric dentistry. Our team provides " "cleanings, fillings, crowns, whitening, and same-day emergency " "care in a modern, comfortable office with weekend hours and easy " "online booking for new and returning patients across Brooklyn." ), "subCategoryId": 1432, "countryIso": "US", "city": "Brooklyn", "street": "88 Court St", "stateIso": "NY", "postalCode": "11201", "phone": "6443859314", "storeId": "NYC-002",})print("Created:", result.location.id)locations.update
Met à jour un établissement. Passez id ainsi que les champs à modifier (camelCase). id peut être numérique ou en base64 ; le SDK l’encode automatiquement.
client.locations.update(input: dict) -> APIObjectresult = client.locations.update({ "id": 16808, "phone": "6443859399", "street": "125 Jump Street",})print("Updated:", result.location.id)locations.archive
Archive un ou plusieurs établissements.
client.locations.archive(location_ids: list[str | int]) -> APIObjectresult = client.locations.archive([16808, 16809])print(result.to_dict())locations.cancel_archive
Annule un archivage planifié.
client.locations.cancel_archive( location_ids: list[str | int], selection_type: str, changed_by: str,) -> APIObjectclient.locations.cancel_archive( [16808], selection_type="manual", changed_by="admin@example.com",)Voir aussi
- Publications : publier des annonces, des événements et des offres
- Fiches : vérifier l’état de synchronisation par établissement
- Avis : lister les avis et y répondre
- Statistiques : statistiques des profils Google, Bing et Facebook