LanaChat

API: linkuri de tracking, domenii, pixeli și statistici

9 min de cititActualizat Markdown

Un link de tracking trimite un vizitator către o creatoare pe Telegram și numără ce urmează: clickuri, conversații, prime mesaje, cumpărători și venituri. Linkurile pot exista pe propriul tău domeniu, pot declanșa pixeli de reclamă (Meta, TikTok, Snap) și pot trimite evenimente server-to-server. Aceste endpointuri corespund paginii Tracking.

Endpointuri #

MethodPathDescriptionPermissionStatus
GET/linksListează linkuri (creator_id=, archived=false) cu contorii lorcan_tracking sau can_sales_readPlanned
POST/linksCreează un linkcan_trackingPlanned
GET/links/{id}Un linkcan_tracking sau can_sales_readPlanned
PUT/links/{id}Înlocuiește un link (nume, slug, domeniu, destinație, UTM, pixeli)can_trackingPlanned
DELETE/links/{id}Arhivează un link (permanent=1 îl șterge)can_trackingPlanned
GET/domainsDomeniile tale (status=active,inactive, q=)can_trackingPlanned
POST/domainsAdaugă un domeniu (status pending)can_trackingPlanned
POST/domains/{host}/verifyVerifică acum înregistrările DNScan_trackingPlanned
PATCH/domains/{host}Setează un domeniu verificat ca implicit sau schimbă etichetacan_trackingPlanned
DELETE/domains/{host}Șterge un domeniu nefolosit de linkuri activecan_trackingPlanned
GET/pixelsConexiunile Meta, TikTok și Snap și modul de consimțământcan_trackingPlanned
PUT/pixels/{provider}Conectează sau înlocuiește un pixel (meta, tiktok, snap)ownerPlanned
DELETE/pixels/{provider}Deconectează un pixelownerPlanned
POST/pixels/{provider}/testTrimite un eveniment de test și returnează răspunsul platformeican_trackingPlanned
PUT/pixels/consentModul de consimțământ: page sau implicit_by_countryownerPlanned
GET/eventsEvenimente încorporate și personalizate, cu număr livrări pe 7 zilecan_trackingPlanned
POST/eventsCreează un eveniment personalizatownerPlanned
PATCH/events/{id}Activează sau dezactivează un eveniment pe rețeleownerPlanned
DELETE/events/{id}Șterge un eveniment personalizatownerPlanned
GET/statsTotaluri zilnice, pe link și sursă (from=, to=, creator_id=)can_sales_readPlanned
GET/stats/export.csvAceleași cifre în CSVcan_sales_readPlanned

Obiectul linkului #

{
  "id": "lnk_3",
  "name": "TikTok · Lea night",
  "slug": "lea-tiktok-night",
  "creator_id": "cr_lea",
  "source": "tiktok",
  "campaign": "Autumn",
  "domain": "go.mia-links.com",
  "public_url": "https://go.mia-links.com/r/lea-tiktok-night",
  "destination": "pool",
  "account_id": null,
  "utm": { "source": "tiktok", "medium": "social", "campaign": "autumn" },
  "pixels": { "meta": false, "tiktok": true, "snap": false },
  "counters": { "clicks": 640, "conversations": 97, "first_messages": 76, "buyers": 14, "revenue_stars": 6200 },
  "archived": false,
  "created_at": "2026-09-12T08:00:00Z"
}
FieldTypeDescription
idstringÎncepe cu lnk_
namestringNumele vizibil echipei tale
slugstringFinalul URL-ului public
creator_idstringCreatoarea către care trimite linkul
source, campaignstringDe unde vine traficul și numele campaniei tale
domainstringUn domeniu verificat al workspace-ului sau domeniul LanaChat
public_urlstringhttps://<domain>/r/<slug>: URL-ul pentru bio sau reclamă
destinationstringpool sau account
account_idstring sau nullContul fix când destination este account
utmobjectsource, medium, campaign
pixelsobjectCe pixeli conectați se declanșează pe acest link
countersobjectclicks, conversations, first_messages, buyers, revenue_stars
archivedbooleanLinkurile arhivate sunt excluse din statistici
created_atstringISO 8601, UTC
  • destination este pool (contul se alege la click din pool-ul creatoarei, vezi pools) sau account (același account_id mereu).
  • slug: litere mici, cifre și cratime, 1-48 caractere, începe și se termină cu literă sau cifră, unic printre linkurile active ale aceluiași domeniu.
  • domain trebuie să fie un domeniu verificat al workspace-ului; altfel se folosește domeniul LanaChat.
  • Valorile utm: până la 80 caractere (litere, cifre, puncte, cratime sau underscore). Se aplică la fiecare click și se trimit la evenimentele pixel.

