Документация API
Интеграция с Nexalink API для создания коротких ссылок и QR-кодов
Базовый URL
POST https://nexalink.ru/api/shorten
Все запросы отправляются методом POST.
Поддерживаются форматы тела: application/json и application/x-www-form-urlencoded.
Аутентификация
Передайте API-ключ в заголовке запроса. Без ключа ссылка создаётся анонимно с лимитом 100 кликов.
X-API-Key: ваш_api_ключ
Получить API-ключ: Дашборд → блок «API-ключ» → кнопка «Сгенерировать».
Действие: shorten_url
Создаёт короткую ссылку. Значение по умолчанию для параметра action.
Параметры
| Параметр | Тип | Обяз. | Только авториз. | Описание |
|---|---|---|---|---|
action |
string | Нет | — | Действие. По умолчанию: shorten_url |
url |
string | Да | — | Исходный URL для сокращения |
alias |
string | Нет | Да | Кастомный алиас (3–30 символов: строчные латинские буквы, цифры, дефис) |
category_id |
integer | Нет | Да | ID категории из вашего аккаунта |
expires_at |
string | Нет | Да | Дата истечения ссылки в формате YYYY-MM-DD. Должна быть в будущем. |
password |
string | Нет | Да | Пароль для защиты ссылки. Посетители будут вынуждены ввести пароль перед переходом. |
Пример запроса
{
"action": "shorten_url",
"url": "https://example.com/very/long/path",
"alias": "my-link",
"category_id": 3,
"expires_at": "2025-12-31",
"password": "secret123"
}
Ответ при успехе
{
"success": true,
"shortUrl": "https://nexalink.ru/my-link",
"qrCode": "data:image/png;base64,iVBORw0KGgo..."
}
Действие: generate_qr
Генерирует QR-код для произвольных данных (URL, текст, номер телефона и т.д.).
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
action |
string | Да | Значение: generate_qr |
data |
string | Да | Данные для кодирования в QR (URL, текст и др.) |
Пример запроса
{
"action": "generate_qr",
"data": "https://example.com"
}
Ответ при успехе
{
"success": true,
"qrCode": "data:image/png;base64,iVBORw0KGgo..."
}
Коды ошибок
При ошибке success равен false, а message содержит описание.
| message | Причина |
|---|---|
URL is required | Параметр url не передан или пуст |
Invalid URL format | URL не проходит валидацию |
This domain is blocked | Домен заблокирован администратором |
Invalid or missing API key | Заголовок X-API-Key отсутствует или неверен |
Invalid or unauthorized category | Категория не найдена или не принадлежит вам |
Categories are available only for authenticated users | Категории доступны только авторизованным |
Custom alias is available only for authenticated users | Алиас доступен только авторизованным |
Invalid alias format. Use 3–30 lowercase letters, digits, or hyphens. | Алиас не соответствует формату |
This alias is already taken | Алиас уже занят другой ссылкой |
Data is required for QR code generation | Параметр data не передан для generate_qr |
Invalid action specified | Передано неизвестное значение action |
Примеры
Анонимное создание (без ключа)
curl -X POST https://nexalink.ru/api/shorten \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
С алиасом, датой истечения и паролем
curl -X POST https://nexalink.ru/api/shorten \
-H "Content-Type: application/json" \
-H "X-API-Key: ваш_api_ключ" \
-d '{
"url": "https://example.com",
"alias": "promo-sale",
"expires_at": "2025-12-31",
"password": "secret"
}'
Генерация QR-кода
curl -X POST https://nexalink.ru/api/shorten \
-H "Content-Type: application/json" \
-d '{"action":"generate_qr","data":"https://example.com"}'
JavaScript (Fetch API)
const res = await fetch('https://nexalink.ru/api/shorten', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'ваш_api_ключ'
},
body: JSON.stringify({
url: 'https://example.com',
alias: 'my-link',
expires_at: '2025-12-31'
})
});
const data = await res.json();
if (data.success) {
console.log(data.shortUrl); // https://nexalink.ru/my-link
}
Ограничения
- Анонимные запросы: ссылка создаётся с лимитом 100 кликов. Алиас, категория, дата истечения и пароль недоступны.
- Авторизованные пользователи: без ограничения кликов, с расчётом баланса (0.10 ₽ за клик). Доступны все параметры.
- Алиас: 3–30 символов, только строчные латинские буквы, цифры и дефис (
[a-z0-9-]). - Дата истечения: формат
YYYY-MM-DD, должна быть позже текущей даты. - Ответ QR-кода: PNG в формате base64 (
data:image/png;base64,...).
Вопросы? Пишите на support@nexalink.ru