Біо-сторінки
Біо-сторінка - це єдина цільова сторінка, оптимізована для мобільних пристроїв, що містить стек посилань - формат, який Linktree популяризував як «посилання в біо» в Instagram, TikTok та X. Кожна сторінка доступна за адресою bio.elido.app/<username> (або на власному домені) і рендериться на стороні сервера за допомогою bio-renderer, щоб завантажуватися при першому відмальовуванні.
Біо-сторінки незалежні від коротких посилань: вони мають власний простір імен URL-адрес, власний потік кліків та власну аналітику.
Створити сторінку
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
}
}'| Поле | Примітки |
|---|---|
username | 3–32 символи, малі літери, цифри, -, _. Глобально унікальний. |
display_name | Жирне ім’я, що відображається над біографією. |
bio | Довільний текст під ім’ям. |
avatar_url | Необов’язковий URL зображення; відображається як коло. |
is_published | За замовчуванням false. Неопубліковані сторінки видають помилку 404 для відвідувачів. |
theme | JSON з bg_color, text_color, button_style, button_color, button_radius. |
Додати посилання
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 керує порядком відтворення за зростанням; перебалансуйте за допомогою PATCH для кожного посилання або скористайтеся перетягуванням (drag-and-drop) на дашборді. Іконки - це назви з Lucide (rss, youtube, instagram, …).
Публічний рендеринг
Сама сторінка надається сервісом bio-renderer:
GET https://bio.elido.app/acmeРендерер виконує запит GET /v1/bio/acme (публічний, без автентифікації) один раз на запит і кешує його за ім’ям користувача на 60 секунд.
Відстеження кліків
Кожна кнопка має трекер за принципом «відправив і забув»:
navigator.sendBeacon(
"https://api.elido.app/v1/bio/acme/click",
JSON.stringify({ link_id: 17 })
);Рендерер налаштовує це автоматично - вам не потрібно самостійно надсилати JavaScript. Ендпоїнт реєструє Country, User-Agent та Referer, а потім передає дані до ClickHouse через той самий конвеєр click-ingester, що й кліки на коротких посиланнях.
Теплова карта
Загальна кількість кліків по кожному посиланню формує теплову карту дашборду:
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 }
]Дашборд відображає це у вигляді горизонтальної гістограми, відсортованої за sort_order, щоб ви могли з першого погляду побачити, які посилання працюють, а які - ні.
Довідка по ендпоїнту
| Метод | Шлях |
|---|---|
GET | /v1/workspaces/{ws}/bio (список) |
POST | /v1/workspaces/{ws}/bio (створення сторінки) |
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} (публічний рендеринг) |
POST | /v1/bio/{username}/click (публічний клік) |