Documentation de l'API fournisseur
Tous les points de terminaison, champs, réponses et erreurs sur une seule page. Les exemples utilisent curl et JSON.
Premiers pas
JSON sur HTTPS. Envoyez un appel par client à chaque changement de son interrupteur. Chaque appel peut être répété sans risque.
URL de basehttps://api.anuto.app/v1
Points de terminaison
| Point de terminaison | Signification |
|---|---|
POST/provider/clients | Activer ou mettre à jour un client |
GET/provider/clients/{externalId} | Statut d'un client |
DELETE/provider/clients/{externalId} | Désactiver un client et retirer ses annonces |
POST/provider/clients/{externalId}/changes | Signaler à Anuto que le stock d'un client a changé |
GET/provider/me | Vérifier la clé : nom du fournisseur, formats et statut |
Les nouvelles tentatives sont sûres
Les appels avec le même externalId mettent à jour ce client. Ils ne créent jamais de doublons, vous pouvez donc réessayer après un délai dépassé.
Authentification
Envoyez votre clé dans l'en-tête Authorization de chaque requête. Les clés commencent par anp_, ne s'affichent qu'une fois et peuvent être renouvelées sur la page des clés API.
Authorization: Bearer anp_…Activer ou mettre à jour un client
POST/provider/clients
Envoyez les données du client quand son interrupteur s'active. Répéter l'appel avec le même externalId met à jour ce client.
curl -X POST https://api.anuto.app/v1/provider/clients \
-H "Authorization: Bearer $ANUTO_KEY" \
-H "Content-Type: application/json" \
-d '{
"externalId": "12345",
"name": "Casa Sol Real Estate",
"email": "[email protected]",
"phone": "+34 600 000 000",
"website": "https://casasol.es",
"country": "ES",
"listingsCount": 85
}'| Champ | Obligatoire | Signification |
|---|---|---|
externalId | Obligatoire | Votre ID pour ce client (par exemple son identifiant de compte ou d'entreprise dans votre logiciel). De 1 à 100 caractères. |
name | Obligatoire | Raison sociale (jusqu'à 120 caractères). |
email | Obligatoire | E-mail de contact du client. Sert à créer son compte Anuto s'il est nouveau sur Anuto. |
country | Obligatoire | Code pays ISO à deux lettres, par exemple ES. |
phone | Facultatif | Téléphone de contact (jusqu'à 40 caractères). |
website | Facultatif | Site web du client, http ou https. |
format | Facultatif | Nécessaire uniquement si votre accès couvre plusieurs intégrations. |
connection | Facultatif | Champs de connexion pour votre intégration, le cas échéant. Nous vous indiquons lesquels lors de l'approbation de votre accès. |
listingsCount | Facultatif | Nombre d'annonces du client, pour la planification. |
test | Facultatif | Valide seulement les données et la connexion. Rien n'est créé. |
Réponse
Chaque appel renvoie le statut du client, ses compteurs d'annonces et son offre.
{
"externalId": "12345",
"clientId": "Xw3kQ9mZr2LpT7vNa4Bc",
"status": "active",
"shopUrl": "https://es.anuto.app/@casa-sol",
"listings": { "active": 10, "waiting": 0, "planWaiting": 75 },
"plan": { "tier": "free", "maxActive": 10, "freeMaxActive": 10 },
"upgradeUrl": "https://es.anuto.app/user/manage/plan",
"lastSyncAt": "2026-10-08T09:30:00.000Z"
}Consulter le statut d'un client
GET/provider/clients/{externalId}
Renvoie le statut actuel du client, le nombre d'annonces et le forfait, dans le même format que la réponse d'activation.
curl https://api.anuto.app/v1/provider/clients/12345 \
-H "Authorization: Bearer $ANUTO_KEY"Désactiver un client
DELETE/provider/clients/{externalId}
Supprimer un client le désactive et retire ses annonces d'Anuto.
curl -X DELETE https://api.anuto.app/v1/provider/clients/12345 \
-H "Authorization: Bearer $ANUTO_KEY"Signaler les changements
POST/provider/clients/{externalId}/changes
Appelez-le à chaque modification du stock d'un client : une annonce est créée, modifiée, vendue ou supprimée. Nous resynchronisons ce client en quelques minutes, au lieu d'attendre la synchronisation régulière toutes les quelques heures. Les appels effectués dans un délai de 5 minutes sont regroupés, donc vous pouvez l'appeler à chaque changement.
- Le corps de la requête est facultatif. Ajoutez itemIds pour citer jusqu'à 100 de vos identifiants de biens ou de produits modifiés.
- Un appel réussi renvoie 202. nextSyncAt est l'heure (UTC) à laquelle la nouvelle synchronisation est programmée.
- Pour un client inactif, la réponse contient queued: false et un message. Rien n'est mis en file d'attente.
curl -X POST https://api.anuto.app/v1/provider/clients/12345/changes \
-H "Authorization: Bearer $ANUTO_KEY" \
-H "Content-Type: application/json" \
-d '{ "itemIds": ["123", "456"] }'{
"queued": true,
"nextSyncAt": "2026-10-08T12:00:00Z"
}Vérifier votre clé
GET/provider/me
Renvoie le nom de votre fournisseur, les formats couverts par votre accès et le statut de la clé. Appelez-le d'abord pour vérifier qu'une nouvelle clé fonctionne.
curl https://api.anuto.app/v1/provider/me \
-H "Authorization: Bearer $ANUTO_KEY"{
"providerId": "Xw3kQ9mZr2LpT7vNa4Bc",
"name": "Your software company",
"formats": ["…"],
"status": "approved"
}Mode test
Passez test à true pour valider les données et vérifier la connexion. Rien n'est créé : vous recevez le statut qui aurait été appliqué et le résultat des contrôles.
{
"externalId": "12345",
"name": "Casa Sol Real Estate",
"email": "[email protected]",
"country": "ES",
"test": true
}
{
"ok": true,
"wouldBe": "active",
"checks": { "connection": "ok", "owner": "new_account" }
}Statuts du client
- activeActif et synchronisé.
- pendingLa connexion ne fonctionne pas encore, donc rien n'est publié.
- reviewAnuto l'examine, car l'e-mail de ce nouveau client appartient déjà à un autre compte Anuto.
- inactiveDésactivé par vous ou retiré par Anuto.
Erreurs
Les appels en échec renvoient du JSON avec statusCode, code et message. Décidez selon code ; message est destiné aux personnes.
{
"statusCode": 404,
"code": "PROVIDER_CLIENT_NOT_FOUND",
"message": "No client with externalId 12345"
}| Code | HTTP | Signification |
|---|---|---|
PROVIDER_KEY_INVALID | 401 | Clé absente, mal formée ou inconnue. |
PROVIDER_REVOKED | 403 | L'accès de votre fournisseur a été révoqué par Anuto. |
PROVIDER_FORMAT_REQUIRED | 400 | Votre logiciel a plusieurs formats, le corps doit donc contenir format. |
PROVIDER_FORMAT_NOT_ALLOWED | 400 | Ce format ne fait pas partie de vos formats approuvés. |
PROVIDER_CLIENT_NOT_FOUND | 404 | Aucun client avec cet externalId pour votre fournisseur. |
Limites de débit
Au-delà de la limite, vous recevez un 429 avec l'en-tête Retry-After. Attendez ce nombre de secondes, puis réessayez.
Des questions sur l'API ou sur votre accès ? [email protected]