Документация API
Интеграция с Nexalink API для создания коротких ссылок и QR-кодов
Базовые URL
POST https://nexalink.ru/api/shorten
GET https://nexalink.ru/api/qr
GET https://nexalink.ru/api/qr
Эндпоинт /api/shorten принимает POST-запросы в форматах
application/json и application/x-www-form-urlencoded.
Эндпоинт /api/qr принимает параметры через GET или POST.
Аутентификация
Для всех программных запросов к API необходим API-ключ. Передайте его в заголовке:
X-API-Key: ваш_api_ключ
Получить API-ключ: Дашборд → блок «API-ключ» → кнопка «Сгенерировать».
Сокращение ссылки — POST /api/shorten
Создаёт короткую ссылку. Параметр action по умолчанию — shorten_url.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
url |
string | Да | Исходный URL для сокращения |
alias |
string | Нет | Кастомный алиас (3–30 символов: строчные латинские буквы, цифры, дефис) |
category_id |
integer | Нет | ID категории из вашего аккаунта |
expires_at |
string | Нет | Дата истечения ссылки в формате YYYY-MM-DD. Должна быть в будущем. |
password |
string | Нет | Пароль для защиты ссылки. Посетители будут вынуждены ввести пароль перед переходом. |
action |
string | Нет | Действие. По умолчанию: shorten_url |
Пример запроса
curl -X POST https://nexalink.ru/api/shorten \
-H "Content-Type: application/json" \
-H "X-API-Key: ваш_api_ключ" \
-d '{
"url": "https://example.com/very/long/path",
"alias": "my-link",
"expires_at": "2026-12-31",
"password": "secret123"
}'
Ответ при успехе
{
"success": true,
"shortUrl": "https://nexalink.ru/my-link",
"shortCode": "my-link",
"qrCode": "data:image/png;base64,iVBORw0KGgo..."
}
Генерация QR-кода — GET /api/qr
Генерирует QR-код для произвольных данных с расширенными настройками формата и цвета.
Параметры
| Параметр | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|
data |
string | Да | — | Данные для кодирования (URL, текст, телефон и др.) |
size |
integer | Нет | 300 | Размер в пикселях (64–2048) |
fg |
string | Нет | #000000 | Цвет точек в формате HEX, например #1a1a2e |
bg |
string | Нет | #ffffff | Цвет фона в формате HEX |
format |
string | Нет | png | Формат изображения: png, svg, webp |
ec |
string | Нет | M | Уровень коррекции ошибок: L, M, Q, H |
margin |
integer | Нет | 4 | Отступ вокруг QR-кода в пикселях (0–20) |
output |
string | Нет | image | image — бинарный файл; json — объект с полем dataUri |
download |
integer | Нет | 0 | Передайте 1, чтобы ответ вернулся с заголовком Content-Disposition: attachment |
Пример — получить изображение напрямую
GET https://nexalink.ru/api/qr?data=https://example.com&size=300&fg=%231a1a2e&format=png
X-API-Key: ваш_api_ключ
Пример — получить base64 через JSON
curl "https://nexalink.ru/api/qr?data=https://example.com&output=json" \
-H "X-API-Key: ваш_api_ключ"
Ответ (output=json)
{
"success": true,
"format": "png",
"size": 300,
"dataUri": "data:image/png;base64,iVBORw0KGgo..."
}
Коды ошибок
При ошибке success равен false, HTTP-статус — 4xx, поле message содержит описание.
| HTTP | message | Причина |
|---|---|---|
| 401 | API key required. Get yours at nexalink.ru/dashboard | Заголовок X-API-Key отсутствует |
| 401 | Invalid API key | Ключ не найден или аккаунт заблокирован |
| 400 | URL is required | Параметр url не передан или пуст |
| 400 | Invalid URL format | URL не проходит валидацию |
| 400 | This domain is blocked | Домен заблокирован администратором |
| 400 | Invalid alias format... | Алиас не соответствует формату 3–30 символов |
| 400 | This alias is already taken | Алиас уже занят другой ссылкой |
| 400 | Invalid or unauthorized category | Категория не найдена или не принадлежит вам |
| 400 | data parameter is required | Параметр data не передан для /api/qr |
| 400 | Invalid action specified | Передано неизвестное значение action |
Примеры
Базовое сокращение ссылки
curl -X POST https://nexalink.ru/api/shorten \
-H "Content-Type: application/json" \
-H "X-API-Key: ваш_api_ключ" \
-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": "2026-12-31",
"password": "secret"
}'
Генерация QR-кода (изображение)
curl -o qr.png \
-H "X-API-Key: ваш_api_ключ" \
"https://nexalink.ru/api/qr?data=https://example.com&size=400&fg=%231a1a2e&format=png"
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: '2026-12-31'
})
});
const data = await res.json();
if (data.success) {
console.log(data.shortUrl); // https://nexalink.ru/my-link
console.log(data.shortCode); // my-link
}
Python
import requests
resp = requests.post(
'https://nexalink.ru/api/shorten',
headers={'X-API-Key': 'ваш_api_ключ'},
json={'url': 'https://example.com', 'alias': 'my-link'}
)
data = resp.json()
print(data['shortUrl']) # https://nexalink.ru/my-link
Ограничения
- Аутентификация: все программные запросы к API требуют заголовок
X-API-Key. Ключ выдаётся в личном кабинете бесплатно. - Алиас: 3–30 символов, только строчные латинские буквы, цифры и дефис (
[a-z0-9-]). - Дата истечения: формат
YYYY-MM-DD, должна быть позже текущей даты. - Размер QR: от 64 до 2048 пикселей.
- Ответ QR (
output=image): бинарный файл с соответствующим MIME-типом. - Ответ QR (
output=json): base64 в полеdataUri—data:image/png;base64,...
Вопросы? Пишите на support@nexalink.ru