Документация 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 formatURL не проходит валидацию
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