API

Программный доступ к своим ссылкам: список, создание, изменение и удаление. Анонимные ссылки через API не создаются — каждая принадлежит владельцу токена.

Базовый адрес

https://pxnt.ru/api/v1

Авторизация

Каждый запрос несёт заголовок Authorization с токеном из личного кабинета. Cookie и сессия для API не используются вовсе, поэтому запрос из чужого браузера подделать нечем.

Authorization: Bearer pxnt_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Токен создаётся в разделе «Токены API» личного кабинета и показывается один раз.

Формат

Запросы и ответы — JSON в кодировке UTF-8. Тело запроса должно иметь заголовок Content-Type: application/json и не превышать 32 КБ.

Поля ссылки

codeКороткий код, часть адреса
short_urlГотовая короткая ссылка
urlЦелевой адрес
clicksЧисло переходов
statusСостояние модерации: active, flagged или blocked
created_atМомент создания, ISO 8601 в UTC
last_click_atМомент последнего перехода или null

Методы

GET /api/v1/links Список ваших ссылок, свежие сверху
POST /api/v1/links Создать ссылку
GET /api/v1/links/{code} Одна ссылка по коду
PATCH /api/v1/links/{code} Изменить целевой адрес
DELETE /api/v1/links/{code} Удалить ссылку

Параметры списка

  • limit — Сколько вернуть, от 1 до 100. По умолчанию 50.
  • offset — Сколько пропустить. По умолчанию 0.

Пример

Замените PXNT_TOKEN на свой токен.

curl -X POST https://pxnt.ru/api/v1/links \ -H "Authorization: Bearer $PXNT_TOKEN" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com/очень/длинный/адрес"}'
{ "link": { "code": "aB3xK9z", "short_url": "https://pxnt.ru/aB3xK9z", "url": "https://example.com/очень/длинный/адрес", "clicks": 0, "status": "active", "created_at": "2026-09-04T18:20:11.482Z", "last_click_at": null } }
curl -X PATCH https://pxnt.ru/api/v1/links/aB3xK9z \ -H "Authorization: Bearer $PXNT_TOKEN" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com/новый/адрес"}' curl -X DELETE https://pxnt.ru/api/v1/links/aB3xK9z \ -H "Authorization: Bearer $PXNT_TOKEN"

Ограничения частоты

Лимит считается по токену, а не по адресу, поэтому несколько машин с одним токеном делят общий счёт. При превышении возвращается код 429 и заголовок Retry-After с числом секунд.

  • чтение — 600 запросов в час
  • создание, изменение и удаление — 120 запросов в час

Ошибки

Ошибка возвращается с подходящим кодом состояния и телом одинаковой формы: поле error содержит машиночитаемый код, message — пояснение на языке интерфейса.

{ "error": "validation_error", "message": "Адреса внутренних сетей сокращать нельзя" }
Код Поле error Когда
401unauthorizedЗаголовок Authorization отсутствует, испорчен или токен отозван
403forbiddenАккаунт заблокирован
404not_foundСсылки с таким кодом у вас нет
400validation_errorЦелевой адрес не прошёл проверку или тело запроса неверно
409conflictДругая ваша ссылка уже ведёт на этот адрес
413payload_too_largeТело запроса больше 32 КБ
429rate_limitedПревышено ограничение частоты