MSHRT API — REST-интерфейс для создания и управления короткими ссылками. Все запросы и ответы используют формат JSON. Все защищённые эндпоинты требуют Bearer-токен в заголовке Authorization.
Все временные метки возвращаются в формате ISO 8601 (UTC). Для нумерации используются целые числа.
https://mshrt.com/api/v1 # Все эндпоинты возвращают JSON Content-Type: application/json # Защищённые эндпоинты требуют: Authorization: Bearer <access_token>
API использует JWT Bearer-токены. После логина вы получаете два токена: access_token (живёт 24ч) и refresh_token (7 дней). Передавайте access_token в каждом запросе.
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
POST /auth/refresh с refresh_token для получения новой пары. Хранить refresh_token в httpOnly Cookie — наилучшая практика.
| Код | Значение | Когда возникает |
|---|---|---|
| 200 | OK | Запрос выполнен успешно |
| 201 | Created | Ресурс создан (register, create link) |
| 400 | Bad Request | Невалидные данные, неверный URL |
| 401 | Unauthorized | Нет токена, токен истёк или неверный |
| 403 | Forbidden | Нет доступа к чужому ресурсу |
| 404 | Not Found | Ресурс не найден |
| 409 | Conflict | Email или алиас уже заняты |
| 500 | Server Error | Внутренняя ошибка сервера |
{
"error": "email already registered"
}
Лимиты применяются по IP-адресу. Заголовки ответа содержат информацию об оставшихся запросах.
| Тариф | Запросов / час | Ссылок / месяц |
|---|---|---|
| Free | 100 | 50 |
| Pro | 1 000 | ∞ |
| Business | 10 000 | ∞ |
Retry-After укажет время ожидания в секундах.| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
name | string | required | Имя пользователя (2–100 символов) |
email | string | required | Email-адрес |
password | string | required | Пароль, минимум 6 символов |
curl -X POST https://mshrt.com/api/v1/auth/register \ -H "Content-Type: application/json" \ -d '{ "name": "Иван Петров", "email": "user@example.com", "password": "secret123" }'
{
"access_token": "eyJhbGci...",
"refresh_token": "a3f9c2...",
"user": {
"id": 1,
"name": "Иван Петров",
"email": "user@example.com",
"plan": "free",
"created_at": "2025-01-15T10:00:00Z"
}
}
curl -X POST https://mshrt.com/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"user@example.com","password":"secret123"}'
{ "refresh_token": "a3f9c2..." }
{
"id": 1, "name": "Иван",
"email": "user@example.com",
"plan": "free",
"created_at": "2025-01-15T10:00:00Z"
}
| Поле | Тип | |
|---|---|---|
old_password | string | required |
new_password | string | required, min 6 |
| Поле | Тип | Описание | |
|---|---|---|---|
url | string | required | Исходный URL (должен начинаться с http:// или https://) |
alias | string | optional | Кастомный алиас. Если не указан — генерируется автоматически |
{
"id": 42,
"url": "https://very-long-url.ru/path",
"code": "abc123",
"short_url": "https://mshrt.com/r/abc123",
"clicks": 0,
"created_at": "2025-01-15T12:00:00Z"
}
| Query | Default | Значения |
|---|---|---|
page | 1 | Номер страницы |
limit | 20 | Размер страницы (макс. 100) |
search | — | Поиск по URL или коду |
sort | date | date · clicks · alpha |
{
"data": [/* LinkResponse[] */],
"total": 47,
"page": 1,
"limit": 20
}
{
"total_links": 12,
"total_clicks": 340,
"avg_clicks": 28.3,
"max_clicks": 120,
"chart": [
{ "date": "2025-01-15", "label": "Wed", "clicks": 18 }
],
"top_links": [/* LinkResponse[] */]
}
| Поле | Тип | |
|---|---|---|
url | string | required |
code | string | required |
{ "message": "deleted" }
GET /r/abc123 ← 301 Moved Permanently Location: https://original-very-long-url.ru/some/path
MSHRT API подходит для сценариев, где нужно автоматически создавать короткие ссылки из CRM, CMS, рекламных кабинетов, внутренних админок и SaaS-продуктов. Вместо ручной работы команда получает единый REST API коротких ссылок с JWT-аутентификацией и понятной структурой ответов.
Через API можно регистрировать пользователей, выпускать короткие URL, получать список ссылок, редактировать алиасы, удалять записи и отслеживать статистику переходов. Это закрывает и продуктовые задачи, и SEO-задачи, когда нужен предсказуемый домен редиректа, контроль кликов и прозрачная аналитика по каждому short link.
| Сценарий | Что дает API |
|---|---|
| Маркетинг и paid traffic | Быстрое создание коротких ссылок под кампании, UTM-метки и отдельные креативы. |
| Продукт и support | Генерация short URL из backoffice, писем, чат-ботов и dashboard без ручной рутины. |
| Партнерские сети | Контроль редиректов, алиасов и кликов по источникам в едином API. |