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 cale | Ce face |
|---|---|
GET /lists | Listele 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 /lists | Creează o listă (nume, email și nume expeditor). Răspunde cu list_uid. |
POST /lists/{uid}/add-field | Adaugă un câmp personalizat: type (text, number sau datetime), label și tag. |
DELETE /lists/{uid} | Șterge o listă. |
Abonați
| Metodă și cale | Ce face |
|---|---|
GET /subscribers?list_uid={uid} | Abonații unei liste, paginat (per_page). |
POST /subscribers | Adaugă 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}/subscribe | Reabonează un abonat într-o listă. |
PATCH /lists/{list_uid}/subscribers/{id}/unsubscribe | Dezabonează un abonat dintr-o listă. |
PATCH /lists/{list_uid}/subscribers/email/{email}/unsubscribe | Dezabonare după adresa de email. |
POST /subscribers/{id}/add-tagPOST /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 cale | Ce face |
|---|---|
POST /public/subscribers | Abonare dintr-un formular public. Trimite list_uid, EMAIL și celelalte câmpuri. Dacă list_uid nu există, răspunde cu 400. |
Campanii
| Metodă și cale | Ce face |
|---|---|
GET /campaigns | Campaniile tale (page, per_page). |
GET /campaigns/{uid} | Detalii și statistici: deschideri, click-uri, abonații cei mai activi. |
POST /campaigns | Creează 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}/run | Pornește trimiterea. |
POST /campaigns/{uid}/pausePOST /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 cale | Ce face |
|---|---|
GET /automations | Automatizările tale (page, per_page). |
POST /automations/{uid}/execute | Pornește o automatizare din codul tău. |
POST /automations/{uid}/api/call | Declanș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 cale | Ce face |
|---|---|
GET /dashboard | Totaluri pentru cont: număr de campanii, liste și abonați, și cât din limitele planului ai folosit. |
GET /meGET /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.