Integrări · API

API Sendino pentru dezvoltatori

Adaugi abonați din aplicația sau magazinul tău, citești liste și rezultatele campaniilor, pornești o campanie sau o automatizare. Totul prin cereri HTTP simple, cu răspuns JSON.

Început rapid

Adresa de bază a API-ului este:

https://marketing.sendino.ro/api/v1

Documentația completă a API-ului, cu toți parametrii și exemple de răspuns, este în aplicație: marketing.sendino.ro/rui/api-docs.

Cheia API. O găsești în contul tău Sendino, la secțiunea API (meniul contului). Cheia dă acces la toate datele contului, așa că păstreaz-o doar pe serverul tău: nu o pune în pagini web, în aplicații mobile sau în cod public. Dacă a ajuns într-un loc nesigur, generează o cheie nouă.

Autentificare. Trimite cheia în antetul Authorization sau ca parametru api_token. Antetul este varianta recomandată, fiindcă parametrul din adresă poate rămâne în jurnalele serverelor.

curl -H "Accept: application/json" \
     -H "Authorization: Bearer CHEIA_TA_API" \
     https://marketing.sendino.ro/api/v1/lists

Trimite întotdeauna Accept: application/json. Fără el, o cerere neautentificată este redirecționată către pagina de login în loc să primească o eroare JSON.

Ai doar email și parolă? POST /user/login (fără cheie) primește email și password și întoarce {"api_token": "…"}. Răspunde cu 401 dacă datele sunt greșite.

Verifică rapid conexiunea: GET /me întoarce utilizatorul căruia îi aparține cheia, iar GET /user/info întoarce emailul, numele și imaginea de profil.

Endpoint-uri

Toate căile de mai jos se adaugă la adresa de bază. {uid} este identificatorul unei liste, campanii sau automatizări, așa cum îl întorc listările. Cu excepția celor marcate „public”, cererile cer cheia API.

Liste

Metodă și caleCe face
GET /listsListele tale, cu numărul de abonați și ratele de deschidere și de click. Parametri: page, per_page (implicit 10).
GET /lists/{uid}Detaliile unei liste și câmpurile ei.
POST /listsCreează o listă (nume, email și nume expeditor). Răspunde cu list_uid.
POST /lists/{uid}/add-fieldAdaugă un câmp personalizat: type (text, number sau datetime), label și tag.
DELETE /lists/{uid}Șterge o listă.

Abonați

Metodă și caleCe face
GET /subscribers?list_uid={uid}Abonații unei liste, paginat (per_page).
POST /subscribersAdaugă un abonat. Trimite list_uid, EMAIL și, opțional, celelalte câmpuri ale listei (FIRST_NAME, LAST_NAME …), tag (separate prin virgulă) și status (subscribed, unsubscribed sau unconfirmed).
GET /subscribers/{id}Un abonat, după id.
GET /subscribers/email/{email}Un abonat, după adresa de email.
PATCH /subscribers/{id}Actualizează datele unui abonat.
PATCH /lists/{list_uid}/subscribers/{id}/subscribeReabonează un abonat într-o listă.
PATCH /lists/{list_uid}/subscribers/{id}/unsubscribeDezabonează un abonat dintr-o listă.
PATCH /lists/{list_uid}/subscribers/email/{email}/unsubscribeDezabonare după adresa de email.
POST /subscribers/{id}/add-tag
POST /subscribers/{id}/remove-tag
Adaugă sau scoate etichete (tag, mai multe separate prin virgulă).
DELETE /subscribers/{id}Șterge un abonat.

Exemplu: adaugi un abonat într-o listă.

curl -X POST https://marketing.sendino.ro/api/v1/subscribers \
     -H "Accept: application/json" \
     -H "Authorization: Bearer CHEIA_TA_API" \
     -d list_uid=UID_LISTA \
     -d EMAIL=ana@exemplu.ro \
     -d FIRST_NAME=Ana \
     -d tag=client,newsletter

La succes primești {"status": 1, "message": "…", "subscriber_id": 123}. Dacă lista cere confirmare, abonatul primește emailul de confirmare. Dacă ai depășit limita de abonați a planului, cererea întoarce 403.

Formular public (fără cheie API)

Pentru un formular de abonare pus direct într-o pagină web nu folosi cheia API, ci endpoint-ul public. Primește aceleași câmpuri ca POST /subscribers, dar nu acceptă status, iar respectă limitele planului tău.

Metodă și caleCe face
POST /public/subscribersAbonare dintr-un formular public. Trimite list_uid, EMAIL și celelalte câmpuri. Dacă list_uid nu există, răspunde cu 400.

Campanii

Metodă și caleCe face
GET /campaignsCampaniile tale (page, per_page).
GET /campaigns/{uid}Detalii și statistici: deschideri, click-uri, abonații cei mai activi.
POST /campaignsCreează o campanie. Câmpuri obligatorii: name, subject, from_email, from_name, reply_to și html (conținutul emailului).
PATCH /campaigns/{uid}Modifică o campanie.
POST /campaigns/{uid}/runPornește trimiterea.
POST /campaigns/{uid}/pause
POST /campaigns/{uid}/resume
Pune pe pauză sau reia o campanie.
DELETE /campaigns/{uid}Șterge o campanie.
GET /campaigns/{uid}/open-log/download
…/click-log/download
…/bounce-log/download
…/feedback-log/download
…/unsubscribe-log/download
…/tracking-log/download
Descarcă jurnalele campaniei: deschideri, click-uri, respingeri (bounce), plângeri (feedback), dezabonări, urmărire.

Automatizări

Metodă și caleCe face
GET /automationsAutomatizările tale (page, per_page).
POST /automations/{uid}/executePornește o automatizare din codul tău.
POST /automations/{uid}/api/callDeclanșatorul „Apel API” al unei automatizări. Îl folosești când automatizarea așteaptă un semnal de la aplicația ta.

Cont

Metodă și caleCe face
GET /dashboardTotaluri pentru cont: număr de campanii, liste și abonați, și cât din limitele planului ai folosit.
GET /me
GET /user/info
Utilizatorul căruia îi aparține cheia.

Răspunsuri și erori

Răspunsurile sunt în JSON. Coduri HTTP pe care le vei întâlni:

  • 200: cererea a reușit.
  • 400: lista sau resursa nu a fost găsită.
  • 401: cheia lipsește sau este greșită, ori nu ai dreptul să accesezi resursa.
  • 403: datele trimise nu sunt valide (răspunsul listează câmpurile) sau ai depășit limita planului, de exemplu numărul de abonați.
  • 500: eroare pe server. Răspunsul conține mesajul.

Poți vedea și modifica doar datele contului căruia îi aparține cheia.

Ai nevoie de ajutor?

Documentația completă este la marketing.sendino.ro/rui/api-docs. Dacă un endpoint nu răspunde cum te aștepți sau îți lipsește unul, scrie-ne pe pagina de contact. Dacă folosești WordPress, pluginul Sendino face singur conectarea la API.