Obiectul domeniului #

{
  "host": "go.mia-links.com",
  "builtin": false,
  "status": "pending",
  "error": null,
  "ssl": "none",
  "is_default": false,
  "label": "Lea TikTok",
  "token": "8be03d5f19a2",
  "checks": 0,
  "added_at": "2026-10-05T10:00:00Z",
  "verified_at": null,
  "last_check_at": null
}
FieldTypeDescription
hoststringUn subdomeniu cu litere mici (cel puțin 3 etichete), unic în workspace
builtinbooleantrue pentru domeniul LanaChat, care nu poate fi șters
statusstringverified, pending sau error
errorstring sau nullO propoziție simplă când status este error
sslstringnone, issuing sau active
is_defaultbooleanExact un domeniu verificat este implicit
labelstring sau nullUn nume pentru echipa ta, până la 60 caractere
tokenstringValoarea înregistrării TXT de verificare
checksnumberNumăr de verificări DNS făcute până acum
added_at, verified_at, last_check_atstring sau nullISO 8601, UTC

Obiectul conexiunii pixelului #

{ "connected": true, "pixel_id": "123456789012345", "token_last4": "x9Qa", "token_status": "valid", "token_error": null, "test_event_code": "TEST4821", "connected_at": "2026-10-06T14:30:00Z" }
FieldTypeDescription
connectedbooleanPixelul este conectat
pixel_idstringMeta: 15 sau 16 cifre. TikTok: 20 litere mari sau cifre. Snap: un UUID
token_last4stringUltimele 4 caractere ale tokenului de acces, niciodată tokenul complet
token_statusstringvalid, expired sau invalid
token_errorstring sau nullO propoziție simplă, ex. „Access token expired on 3 Oct. Replace it to resume delivery.”
test_event_codestring sau nullCodul de test al managerului de evenimente al platformei
connected_atstringISO 8601, UTC

Obiectul evenimentului #

{
  "id": "evt_purchase",
  "name": "Purchase",
  "builtin": true,
  "trigger": { "type": "purchase" },
  "networks": { "meta": true, "tiktok": true, "snap": false }
}
FieldTypeDescription
idstringID-ul evenimentului
namestringNumele încorporat sau numele tău personalizat: o literă, apoi până la 39 litere, cifre sau underscore, unic în workspace
builtinbooleantrue pentru Lead, Contact, Purchase, Subscribe și InitiateCheckout
triggerobjecttype și un value pentru trigger-ele care au nevoie
networksobjectActivat sau dezactivat pentru meta, tiktok și snap

Obiectul statisticilor #

{
  "days":    [ { "date": "2026-10-05", "clicks": 54, "conversations": 9, "first_messages": 7, "buyers": 2, "revenue_stars": 950 } ],
  "links":   [ { "link_id": "lnk_3", "clicks": 640, "conversations": 97, "first_messages": 76, "buyers": 14, "revenue_stars": 6200 } ],
  "sources": [ { "source": "instagram", "clicks": 1210, "conversations": 160, "first_messages": 131, "buyers": 22, "revenue_stars": 9100 } ]
}
FieldTypeDescription
daysarrayO intrare per zi UTC din interval
linksarrayO intrare per link, pe tot intervalul
sourcesarrayO intrare per grup sursă: instagram, tiktok, snapchat, meta, x și other
clicksnumberRedirecționări servite
conversationsnumberConversații Telegram începute prin link
first_messagesnumberFani care au scris cel puțin o dată
buyersnumberFani distincti cu o achiziție verificată Stars în interval
revenue_starsnumberAchiziții Stars verificate ale acelor fani în interval

