REST API
Створюйте короткі посилання, читайте статистику переходів і генеруйте QR-коди зі свого коду. JSON поверх HTTPS і один заголовок для авторизації.
- Базова адреса
- https://urlik.xyz/api/
- Авторизація
- X-Api-Key
- Формат
- JSON · UTF-8
- Методів
- 10
- Webhooks
- Webhooks
Швидкий старт
Перше коротке посилання — одним запитом.
Отримайте ключ
Створіть його в акаунті, у розділі API. Права ключа можна обмежити.
Надішліть запит
Надішліть POST із довгою адресою та заголовком X-Api-Key, за бажання — з аліасом.
Використайте результат
return.url — коротке посилання, return.qr — його QR-код, return.stats — сторінка статистики.
Ваш перший запит
curl -X POST https://urlik.xyz/api/getLink.json \ -H "X-Api-Key: $URLIK_KEY" \ -d "url=https://example.com/spring-sale" \ -d "alias=spring" \ -d "mode=redirect"
const res = await fetch("https://urlik.xyz/api/getLink.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ url: "https://example.com/spring-sale", alias: "spring" })
});
const data = await res.json();
console.log(data.return.url); // https://urlik.xyz/spring$ch = curl_init("https://urlik.xyz/api/getLink.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => ["url" => "https://example.com/spring-sale", "alias" => "spring"],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
echo $data["return"]["url"]; // https://urlik.xyz/springimport os, requests
r = requests.post(
"https://urlik.xyz/api/getLink.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={"url": "https://example.com/spring-sale", "alias": "spring"},
)
print(r.json()["return"]["url"]) # https://urlik.xyz/spring{
"status": "success",
"return": {
"hex": "spring",
"url": "https://urlik.xyz/spring",
"qr": "https://urlik.xyz/qr/spring.png",
"stats": "https://urlik.xyz/spring+",
"mode": "redirect"
}
}Авторизація
Передавайте ключ у заголовку X-Api-Key. Просте скорочення працює й без ключа; посилання, створені з ключем, прив’язуються до вашого акаунта.
Формат відповіді
Кожен метод відповідає JSON: status — success або error, message пояснює помилку, return містить дані.
{ "status": "success", "message": "...", "return": { ... } }Посилання
POST/api/getLink.jsonСтворити коротке посиланняКлюч необов’язковий
| Параметр | Обов’язковість | Опис |
|---|---|---|
url | обов’язковий | Цільова адреса, http або https |
alias | необов’язковий | Власний код, 2–32 символи: літери, цифри, _ і - |
mode | необов’язковий | redirect (за замовчуванням), preview або frame |
expire | необов’язковий | Термін дії в секундах, 0 — безстроково |
password | необов’язковий | Пароль, який треба ввести для переходу |
curl -X POST https://urlik.xyz/api/getLink.json -H "X-Api-Key: $URLIK_KEY" \ -d "url=https://example.com/spring-sale"
const res = await fetch("https://urlik.xyz/api/getLink.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ url: "https://example.com/spring-sale" })
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/getLink.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => ["url" => "https://example.com/spring-sale"],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.post(
"https://urlik.xyz/api/getLink.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={"url": "https://example.com/spring-sale"},
)
print(r.json())POST/api/stats.jsonСтатистика посилання: переходи за днями, джерела, пристрої та браузериКлюч необов’язковий
| Параметр | Обов’язковість | Опис |
|---|---|---|
code | обов’язковий | Короткий код посилання |
curl -X POST https://urlik.xyz/api/stats.json -H "X-Api-Key: $URLIK_KEY" \ -d "code=spring"
const res = await fetch("https://urlik.xyz/api/stats.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ code: "spring" })
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/stats.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => ["code" => "spring"],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.post(
"https://urlik.xyz/api/stats.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={"code": "spring"},
)
print(r.json())POST/api/links.jsonСписок ваших посиланьПотрібен ключ
Без параметрів: акаунт визначається за ключем.
curl -X POST https://urlik.xyz/api/links.json -H "X-Api-Key: $URLIK_KEY"
const res = await fetch("https://urlik.xyz/api/links.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ })
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/links.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => [],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.post(
"https://urlik.xyz/api/links.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={},
)
print(r.json())POST/api/update.jsonЗмінити посиланняПотрібен ключ
| Параметр | Обов’язковість | Опис |
|---|---|---|
code | обов’язковий | Короткий код посилання |
url, mode, expire, password | необов’язковий | Нові значення полів, які змінюєте |
curl -X POST https://urlik.xyz/api/update.json -H "X-Api-Key: $URLIK_KEY" \ -d "code=spring"
const res = await fetch("https://urlik.xyz/api/update.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ code: "spring" })
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/update.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => ["code" => "spring"],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.post(
"https://urlik.xyz/api/update.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={"code": "spring"},
)
print(r.json())POST/api/delete.jsonВидалити посиланняПотрібен ключ
| Параметр | Обов’язковість | Опис |
|---|---|---|
code | обов’язковий | Короткий код посилання |
curl -X POST https://urlik.xyz/api/delete.json -H "X-Api-Key: $URLIK_KEY" \ -d "code=spring"
const res = await fetch("https://urlik.xyz/api/delete.json", {
method: "POST",
headers: { "X-Api-Key": process.env.URLIK_KEY },
body: new URLSearchParams({ code: "spring" })
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/delete.json");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_POSTFIELDS => ["code" => "spring"],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.post(
"https://urlik.xyz/api/delete.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
data={"code": "spring"},
)
print(r.json())Медіа, QR і тимчасова пошта
Для цих методів потрібен заголовок X-Api-Key або виклик через RapidAPI.
GET/api/download.jsonЗавантажити відео чи фото з 1000+ сайтів: формати з готовими підписаними посиланнямиПотрібен ключ
| Параметр | Обов’язковість | Опис |
|---|---|---|
url | обов’язковий | Адреса сторінки з відео чи фото |
curl -H "X-Api-Key: $URLIK_KEY" "https://urlik.xyz/api/download.json?url=https%3A%2F%2Fexample.com%2Fspring-sale"
const res = await fetch("https://urlik.xyz/api/download.json?" + new URLSearchParams({ url: "https://example.com/spring-sale" }), {
headers: { "X-Api-Key": process.env.URLIK_KEY }
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/download.json?" . http_build_query(["url" => "https://example.com/spring-sale"]));
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.get(
"https://urlik.xyz/api/download.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
params={"url": "https://example.com/spring-sale"},
)
print(r.json())GET/api/qr.jsonЗгенерувати QR-код у PNG або SVGПотрібен ключ
| Параметр | Обов’язковість | Опис |
|---|---|---|
data | обов’язковий | Текст або адреса для кодування |
format | необов’язковий | png або svg |
fg, bg | необов’язковий | Колір візерунка й тла, hex |
ecc | необов’язковий | Корекція помилок: L, M, Q або H |
size | необов’язковий | Розмір зображення в пікселях |
curl -H "X-Api-Key: $URLIK_KEY" "https://urlik.xyz/api/qr.json?data=https%3A%2F%2Furlik.xyz"
const res = await fetch("https://urlik.xyz/api/qr.json?" + new URLSearchParams({ data: "https://urlik.xyz" }), {
headers: { "X-Api-Key": process.env.URLIK_KEY }
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/qr.json?" . http_build_query(["data" => "https://urlik.xyz"]));
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.get(
"https://urlik.xyz/api/qr.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
params={"data": "https://urlik.xyz"},
)
print(r.json())GET/api/mailbox.jsonОтримати або створити тимчасову адресуПотрібен ключ
| Параметр | Обов’язковість | Опис |
|---|---|---|
address | username | необов’язковий | Тимчасова адреса або ім’я для нової; порожньо — випадкова адреса |
curl -H "X-Api-Key: $URLIK_KEY" "https://urlik.xyz/api/mailbox.json?address=demo%40example.com"
const res = await fetch("https://urlik.xyz/api/mailbox.json?" + new URLSearchParams({ address: "[email protected]" }), {
headers: { "X-Api-Key": process.env.URLIK_KEY }
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/mailbox.json?" . http_build_query(["address" => "[email protected]"]));
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.get(
"https://urlik.xyz/api/mailbox.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
params={"address": "[email protected]"},
)
print(r.json())GET/api/messages.jsonСписок листів у тимчасовій скриньціПотрібен ключ
| Параметр | Обов’язковість | Опис |
|---|---|---|
address | обов’язковий | Тимчасова адреса |
curl -H "X-Api-Key: $URLIK_KEY" "https://urlik.xyz/api/messages.json?address=demo%40example.com"
const res = await fetch("https://urlik.xyz/api/messages.json?" + new URLSearchParams({ address: "[email protected]" }), {
headers: { "X-Api-Key": process.env.URLIK_KEY }
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/messages.json?" . http_build_query(["address" => "[email protected]"]));
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.get(
"https://urlik.xyz/api/messages.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
params={"address": "[email protected]"},
)
print(r.json())GET/api/message.jsonПрочитати один листПотрібен ключ
| Параметр | Обов’язковість | Опис |
|---|---|---|
address | обов’язковий | Тимчасова адреса |
id | обов’язковий | Номер листа зі списку скриньки |
curl -H "X-Api-Key: $URLIK_KEY" "https://urlik.xyz/api/message.json?address=demo%40example.com&id=1"
const res = await fetch("https://urlik.xyz/api/message.json?" + new URLSearchParams({ address: "[email protected]", id: "1" }), {
headers: { "X-Api-Key": process.env.URLIK_KEY }
});
console.log(await res.json());$ch = curl_init("https://urlik.xyz/api/message.json?" . http_build_query(["address" => "[email protected]", "id" => "1"]));
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("URLIK_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
print_r(json_decode(curl_exec($ch), true));import os, requests
r = requests.get(
"https://urlik.xyz/api/message.json",
headers={"X-Api-Key": os.environ["URLIK_KEY"]},
params={"address": "[email protected]", "id": "1"},
)
print(r.json())Нічого не знайдено
Жоден метод не підходить. Спробуйте шлях, наприклад qr або stats.
Спробувати наживо
Досліджуйте та викликайте будь-який ендпоінт прямо тут. Вставте API-ключ через кнопку Authorize для авторизованих запитів.
Вбудувати скорочувач
Додайте цей фрагмент на будь-яку сторінку, щоб отримати робочий скорочувач URL із посиланням на urlik.xyz:
<iframe src="https://urlik.xyz/embed" style="width:100%;max-width:520px;height:150px;border:0" title="URL shortener by urlik.xyz" loading="lazy"></iframe>
Простий REST API для коротких посилань
REST API Urlik дає змогу створювати, читати, оновлювати та видаляти короткі посилання з вашого власного коду й отримувати статистику кліків у форматі JSON. Це звичайний HTTPS API — надішліть POST-запит і отримайте передбачувану JSON-відповідь — тож він працює з будь-якої мови чи платформи.
Для базового скорочення облікові дані не потрібні. Щоб прив'язувати посилання до вашого облікового запису та керувати ними згодом, надсилайте свій ключ у заголовку X-Api-Key, який ви знайдете у своєму обліковому записі. Відповіді завжди мають той самий формат зі статусом, повідомленням і полем return, показаний нижче.
Чи потрібен мені ключ API?
Для базового скорочення — ні, посилання можна створити анонімно. Ключ, який є у вашому обліковому записі, прив'язує посилання до вас і потрібен, щоб переглядати, оновлювати чи видаляти їх.
У якому форматі надходять відповіді?
Кожна кінцева точка повертає JSON зі статусом, зрозумілим людині повідомленням і об'єктом return, що містить дані, тож розбір відповідей однаковий для всіх викликів.
Чи є обмеження за частотою запитів?
Так, запити обмежуються за частотою для кожного викликача, щоб сервіс залишався швидким і справедливим. Автентифіковані ключі отримують більший ліміт, ніж анонімний трафік.
Чи можна використовувати його з будь-якої мови?
Так. Це стандартний HTTPS JSON API, тож ним може користуватися все, що вміє надсилати POST-запит — curl, Python, PHP, JavaScript або Go.
Urlik об'єднує набір швидких і дружніх до приватності вебінструментів в одному місці, щоб вирішувати щоденні завдання з посиланнями, не перемикаючись між різними сервісами й не створюючи облікових записів. Чи ділитеся ви кампанією, приймаєте оплату, перевіряєте реєстрацію або надсилаєте конфіденційний файл — для кожного завдання є свій безкоштовний інструмент.