Bio-pagina’s
Een bio-pagina is één mobile-first landingspagina met een reeks
links - het formaat dat Linktree populair maakte voor “link in bio” op Instagram,
TikTok en X. Elke pagina staat op bio.elido.app/<username> (eigen
domeinen voor bio-pagina’s zijn gepland en nog niet beschikbaar) en wordt server-side gerenderd door bio-renderer, zodat
hij bij de eerste weergave al geladen is.
Bio-pagina’s staan los van shortlinks: ze hebben hun eigen URL- naamruimte, hun eigen klikstroom en hun eigen analytics.
Een pagina aanmaken
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
}
}'| Veld | Opmerkingen |
|---|---|
username | 3–32 tekens, kleine letters, cijfers, -, _. Globaal uniek. |
display_name | Vetgedrukte naam boven de bio. |
bio | Vrije tekst onder de naam. |
avatar_url | Optionele afbeeldings-URL; wordt als cirkel weergegeven. |
is_published | Standaard false. Niet-gepubliceerde pagina’s geven publiek een 404. |
theme | JSON met bg_color, text_color, button_style, button_color, button_radius. |
Links toevoegen
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 bepaalt de weergavevolgorde (oplopend); pas de volgorde aan met PATCH
op elke link of gebruik slepen en neerzetten in het dashboard. Iconen zijn
Lucide-namen (rss, youtube, instagram, …).
Openbare weergave
De pagina zelf komt van de service bio-renderer:
GET https://bio.elido.app/acmeDe renderer haalt GET /v1/bio/acme (openbaar, zonder authenticatie)
een keer per verzoek op en cachet per gebruikersnaam gedurende 60 seconden.
Kliktracking
Elke knop heeft een fire-and-forget-tracker:
navigator.sendBeacon(
"https://api.elido.app/v1/bio/acme/click",
JSON.stringify({ link_id: 17 })
);De renderer verbindt dit automatisch - je levert de
JavaScript niet zelf mee. Het endpoint legt Country, User-Agent en
Referer vast en stuurt het daarna via dezelfde click-ingester-
pipeline als klikken op shortlinks door naar ClickHouse.
Heatmap
De klikaantallen per link voeden de heatmap in het 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 }
]Het dashboard toont dit als horizontaal staafdiagram, gesorteerd op
sort_order, zodat je in één oogopslag ziet welke links presteren
en welke dood zijn.
Endpointreferentie
| Methode | Pad |
|---|---|
GET | /v1/workspaces/{ws}/bio (lijst) |
POST | /v1/workspaces/{ws}/bio (pagina aanmaken) |
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} (openbare weergave) |
POST | /v1/bio/{username}/click (openbare klik) |