Linkuri #

Listează linkuri #

GET /links · can_tracking sau can_sales_read

ParameterTypeRequiredDescription
creator_idstringNuDoar linkurile acestei creatoare
archivedbooleanNufalse (vizualizare implicită) ascunde linkurile arhivate
limit, cursornumber, stringNuPaginare
curl "https://api.lanachat.ai/v1/links?creator_id=cr_lea&archived=false" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Răspunsul este o listă paginată de obiecte link, fiecare cu counters.

POST /links · can_tracking

ParameterTypeRequiredDescription
namestringDaNumele vizibil echipei tale
slugstringDaLitere mici, cifre și cratime, 1-48 caractere
creator_idstringDaCreatoarea către care trimite linkul
sourcestringNuinstagram, tiktok, snapchat, meta, x sau altă sursă
campaignstringNuNumele campaniei tale
destinationstringNupool sau account
account_idstringCând destination este accountContul Telegram fix
domainstringNuUn domeniu verificat; altfel domeniul LanaChat
utmobjectNusource, medium, campaign
pixelsobjectNumeta, tiktok, snap: true pentru a declanșa pixelul respectiv
curl -X POST https://api.lanachat.ai/v1/links \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Insta bio · Lea", "slug": "lea-bio", "creator_id": "cr_lea", "source": "instagram", "destination": "pool", "domain": "go.mia-links.com"}'
{
  "id": "lnk_9",
  "name": "Insta bio · Lea",
  "slug": "lea-bio",
  "creator_id": "cr_lea",
  "source": "instagram",
  "campaign": null,
  "domain": "go.mia-links.com",
  "public_url": "https://go.mia-links.com/r/lea-bio",
  "destination": "pool",
  "account_id": null,
  "utm": { "source": null, "medium": null, "campaign": null },
  "pixels": { "meta": false, "tiktok": false, "snap": false },
  "counters": { "clicks": 0, "conversations": 0, "first_messages": 0, "buyers": 0, "revenue_stars": 0 },
  "archived": false,
  "created_at": "2026-10-06T14:40:00Z"
}
  • Un slug deja folosit răspunde cu 409 și mesajul The slug /lea-bio is already used by "Insta bio · Mia".
  • Un domeniu neverificat răspunde cu 400 („Pick a verified domain…”).

GET /links/{id} · can_tracking sau can_sales_read

curl https://api.lanachat.ai/v1/links/lnk_3 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Răspunsul este obiectul link. Un id necunoscut răspunde cu 404.

PUT /links/{id} · can_tracking

Același corp ca la Creează un link; PUT înlocuiește întreg linkul, deci trimite toate câmpurile pe care vrei să le păstrezi.

curl -X PUT https://api.lanachat.ai/v1/links/lnk_3 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "TikTok · Lea night", "slug": "lea-tiktok-night", "creator_id": "cr_lea", "source": "tiktok", "campaign": "Autumn", "destination": "pool", "domain": "go.mia-links.com", "utm": {"source": "tiktok", "medium": "social", "campaign": "autumn"}, "pixels": {"meta": false, "tiktok": true, "snap": false}}'

Răspunsul este linkul actualizat. Aceleași erori ca la creare.

DELETE /links/{id} · can_tracking

ParameterTypeRequiredDescription
permanentnumberNu1 șterge linkul definitiv în loc să-l arhiveze
curl -X DELETE https://api.lanachat.ai/v1/links/lnk_3 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Un link arhivat este exclus din statistici.

Domenii #

Pentru a folosi propriul domeniu, adaugă-l, creează două înregistrări DNS, apoi verifică-l:

  • CNAME go.mia-links.com → links.lanachat.app
  • TXT _lanachat.go.mia-links.com = lanachat-verify=8be03d5f19a2

