Pagini bio
O pagină bio este o singură pagină de destinație mobile-first care găzduiește o listă de
link-uri - formatul popularizat de Linktree pentru “link în bio” pe Instagram,
TikTok și X. Fiecare pagină se află la bio.elido.app/<username> (domeniile
personalizate pentru paginile bio sunt planificate și încă nu sunt disponibile) și este randată server-side de bio-renderer, astfel încât
se încarcă la prima afișare.
Paginile bio sunt independente de link-urile scurte: au propriul spațiu de URL-uri, propriul flux de click-uri și propriile analytics.
Creează o pagină
curl -X POST \
https://api.elido.app/v1/workspaces/1/bio \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "acme",
"display_name": "Acme Inc.",
"bio": "We make sprockets that just work.",
"avatar_url": "https://cdn.example.com/avatar.png",
"is_published": true,
"theme": {
"bg_color": "#0f172a",
"text_color": "#f8fafc",
"button_style": "rounded",
"button_color": "#5b6cff",
"button_radius": 12
}
}'| Câmp | Note |
|---|---|
username | 3–32 de caractere, litere mici, cifre, -, _. Unic la nivel global. |
display_name | Numele îngroșat afișat deasupra bio. |
bio | Text liber sub nume. |
avatar_url | URL opțional de imagine; afișat ca cerc. |
is_published | Implicit false. Paginile nepublicate dau 404 public. |
theme | JSON cu bg_color, text_color, button_style, button_color, button_radius. |
Adaugă link-uri
curl -X POST \
https://api.elido.app/v1/workspaces/1/bio/9/links \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Latest blog post",
"url": "https://example.com/blog/sprocket-3",
"icon": "rss",
"sort_order": 0
}'sort_order controlează ordinea de afișare crescătoare; rebalansează cu PATCH
pe fiecare link sau folosește drag-and-drop din dashboard. Pictogramele sunt
nume Lucide (rss, youtube, instagram, …).
Randare publică
Pagina propriu-zisă provine din serviciul bio-renderer:
GET https://bio.elido.app/acmeRenderer-ul apelează GET /v1/bio/acme (public, fără autentificare)
o dată pe cerere și păstrează în cache după username timp de 60 de secunde.
Urmărirea click-urilor
Fiecare buton are un tracker de tip fire-and-forget:
navigator.sendBeacon(
"https://api.elido.app/v1/bio/acme/click",
JSON.stringify({ link_id: 17 })
);Renderer-ul îl conectează automat - nu trebuie să livrezi tu
JavaScript-ul. Endpoint-ul înregistrează Country, User-Agent și
Referer, apoi distribuie către ClickHouse prin același pipeline
click-ingester ca și click-urile pe link-urile scurte.
Hartă termică
Totalurile de click-uri pe link alimentează harta termică din dashboard:
curl https://api.elido.app/v1/workspaces/1/bio/9/heatmap \
-H "Authorization: Bearer $ELIDO_TOKEN"[
{ "bio_link_id": 17, "clicks": 4321 },
{ "bio_link_id": 18, "clicks": 1187 }
]Dashboardul îl afișează ca o diagramă cu bare orizontale, sortată după
sort_order, ca să vezi dintr-o privire care link-uri aduc rezultate
și care sunt moarte.
Referință endpoint-uri
| Metodă | Cale |
|---|---|
GET | /v1/workspaces/{ws}/bio (listă) |
POST | /v1/workspaces/{ws}/bio (creare pagină) |
PATCH | /v1/workspaces/{ws}/bio/{id} |
DELETE | /v1/workspaces/{ws}/bio/{id} |
GET | /v1/workspaces/{ws}/bio/{id}/links |
POST | /v1/workspaces/{ws}/bio/{id}/links |
PATCH | /v1/workspaces/{ws}/bio/{id}/links/{link_id} |
DELETE | /v1/workspaces/{ws}/bio/{id}/links/{link_id} |
GET | /v1/workspaces/{ws}/bio/{id}/heatmap |
GET | /v1/bio/{username} (randare publică) |
POST | /v1/bio/{username}/click (click public) |