Python SDK
Client Python officiel pour Listings API avec ressources typées, pagination par curseur, nouvelles tentatives automatiques et erreurs nommées.
Le paquet listingsapi est le client Python officiel de Listings API. Il encapsule la couche REST avec des classes de ressources typées, une pagination par curseur, des tentatives automatiques en cas d’erreurs temporaires et une exception nommée pour chaque type d’échec, y compris les erreurs renvoyées par la plateforme dans le corps d’une réponse HTTP 200.
Installation
pip install listingsapiNécessite Python 3.9 ou une version ultérieure. La seule dépendance à l’exécution est requests.
Authentification
import listingsapi # Reads LISTINGSAPI_KEY from the environment automaticallyclient = listingsapi.ListingsAPI() # Or pass the key explicitlyclient = listingsapi.ListingsAPI(api_key="your-api-key")Obtenez votre clé API dans API Keys → New key dans le tableau de bord développeur de Listings API.
Le client accepte trois arguments nommés facultatifs :
Consultez Configuration pour plus de détails.
Exemple rapide
import listingsapi client = listingsapi.ListingsAPI() page = client.locations.list(first=5)for loc in page: print(loc.name, loc.city) print(f"has_more: {page.has_more}")Ressources
Chaque ressource est une propriété du client :
Quatre méthodes complémentaires sont disponibles directement sur le client :
client.plan_sites() # directories included in your planclient.subcategories() # business categories (IDs for locations.add)client.countries() # supported countries and states (ISO codes)client.subscriptions() # active subscriptions for the accountPagination
Les méthodes qui renvoient des listes utilisent une pagination par curseur. Chaque méthode paginée renvoie un objet SyncPage : itérable, avec .has_more, .next_page(), .auto_paging_iter() et .total.
# Fetch one pagepage = client.locations.list(first=25)for loc in page: print(loc.name) # Check if more pages existif page.has_more: next_page = page.next_page() # Auto-paginate through every resultfor loc in client.locations.list(first=100).auto_paging_iter(): print(loc.name)Objets de réponse
Toutes les méthodes renvoient APIObject (accès par attribut et par dictionnaire) ou SyncPage (itérable, paginé). APIObject prend également en charge .get() et .to_dict().
loc = client.locations.retrieve(16808) # Attribute accessprint(loc.name)print(loc.city) # Dict-style accessprint(loc["stateIso"]) # Safe access with a defaultprint(loc.get("website", "no website")) # Raw dictdata = loc.to_dict()Gestion des erreurs
Toutes les erreurs du SDK dérivent de listingsapi.ListingsAPIError. Les échecs de l’API lèvent APIError ou l’une de ses sous-classes : AuthenticationError, PermissionDeniedError, NotFoundError, ValidationError, RateLimitError (avec .retry_after) et InternalServerError. Les échecs réseau lèvent APIConnectionError.
APIError contient status_code, code (le premier code d’erreur de la plateforme, e.g. SY10005), errors (chaque entrée étant normalisée sous forme de dictionnaire {"code", "message", "context"}) et response_body.
La plateforme signale certains échecs dans le corps d’une réponse HTTP 200 : des données errors[] au niveau racine (les jetons non valides sont signalés par SY90005) et des réponses aux opérations d’écriture contenant success=false. Le SDK lève également des exceptions dans ces cas, vous n’avez donc jamais à examiner vous-même les indicateurs success.
import listingsapi client = listingsapi.ListingsAPI() try: client.locations.retrieve(999999)except listingsapi.NotFoundError: print("No such location")except listingsapi.RateLimitError as e: print(f"Rate limited, retry in {e.retry_after}s")except listingsapi.APIError as e: print(e.status_code, e.code) for err in e.errors: print(err["code"], err["message"])Consultez Gestion des erreurs pour connaître la hiérarchie complète des exceptions.
Étapes suivantes
- Installation : environnements virtuels, verrouillage des versions
- Démarrage rapide : premiers appels, création d’un établissement, réponse à un avis
- Configuration : délais d’expiration, nouvelles tentatives, URL de base
- Cas d’utilisation : exemples complets
- Établissements, Avis, Fiches, Analyses