ГлавнаяДокументацияКалькуляторКонтактыВойти
документация api

МигКон API

Полная документация REST API для интеграции с сервисом мониторинга иностранных сотрудников. Аутентификация, управление персоналиями, проверки по реестрам и webhooks.

Открыть Swagger UIBase URL: https://api.migcon.ru

Быстрый старт

Примеры запросов к API на разных языках программирования. Скопируйте код и адаптируйте под свои нужды.

terminal
# Проверка доступности
curl https://api.migcon.ru/_ping

# Добавить персоналию
curl -X POST https://api.migcon.ru/api/v1/persons \
  -H "token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '[{
    "first_name": "Рашид",
    "last_name": "Алиев",
    "bday": "1990-05-15",
    "doc_num": "4512 123456",
    "doc_issued": "2015-03-20"
  }]'

# Получить данные персоналии
curl https://api.migcon.ru/api/v1/persons/PERSON_UUID \
  -H "token: YOUR_TOKEN"

# Запустить мониторинг
curl -X POST https://api.migcon.ru/api/v1/checks/start \
  -H "token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '["PERSON_UUID"]'

Аутентификация

Все эндпоинты API (кроме системных) требуют B2B-токен в заголовке запроса.

B2B TokenДля серверных интеграций

Передайте токен в заголовке запроса:

token: YOUR_API_TOKEN

Токен выдаётся при подключении. Запросите через info@migcon.ru

Система

/Без авторизации

Проверка доступности API и состояния компонентов системы.

GET/_pingPublic
Health-check
Response
"pong"
200API доступен
GET/_healthPublic
Состояние системы (БД + очередь)
Response
{
  "db": "ok",
  "queue": "ok"
}
200Все компоненты работают503Один или несколько компонентов недоступны

Персоналии (B2B)

/api/v1Заголовок token (B2B-токен)

CRUD-операции с персоналиями для B2B-интеграций. Авторизация через заголовок token.

POST/api/v1/personsB2B Token
Добавить персоналии (до 50 шт.)
Автоматически ставятся в очередь на первичную проверку по реестрам.
Request
[
  {
    "first_name": "Рашид",
    "last_name": "Алиев",
    "middle_name": "Маратович",
    "bday": "1990-05-15",
    "doc_num": "4512 123456",
    "doc_issued": "2015-03-20",
    "patent_series": "77",
    "patent_number": "1234567"
  }
]
Response
[
  {
    "person_id": "550e8400-...",
    "first_name": "Рашид",
    "last_name": "Алиев",
    "bday": "1990-05-15",
    "doc_num": "4512 123456",
    ...
  }
]
200Персоналии добавлены400Превышен лимит или невалидные данные
GET/api/v1/persons/{person_id}B2B Token
Получить персоналию
Response
{
  "person_id": "550e8400-...",
  "first_name": "Рашид",
  "last_name": "Алиев",
  "bday": "1990-05-15",
  "monitoring_enabled": true,
  "never_checked": false,
  "registries": {
    "rkl":    { "present": false, "checked_at": "2025-02-20T09:41Z" },
    "patent": { "present": true,  "comment": "Истекает 2025-08-12" },
    "fines":  { "present": false, "checked_at": "2025-02-20T09:41Z" }
  }
}
200Данные персоналии404Персоналия не найдена
PUT/api/v1/persons/{person_id}B2B Token
Обновить персоналию
Автоматически ставится в очередь на повторную проверку.
Request
{
  "first_name": "Рашид",
  "last_name": "Алиев",
  "bday": "1990-05-15",
  "doc_num": "4512 123456",
  "doc_issued": "2015-03-20",
  "patent_number": "7654321"
}
Response
{
  "person_id": "550e8400-...",
  "first_name": "Рашид",
  ...
}
200Обновлено
DELETE/api/v1/persons/{person_id}B2B Token
Удалить персоналию
Response
{
  "status": "deleted",
  "person_id": "550e8400-..."
}
200Удалено404Не найдена

Мониторинг (B2B)

/api/v1Заголовок token (B2B-токен)

Управление регулярным мониторингом персоналий по реестрам.

POST/api/v1/checks/startB2B Token
Запустить мониторинг
Передаётся массив UUID персоналий. Система будет периодически проверять их по реестрам.
Request
[
  "550e8400-e29b-41d4-a716-446655440000",
  "660e8400-e29b-41d4-a716-446655440001"
]
Response
{ "status": "started" }
200Мониторинг запущен
POST/api/v1/checks/stopB2B Token
Остановить мониторинг
Request
[
  "550e8400-e29b-41d4-a716-446655440000"
]
Response
{ "status": "stopped" }
200Мониторинг остановлен

Коды ошибок

Все ошибки возвращаются в формате JSON с полем detail.

{
  "detail": "Описание ошибки"
}
КодОписание
400Невалидные данные запроса
401Не авторизован (невалидный или просроченный токен)
403Доступ запрещён (недостаточно прав или аккаунт деактивирован)
404Ресурс не найден
409Конфликт (дублирование email, организации и т.д.)
429Превышен лимит (например, 2 проверки/месяц для ФЛ)
503Сервис недоступен (БД или очередь сообщений)