Documentazione della Provider API

Ogni endpoint, campo, risposta ed errore in un'unica pagina. Gli esempi usano curl e JSON.

Per iniziare

JSON su HTTPS. Invia una chiamata per cliente ogni volta che cambia il suo interruttore. Ogni chiamata si può ripetere senza rischi.

URL di basehttps://api.anuto.app/v1

Endpoint

Endpoint Significato
POST/provider/clientsAttiva o aggiorna un cliente
GET/provider/clients/{externalId}Stato di un cliente
DELETE/provider/clients/{externalId}Disattiva un cliente e ritira i suoi annunci
POST/provider/clients/{externalId}/changesSegnala ad Anuto che lo stock di un cliente è cambiato
GET/provider/meVerifica la chiave: nome del fornitore, formati e stato

Riprovare è sicuro

Le chiamate con lo stesso externalId aggiornano quel cliente. Non creano mai duplicati, quindi puoi riprovare dopo un timeout.

Autenticazione

Invia la tua chiave nell'header Authorization di ogni richiesta. Le chiavi iniziano con anp_, sono mostrate una sola volta e si possono ruotare nella pagina delle chiavi API.

Authorization: Bearer anp_…

Attiva o aggiorna un cliente

POST/provider/clients

Invia i dati del cliente quando il suo interruttore si attiva. Ripetere la chiamata con lo stesso externalId aggiorna quel cliente.

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
  }'
Campo Obbligatorio Significato
externalId Obbligatorio Il tuo ID per questo cliente (ad esempio il suo ID account o azienda nel tuo software). Da 1 a 100 caratteri.
name Obbligatorio Ragione sociale (fino a 120 caratteri).
email Obbligatorio Email di contatto del cliente. Serve a creare il suo account Anuto se è nuovo su Anuto.
country Obbligatorio Codice paese ISO a due lettere, per esempio ES.
phone Facoltativo Telefono di contatto (fino a 40 caratteri).
website Facoltativo Sito web del cliente, http o https.
format Facoltativo Serve solo se il tuo accesso copre più integrazioni.
connection Facoltativo Campi di connessione per la tua integrazione, se previsti. Te li indichiamo quando approviamo il tuo accesso.
listingsCount Facoltativo Numero di annunci del cliente, per la pianificazione.
test Facoltativo Valida solo i dati e controlla la connessione. Non crea nulla.

Risposta

Ogni chiamata restituisce lo stato del cliente, il numero di annunci e il piano.

{
  "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"
}

Consultare lo stato di un cliente

GET/provider/clients/{externalId}

Restituisce lo stato attuale del cliente, il numero di annunci e il piano, nello stesso formato della risposta di attivazione.

curl https://api.anuto.app/v1/provider/clients/12345 \
  -H "Authorization: Bearer $ANUTO_KEY"

Disattiva un cliente

DELETE/provider/clients/{externalId}

Eliminare un cliente lo disattiva e ritira i suoi annunci da Anuto.

curl -X DELETE https://api.anuto.app/v1/provider/clients/12345 \
  -H "Authorization: Bearer $ANUTO_KEY"

Segnalare le modifiche

POST/provider/clients/{externalId}/changes

Chiamalo ogni volta che lo stock di un cliente cambia: un annuncio viene creato, modificato, venduto o eliminato. Risincronizziamo quel cliente entro pochi minuti, invece di aspettare la sincronizzazione periodica ogni poche ore. Le chiamate entro 5 minuti vengono unite, quindi puoi chiamarlo a ogni modifica.

  • Il corpo è facoltativo. Aggiungi itemIds per indicare fino a 100 ID dei tuoi immobili o prodotti modificati.
  • Una chiamata riuscita restituisce 202. nextSyncAt è l'ora (UTC) in cui è programmata la risincronizzazione.
  • Per un cliente inattivo la risposta contiene queued: false e un messaggio. Non viene messo nulla in coda.
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"
}

Verificare la chiave

GET/provider/me

Restituisce il nome del tuo fornitore, i formati coperti dal tuo accesso e lo stato della chiave. Chiamalo per primo per verificare che una nuova chiave funzioni.

curl https://api.anuto.app/v1/provider/me \
  -H "Authorization: Bearer $ANUTO_KEY"
{
  "providerId": "Xw3kQ9mZr2LpT7vNa4Bc",
  "name": "Your software company",
  "formats": ["…"],
  "status": "approved"
}

Modalità test

Imposta test su true per validare i dati e controllare la connessione. Non viene creato nulla: ottieni lo stato che avrebbe e l'esito dei controlli.

{
  "externalId": "12345",
  "name": "Casa Sol Real Estate",
  "email": "[email protected]",
  "country": "ES",
  "test": true
}

{
  "ok": true,
  "wouldBe": "active",
  "checks": { "connection": "ok", "owner": "new_account" }
}

Stati del cliente

  • activeAttivo e sincronizzato.
  • pendingLa connessione non funziona ancora, quindi non si pubblica nulla.
  • reviewAnuto lo sta verificando, perché l'email di questo nuovo cliente appartiene già a un altro account Anuto.
  • inactiveDisattivato da te o rimosso da Anuto.

Errori

Le chiamate non riuscite restituiscono JSON con statusCode, code e message. Gestisci gli errori in base a code; message è per le persone.

{
  "statusCode": 404,
  "code": "PROVIDER_CLIENT_NOT_FOUND",
  "message": "No client with externalId 12345"
}
Codice HTTP Significato
PROVIDER_KEY_INVALID401Chiave mancante, malformata o sconosciuta.
PROVIDER_REVOKED403Anuto ha revocato il tuo accesso come fornitore.
PROVIDER_FORMAT_REQUIRED400Il tuo software ha più formati, quindi il corpo richiede format.
PROVIDER_FORMAT_NOT_ALLOWED400Il formato non è tra quelli approvati per te.
PROVIDER_CLIENT_NOT_FOUND404Nessun cliente con quell'externalId per il tuo fornitore.

Limiti di frequenza

Se superi il limite ricevi 429 con l'header Retry-After. Aspetta quel numero di secondi, poi riprova.

Domande sull'API o sul tuo accesso? [email protected]