Безкоштовний API для скорочення URL дозволяє створювати короткі посилання з коду, а не клацаючи по дашборду. Надішліть запит з URL призначення, отримайте у відповідь коротке посилання, що перенаправляє на нього. Цей пост містить робочі приклади на curl, JavaScript, Python та Go для API Elido, який доступний на безкоштовному плані, а також чесну частину, яку більшість списків пропускають: що насправді обмежує "безкоштовний".
Якщо ви ще ніколи не скорочували посилання взагалі, як скоротити URL спершу охоплює ручну версію. Усе нижче передбачає, що ви хочете робити це програмно.
Що робить API сервісу скорочення посилань
По суті, API - це чотири операції над ресурсом посилання: створення, читання, оновлення, видалення. Ви створюєте посилання, надсилаючи POST з URL призначення, і сервіс повертає коротке посилання, яке резолвиться в інше місце.
Одна річ, яка збиває з пантелику: хост API і хост редиректу - різні. API Elido живе за адресою https://api.elido.app/v1, тоді як самі короткі посилання резолвляться на домені редиректу на кшталт s.elido.me. Ви спілкуєтеся з API, щоб керувати посиланнями; ваші користувачі завжди звертаються лише до домену редиректу. Розділення цих двох речей - те, що дозволяє шляху редиректу залишатися швидким, поки API виконує важчу роботу.
Спершу автентифікуйтеся
Кожен реальний запит несе bearer-токен у заголовку Authorization. Ви генеруєте токен у налаштуваннях свого робочого простору, зберігаєте його як змінну середовища і ніколи не вставляєте в клієнтський код, оскільки будь-хто з токеном може створювати посилання у вашому акаунті.
export ELIDO_TOKEN="your_token_here"
Це вся модель автентифікації: один заголовок, Authorization: Bearer $ELIDO_TOKEN, у кожному виклику. API, що взагалі пропускають це, зручні для одноразового скрипта, але за посиланнями немає облікового запису, тож ви не зможете згодом переглядати, редагувати чи вимірювати їх.
Створіть коротке посилання
Ось той самий виклик створення чотирма мовами. Кожен надсилає POST з URL призначення та виводить коротке посилання з відповіді.
curl -X POST https://api.elido.app/v1/links \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"destination_url": "https://example.com/spring-sale"}'
Відповідь у JSON:
{
"id": "lnk_9aF2xK",
"short_url": "https://s.elido.me/abc123",
"destination_url": "https://example.com/spring-sale"
}
JavaScript, з вбудованим fetch:
const res = await fetch("https://api.elido.app/v1/links", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ELIDO_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ destination_url: "https://example.com/spring-sale" }),
});
const link = await res.json();
console.log(link.short_url); // https://s.elido.me/abc123
Python, з requests:
import os
import requests
res = requests.post(
"https://api.elido.app/v1/links",
headers={"Authorization": f"Bearer {os.environ['ELIDO_TOKEN']}"},
json={"destination_url": "https://example.com/spring-sale"},
)
print(res.json()["short_url"]) # https://s.elido.me/abc123
Go, зі стандартною бібліотекою:
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
body, _ := json.Marshal(map[string]string{
"destination_url": "https://example.com/spring-sale",
})
req, _ := http.NewRequest("POST", "https://api.elido.app/v1/links", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("ELIDO_TOKEN"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
var link struct {
ShortURL string `json:"short_url"`
}
json.NewDecoder(res.Body).Decode(&link)
fmt.Println(link.ShortURL) // https://s.elido.me/abc123
}
Додайте додаткові поля до тіла за потреби: slug для кастомної другої половини, tags для організації, domain для вибору брендованого кастомного домену, або expires_at для посилання, що перестає працювати після певної дати.
Що насправді обмежує "безкоштовний"
Ось де живе чесне порівняння, оскільки "безкоштовний API" охоплює дві дуже різні речі.
Endpoint без реєстрації та без автентифікації, ті, що скорочують URL одним неавтентифікованим POST-запитом, справді безкоштовні і справді обмежені. Спільні ліміти запитів, відсутність облікового запису, брендованого домену, аналітики, і жодної гарантії, що сервіс існуватиме наступного кварталу. Підходить для одноразового скрипта, ризиковано для чогось, що ви випускаєте в продакшн.
Автентифікований безкоштовний рівень - корисніший варіант, і там обмеження передбачувані. Функції, які найчастіше залишають для платних планів, - це брендовані кастомні домени, великий обсяг запитів, довше зберігання аналітики та bulk-endpoint. На безкоштовному плані Elido сам API включений, посилання резолвляться та відстежуються, а ліміти прив'язані до робочого простору, а не спільні з незнайомцями. Щодо того, як платні інструменти порівнюються в цьому, Dub проти Bitly охоплює два найвідоміші API, і ви можете почати з безкоштовного плану, щоб спробувати API Elido.
Правило великого пальця: якщо посилання одноразове, API без автентифікації підходить. Якщо воно несе ваш бренд або вам потрібно його вимірювати, використовуйте автентифікований варіант з доменом, який ви контролюєте.
Ліміти запитів та ідемпотентність
Число, яке насправді захищає вас у продакшені, - це не ліміт запитів, а ідемпотентність.
Кожен запит, що змінює дані, приймає заголовок Idempotency-Key. Надішліть унікальний ключ із запитом на створення, і якщо запит закінчиться таймаутом і ви повторите його з тим самим ключем, сервер поверне оригінальний результат замість створення другого посилання. Саме це робить цикл повторів безпечним.
curl -X POST https://api.elido.app/v1/links \
-H "Authorization: Bearer $ELIDO_TOKEN" \
-H "Idempotency-Key: spring-sale-2026-04-01" \
-H "Content-Type: application/json" \
-d '{"destination_url": "https://example.com/spring-sale"}'
Ідемпотентність - це властивість семантики методів HTTP у RFC 9110, і будь-який API, на який ви покладаєтесь для автоматизованого створення посилань, повинен її підтримувати. Глибший розбір, які коди статусу варто повторювати і як розраховувати темп відносно ліміту, - у статті ліміти запитів, повтори та ідемпотентність у продакшені.
SDK чи звичайний HTTP?
Вам не обов'язково вручну писати запити. Elido публікує SDK, згенеровані зі своєї специфікації OpenAPI, для TypeScript, Python, Go та інших, а швидкий старт з API та SDK детально розбирає їх встановлення та виклик.
Використовуйте SDK, коли хочете, щоб типи, повтори та пагінація оброблялися за вас. Використовуйте звичайний HTTP, як у прикладах вище, коли хочете нульових залежностей або звертаєтеся з мови без офіційного клієнта. Обидва звертаються до того самого REST API; SDK - просто тонший шлях до нього.
Пов'язане в блозі
Поширені запитання
Чи існує безкоштовний API для скорочення URL?
Так. Кілька сервісів скорочення посилань пропонують безкоштовний API, включно з Elido, чий API доступний на безкоштовному плані. Важливі відмінності - чи є автентифікація, власний брендований домен, розумні ліміти запитів та аналітика, чи просто голий endpoint для скорочення. API-іграшка без реєстрації підходить для скрипта; продакшену потрібні автентифікація, домен, який ви контролюєте, та безвідмовність.
Як скоротити URL за допомогою API?
Надішліть автентифікований POST-запит з URL призначення в тілі. Для Elido це POST https://api.elido.app/v1/links з bearer-токеном авторизації та JSON-тілом {"destination_url": "..."}. Відповідь повертає коротке посилання, яке резолвиться на домені редиректу. Приклади curl, JavaScript, Python та Go в цьому пості роблять саме це.
Чи потрібен мені API-ключ для скорочення URL?
Для чогось реального - так. Деякі безкоштовні API взагалі пропускають автентифікацію, що зручно, але означає відсутність облікового запису, управління посиланнями, аналітики та спільні ліміти запитів з усіма іншими, хто звертається до того самого endpoint. API-ключ або bearer-токен прив'язує посилання до вашого робочого простору, тож ви можете переглядати, редагувати та вимірювати їх, а ваш ліміт запитів належить саме вам.
Які типові ліміти запитів на безкоштовному API для скорочення URL?
Вони сильно різняться, від приблизно 100 запитів на годину на публічних endpoint без автентифікації до лімітів token-bucket у межах робочого простору на автентифікованих API. Важливіше за число - чи підтримує API ключі ідемпотентності, тож повторний запит після таймауту не створює дублікат посилання. Безпечність повтору важливіша за високу номінальну стелю.
Чи можу я використовувати безкоштовний API сервісу скорочення посилань з власним доменом?
На деяких планах. Брендований кастомний домен - функція, яку найчастіше обмежують платним рівнем, оскільки вона включає обробку DNS та сертифікатів. Перевірте, чи дозволяє безкоштовний рівень вказати хоча б один кастомний домен, чи безкоштовні посилання прив'язані до спільного домену постачальника. Якщо брендоване посилання важливе, підтвердьте це перед тим, як будувати рішення.
Спробуйте Elido
Вставте URL - отримайте коротке посилання
Без реєстрації. Посилання живе 30 днів. Зареєструйтесь, щоб зберегти назавжди.
Безкоштовно, без реєстрації · 2 на день