Documentația Provider API

Toate endpoint-urile, câmpurile, răspunsurile și erorile pe o singură pagină. Exemplele folosesc curl și JSON.

Primii pași

JSON prin HTTPS. Trimite un apel per client de fiecare dată când comutatorul lui se schimbă. Fiecare apel poate fi repetat în siguranță.

URL de bazăhttps://api.anuto.app/v1

Endpoint-uri

Endpoint Înțeles
POST/provider/clientsActivează sau actualizează un client
GET/provider/clients/{externalId}Starea unui client
DELETE/provider/clients/{externalId}Dezactivează un client și retrage anunțurile
POST/provider/clients/{externalId}/changesAnunță Anuto că stocul unui client s-a schimbat
GET/provider/meVerifică cheia: numele furnizorului, formatele și starea

Reîncercarea este sigură

Apelurile cu același externalId actualizează acel client. Nu creează niciodată duplicate, așa că poți reîncerca după un timeout.

Autentificare

Trimite cheia în antetul Authorization la fiecare cerere. Cheile încep cu anp_, sunt afișate o singură dată și pot fi reînnoite pe pagina cheilor API.

Authorization: Bearer anp_…

Activează sau actualizează un client

POST/provider/clients

Trimite datele clientului când comutatorul lui se pornește. Repetarea apelului cu același externalId actualizează acel 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
  }'
Câmp Obligatoriu Înțeles
externalId Obligatoriu ID-ul dumneavoastră pentru acest client (de exemplu, ID-ul contului sau al companiei din software-ul dumneavoastră). De la 1 la 100 de caractere.
name Obligatoriu Denumirea companiei (până la 120 de caractere).
email Obligatoriu E-mailul de contact al clientului. Se folosește pentru a crea contul Anuto al acestuia, dacă este nou pe Anuto.
country Obligatoriu Cod de țară ISO din două litere, de exemplu ES.
phone Opțional Telefon de contact (până la 40 de caractere).
website Opțional Site-ul clientului, http sau https.
format Opțional Necesar doar dacă accesul dumneavoastră acoperă mai multe integrări.
connection Opțional Câmpurile de conectare pentru integrarea dumneavoastră, dacă există. Vă spunem care sunt la aprobarea accesului.
listingsCount Opțional Numărul de anunțuri al clientului, pentru planificare.
test Opțional Doar validează și verifică conexiunea. Nu se creează nimic.

Răspuns

Fiecare apel returnează starea clientului, numărul de anunțuri și planul.

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

Consultarea stării unui client

GET/provider/clients/{externalId}

Returnează starea actuală a clientului, numărul de anunțuri și planul, în aceeași formă ca răspunsul de la activare.

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

Dezactivează un client

DELETE/provider/clients/{externalId}

Ștergerea unui client îl dezactivează și retrage anunțurile lui de pe Anuto.

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

Notificarea modificărilor

POST/provider/clients/{externalId}/changes

Apelați-l ori de câte ori se schimbă stocul unui client: un anunț este creat, modificat, vândut sau șters. Resincronizăm clientul în câteva minute, în loc să așteptăm sincronizarea periodică din câteva ore. Apelurile făcute în 5 minute sunt unite, așa că îl puteți apela la fiecare modificare.

  • Corpul cererii este opțional. Adăugați itemIds pentru a indica până la 100 de ID-uri ale proprietăților sau produselor modificate.
  • Un apel reușit returnează 202. nextSyncAt este ora (UTC) la care este programată resincronizarea.
  • Pentru un client inactiv, răspunsul conține queued: false și un mesaj. Nimic nu intră în coadă.
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"
}

Verificarea cheii

GET/provider/me

Returnează numele furnizorului dumneavoastră, formatele acoperite de accesul dumneavoastră și starea cheii. Apelați-l primul pentru a verifica dacă o cheie nouă funcționează.

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

Mod test

Setează test pe true pentru a valida datele și a verifica conexiunea. Nu se creează nimic: primești starea care ar fi rezultat și rezultatele verificărilor.

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

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

Stările clientului

  • activeLive și sincronizat.
  • pendingConexiunea nu funcționează încă, deci nimic nu este publicat.
  • reviewAnuto îl verifică, pentru că e-mailul acestui client nou aparține deja unui alt cont Anuto.
  • inactiveDezactivat de tine sau eliminat de Anuto.

Erori

Apelurile eșuate returnează JSON cu statusCode, code și message. Decide după code; message este pentru oameni.

{
  "statusCode": 404,
  "code": "PROVIDER_CLIENT_NOT_FOUND",
  "message": "No client with externalId 12345"
}
Cod HTTP Înțeles
PROVIDER_KEY_INVALID401Cheie lipsă, malformată sau necunoscută.
PROVIDER_REVOKED403Accesul furnizorului tău a fost revocat de Anuto.
PROVIDER_FORMAT_REQUIRED400Software-ul tău are mai multe formate, deci corpul cererii trebuie să conțină format.
PROVIDER_FORMAT_NOT_ALLOWED400Formatul nu se află printre formatele aprobate pentru tine.
PROVIDER_CLIENT_NOT_FOUND404Nu există un client cu acest externalId la furnizorul tău.

Limite de cereri

Dacă depășești limita, primești 429 cu antetul Retry-After. Așteaptă atâtea secunde și reîncearcă.

Întrebări despre API sau despre accesul tău? [email protected]