Domeniile în așteptare sunt verificate la fiecare 10 minute timp de 72 ore, apoi zilnic. status devine verified iar ssl trece prin issuing apoi active.

Listează domenii #

GET /domains · can_tracking

ParameterTypeRequiredDescription
statusstringNuactive (verificat) sau inactive (în așteptare sau eroare)
qstringNuParte din host sau etichetă
curl "https://api.lanachat.ai/v1/domains?status=active" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Răspunsul listează obiecte domeniu, inclusiv domeniul LanaChat (builtin: true).

Adaugă un domeniu #

POST /domains · can_tracking

ParameterTypeRequiredDescription
hoststringDaUn subdomeniu, ex. go.mia-links.com
curl -X POST https://api.lanachat.ai/v1/domains \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"host": "go.mia-links.com"}'

Răspunsul este domeniul nou cu status: "pending" și token pentru înregistrarea TXT. Hostul este curățat (litere mici, fără https://, fără cale). Domeniile root, *.lanachat.app și un domeniu deja adăugat răspund cu 400 și mesaj.

Verifică un domeniu #

POST /domains/{host}/verify · can_tracking

curl -X POST https://api.lanachat.ai/v1/domains/go.mia-links.com/verify \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
{ "host": "go.mia-links.com", "builtin": false, "status": "verified", "error": null, "ssl": "issuing", "is_default": false, "label": null, "token": "8be03d5f19a2", "checks": 3, "added_at": "2026-10-05T10:00:00Z", "verified_at": "2026-10-06T14:45:00Z", "last_check_at": "2026-10-06T14:45:00Z" }

Când o înregistrare este greșită, status este error iar error spune care, ex. „The CNAME record points to another service.” Domeniul LanaChat nu poate fi verificat (DNS-ul este gestionat de LanaChat).

Schimbă un domeniu #

PATCH /domains/{host} · can_tracking

ParameterTypeRequiredDescription
is_defaultbooleanNutrue îl face domeniul implicit; cel implicit anterior nu mai este
labelstring sau nullNuUn nume pentru echipa ta, până la 60 caractere
curl -X PATCH https://api.lanachat.ai/v1/domains/go.mia-links.com \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"is_default": true}'

Doar un domeniu verificat poate fi implicit. Domeniul LanaChat refuză o etichetă (403).

Șterge un domeniu #

DELETE /domains/{host} · can_tracking

curl -X DELETE https://api.lanachat.ai/v1/domains/go.mia-links.com \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Ștergerea domeniului LanaChat, a domeniului implicit („Set another default domain first”) sau a unui domeniu folosit de linkuri active („Used by N active links across all creators”) răspunde cu 409.

Pixeli #

Evenimentele se trimit server-to-server, deduplicate cu pixelul browserului prin același event_id, cu id-ul Telegram al fanului hash-uit (SHA-256), niciodată brut. Fără consimțământ nu se trimite niciun eveniment, niciodată. Un pixel se declanșează doar pentru linkurile care îl activează.

Citește conexiunile pixelilor #

GET /pixels · can_tracking

curl https://api.lanachat.ai/v1/pixels \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Răspunsul conține câte o conexiune pixel pentru fiecare dintre meta, tiktok și snap, și modul de consimțământ mode.

Conectează un pixel #

PUT /pixels/{provider} · owner

ParameterTypeRequiredDescription
pixel_idstringDaMeta: 15 sau 16 cifre. TikTok: 20 litere mari sau cifre. Snap: un UUID
access_tokenstringDaTokenul Conversions API al platformei
test_event_codestringNuCodul de test al platformei
curl -X PUT https://api.lanachat.ai/v1/pixels/meta \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"pixel_id": "123456789012345", "access_token": "EAAG…", "test_event_code": "TEST4821"}'
{ "connected": true, "pixel_id": "123456789012345", "token_last4": "x9Qa", "token_status": "valid", "token_error": null, "test_event_code": "TEST4821", "connected_at": "2026-10-06T14:30:00Z" }

Tokenul de acces este stocat criptat și niciodată returnat: doar token_last4. Un pixel id în format greșit sau un token gol răspund cu 400.

Deconectează un pixel #

DELETE /pixels/{provider} · owner

curl -X DELETE https://api.lanachat.ai/v1/pixels/meta \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Trimite un eveniment de test #

POST /pixels/{provider}/test · can_tracking

curl -X POST https://api.lanachat.ai/v1/pixels/meta/test \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
{ "ok": true, "status": 200, "body": "{\"events_received\":1}" }

status și body sunt răspunsul propriu al platformei, deci vezi exact ce a răspuns Meta, TikTok sau Snap.

Setează modul de consimțământ #

PUT /pixels/consent · owner

ParameterTypeRequiredDescription
modestringDapage: ecran de consimțământ pentru fiecare fan înainte de deschiderea Telegram. implicit_by_country: ecran doar în UE și SEE, UK și Elveția
curl -X PUT https://api.lanachat.ai/v1/pixels/consent \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "implicit_by_country"}'

Evenimente #

Evenimente încorporate: Lead (conversație începută din link), Contact (primul mesaj fan), Purchase (vânzare verificată), Subscribe, InitiateCheckout. Evenimentele personalizate au un trigger: sale_over (vânzare peste o sumă în dolari), tag_added (un tag), nth_message (al N-lea mesaj al fanului, 2 sau mai mult) sau offer_viewed.

Listează evenimente #

GET /events · can_tracking

curl https://api.lanachat.ai/v1/events \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Răspunsul listează obiecte eveniment cu livrările acceptate și eșuate pe 7 zile, pe rețele.

Creează un eveniment personalizat #

POST /events · owner

ParameterTypeRequiredDescription
namestringDaO literă, apoi până la 39 litere, cifre sau underscore; unic în workspace
triggerobjectDatype: sale_over, tag_added, nth_message sau offer_viewed; value pentru primele trei
networksobjectNumeta, tiktok, snap: true pentru a trimite acolo
curl -X POST https://api.lanachat.ai/v1/events \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "BigSpender", "trigger": {"type": "sale_over", "value": 50}, "networks": {"meta": true, "tiktok": true, "snap": false}}'

Răspunsul este evenimentul nou (201). Un nume deja folosit răspunde cu 409.

Activează sau dezactivează un eveniment #

PATCH /events/{id} · owner

ParameterTypeRequiredDescription
networksobjectDameta, tiktok, snap: true sau false
curl -X PATCH https://api.lanachat.ai/v1/events/evt_purchase \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"networks": {"meta": true, "tiktok": true, "snap": true}}'

Șterge un eveniment personalizat #

DELETE /events/{id} · owner

curl -X DELETE https://api.lanachat.ai/v1/events/evt_bigspender \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Evenimentele încorporate nu pot fi șterse; dezactivează-le în schimb.

Statistici #

Citește statistici #

GET /stats · can_sales_read

ParameterTypeRequiredDescription
fromstringDaPrima zi UTC, YYYY-MM-DD, inclusiv
tostringDaUltima zi UTC, YYYY-MM-DD, inclusiv
creator_idstringNuDoar această creatoare; fără el, toate creatoarele
curl "https://api.lanachat.ai/v1/stats?from=2026-09-06&to=2026-10-05&creator_id=cr_lea" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Răspunsul este obiectul statistici. Zilele sunt UTC; linkurile arhivate sunt excluse.

Exportă statistici ca CSV #

GET /stats/export.csv · can_sales_read

Aceiași parametri ca la GET /stats.

curl "https://api.lanachat.ai/v1/stats/export.csv?from=2026-09-06&to=2026-10-05" \
  -H "Authorization: Bearer $LANACHAT_TOKEN" -o stats.csv
date,link,slug,domain,creator,source,clicks,conversations,first_messages,buyers,revenue_stars
2026-10-05,TikTok · Lea night,lea-tiktok-night,go.mia-links.com,Lea,tiktok,54,9,7,2,950

Ultimele noutăți despre Lana pe Telegram

Noutăți și invitații în beta, mai întâi pe canal.