Документация API

Интеграция с Nexalink API для создания коротких ссылок и QR-кодов

Базовые URL
POST https://nexalink.ru/api/shorten
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 содержит описание.

HTTPmessageПричина
401API key required. Get yours at nexalink.ru/dashboardЗаголовок X-API-Key отсутствует
401Invalid API keyКлюч не найден или аккаунт заблокирован
400URL is requiredПараметр url не передан или пуст
400Invalid URL formatURL не проходит валидацию
400This domain is blockedДомен заблокирован администратором
400Invalid alias format...Алиас не соответствует формату 3–30 символов
400This alias is already takenАлиас уже занят другой ссылкой
400Invalid or unauthorized categoryКатегория не найдена или не принадлежит вам
400data parameter is requiredПараметр data не передан для /api/qr
400Invalid 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 в поле dataUridata:image/png;base64,...
Вопросы? Пишите на support@nexalink.ru