К содержимому

REST API

Пользователи и профиль

Профиль, приватность и состояние клиента, блокировки, ссылки-контакты и приглашения.

Методы текущего аккаунта. Настройки приватности, папки, архив, закреплённые чаты и быстрые реакции хранятся в синхронизируемом состоянии клиента.

Профиль, приватность, контакты#

GET /api/user #

Текущий пользователь

Bearer-токен

Профиль авторизованного пользователя.

Параметры

Без параметров.

Запрос

curl
curl 'https://minchatapp.com/api/user' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

HTTP 200
{
  "id": 1,
  "name": "Anna Smith",
  "email": "anna@example.com",
  "created_at": "2026-10-20T11:12:45.000000Z",
  "updated_at": "2026-10-21T07:17:33.000000Z",
  "avatar": null,
  "last_seen_at": "2026-10-21T07:18:22.000000Z",
  "push_notifications_enabled": true,
  "invited_by_id": null,
  "invite_id": null,
  "locale": "ru",
  "default_history_ttl": 0,
  "phone": null,
  "about": null,
  "birthday": null,
  "username": "anna_s",
  "is_bot": false,
  "phone_verified_at": null,
  "avatar_url": null,
  "via_google": false
}
POST /api/user #

Обновить профиль

Bearer-токен multipart/form-data

Частичное обновление (только изменяемые поля). avatar — изображение (jpeg/png/gif/webp, ≤ 4000×4000), ужимается до 800×800 JPEG. username — общие правила логинов (5–32 символа, ^[a-z][a-z0-9_]{4,31}$, не может заканчиваться на bot). locale — язык писем и пушей.

Параметры

Имя Тип Описание
name
обязательный тело
string
Имя.
max 255 chars
username
необязательный тело
string
Публичный @логин, null — убрать.
max 32 chars
avatar
необязательный тело
file
Аватар (multipart).
max 5 MB
push_notifications_enabled
необязательный тело
boolean
Глобальный переключатель пушей.
locale
необязательный тело
string
ru или en.
one of: ru, en
about
необязательный тело
string
О себе.
max 500 chars
phone
необязательный тело
string
Телефон в профиле.
max 32 chars
birthday
необязательный тело
string
День рождения (дата).

Запрос

curl
curl -X POST 'https://minchatapp.com/api/user' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"about": "Product designer", "locale": "en"}'

Ответ

HTTP 200
{
  "success": true,
  "user": {
    "id": 1,
    "name": "Anna Smith",
    "email": "anna@example.com",
    "created_at": "2026-10-20T11:12:45.000000Z",
    "updated_at": "2026-10-22T09:12:50.000000Z",
    "avatar": null,
    "last_seen_at": "2026-10-22T09:11:15.000000Z",
    "push_notifications_enabled": true,
    "invited_by_id": null,
    "invite_id": null,
    "locale": "en",
    "default_history_ttl": 0,
    "phone": null,
    "about": "Product designer",
    "birthday": null,
    "username": "anna_s",
    "is_bot": false,
    "phone_verified_at": null,
    "avatar_url": null,
    "via_google": false
  }
}
DELETE /api/user #

Удалить аккаунт

Bearer-токен Лимит: 10/10 min

Необратимо. Аккаунты с паролем передают password, остальные — confirmation.

Параметры

Имя Тип Описание
confirmation
обязательный тело
string
Фраза подтверждения.
password
обязательный тело
string
Текущий пароль.

Запрос

curl
curl -X DELETE 'https://minchatapp.com/api/user' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

Отвечает HTTP 200.

POST /api/user/email/request #

Запросить смену email

Bearer-токен Лимит: 5/10 min

Отправляет код на новый адрес. current_password обязателен, если у аккаунта есть пароль.

Параметры

Имя Тип Описание
email
обязательный тело
string
Email.
emailmax 255 chars
current_password
необязательный тело
string
Текущий пароль.
max 256 chars

Запрос

curl
curl -X POST 'https://minchatapp.com/api/user/email/request' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"email": "new@example.com", "current_password": "Secret123"}'

Ответ

Отвечает HTTP 200.

POST /api/user/email/confirm #

Подтвердить смену email

Bearer-токен Лимит: 10/min

Применяет новый email; на старый приходит уведомление.

Параметры

Имя Тип Описание
code
обязательный тело
string
Код из письма.
max 12 chars

Запрос

curl
curl -X POST 'https://minchatapp.com/api/user/email/confirm' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"code": "123456"}'

Ответ

Отвечает HTTP 200.

GET /api/user/auto-delete #

Таймер автоудаления по умолчанию

Bearer-токен

period в секундах (0 — выключено), применяется к новым чатам.

Параметры

Без параметров.

Запрос

curl
curl 'https://minchatapp.com/api/user/auto-delete' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

HTTP 200
{
  "period": 0
}
POST /api/user/auto-delete #

Задать таймер автоудаления по умолчанию

Bearer-токен

Параметры

Имя Тип Описание
period
обязательный тело
integer
Секунды, 0 — выкл., максимум год.
≥ 0≤ 31536000

Запрос

curl
curl -X POST 'https://minchatapp.com/api/user/auto-delete' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"period": 604800}'

Ответ

HTTP 200
{
  "period": 604800
}
GET /api/user/client-state #

Синхронизируемое состояние клиента

Bearer-токен

Состояние между устройствами: приватность, папки, архив, закреплённые чаты, быстрые реакции.

Параметры

Без параметров.

Запрос

curl
curl 'https://minchatapp.com/api/user/client-state' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

HTTP 200
{
  "privacy": [],
  "global_privacy": [],
  "folders": [],
  "archived": [],
  "pinned": [],
  "quick_reactions": []
}
PUT /api/user/client-state #

Обновить состояние клиента

Bearer-токен

Передавайте только изменяемые ключи. quick_reactions — список id эмодзи (до 8); null — сброс к набору по умолчанию. В ответе — всё состояние, быстрые реакции раскрыты в карточки эмодзи.

Параметры

Имя Тип Описание
privacy
необязательный тело
array
Флаги приватности по чатам.
global_privacy
необязательный тело
array
Глобальная приватность (последний визит и т. п.).
folders
необязательный тело
array
Папки чатов.
max 10 items
archived
необязательный тело
array
id чатов в архиве.
max 500 items
pinned
необязательный тело
array
id закреплённых чатов.
max 10 items
quick_reactions
необязательный тело
array
id эмодзи для быстрой панели реакций.
max 8 items
quick_reactions.*
необязательный тело
integer
id эмодзи.

Запрос

curl
curl -X PUT 'https://minchatapp.com/api/user/client-state' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"quick_reactions": [1, 2, 3]}'

Ответ

HTTP 200
{
  "privacy": [],
  "global_privacy": [],
  "folders": [],
  "archived": [],
  "pinned": [],
  "quick_reactions": [
    {
      "emoji_id": 1,
      "set_id": 1,
      "set_title": "Min",
      "set_active": true,
      "shortcode": "thumbsup",
      "kind": "unicode",
      "unicode": "👍",
      "image_url": null,
      "count": 0
    },
    {
      "emoji_id": 2,
      "set_id": 1,
      "set_title": "Min",
      "set_active": true,
      "shortcode": "heart",
      "kind": "unicode",
      "unicode": "❤️",
      "image_url": null,
      "count": 0
    },
    {
      "emoji_id": 3,
      "set_id": 1,
      "set_title": "Min",
      "set_active": true,
      "shortcode": "joy",
      "kind": "unicode",
      "unicode": "😂",
      "image_url": null,
      "count": 0
    }
  ]
}
GET /api/username-available #

Проверить логин

Bearer-токен Лимит: 60/min

Логины общие для людей, ботов и каналов. kind: human (по умолчанию), bot (должен оканчиваться на bot), channel.

Параметры

Имя Тип Описание
username
обязательный query
string
Проверяемый логин.
max 32 chars
kind
необязательный query
string
human, bot или channel.

Запрос

curl
curl 'https://minchatapp.com/api/username-available?username=…' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

HTTP 200
{
  "success": true,
  "username": "weather_bot",
  "available": true,
  "reason": null,
  "code": null
}
GET /api/blocks #

Заблокированные пользователи

Bearer-токен

Параметры

Без параметров.

Запрос

curl
curl 'https://minchatapp.com/api/blocks' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

HTTP 200
[
  {
    "id": 4,
    "name": "Gleb Orlov",
    "avatar": null
  }
]
POST /api/blocks #

Заблокировать пользователя

Bearer-токен Лимит: 30/min

Заблокированный не сможет писать вам в личку.

Параметры

Имя Тип Описание
user_id
обязательный тело
integer
id пользователя.
must exist (users)

Запрос

curl
curl -X POST 'https://minchatapp.com/api/blocks' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"user_id": 4}'

Ответ

HTTP 200
{
  "success": true
}
DELETE /api/blocks/{userId} #

Разблокировать пользователя

Bearer-токен

Параметры

Имя Тип Описание
userId
обязательный путь
integer
id пользователя.

Запрос

curl
curl -X DELETE 'https://minchatapp.com/api/blocks/2' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

HTTP 200
{
  "success": true
}
POST /api/user/contact-link/rotate #

Перевыпустить ссылку-контакт

Bearer-токен Лимит: 10/min

Старый токен перестаёт работать.

Параметры

Без параметров.

Запрос

curl
curl -X POST 'https://minchatapp.com/api/user/contact-link/rotate' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

HTTP 200
{
  "token": "g2uGkOSB5TtE",
  "url": "https://minchatapp.com/u/g2uGkOSB5TtE",
  "username_url": "https://minchatapp.com/u/anna_s"
}
POST /api/contact-links/{token}/open #

Открыть ссылку-контакт

Bearer-токен Лимит: 30/min

Создаёт (или возвращает) личный чат с владельцем ссылки.

Параметры

Имя Тип Описание
token
обязательный путь
string
Токен из ссылки.

Запрос

curl
curl -X POST 'https://minchatapp.com/api/contact-links/KRNaDjeuvS2A/open' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

HTTP 200
{
  "success": true,
  "conversation": {
    "id": 5,
    "name": "Anna Smith",
    "type": "private",
    "peer_user_id": 1,
    "avatar": null,
    "last_message": null,
    "unread_count": 0,
    "peer_last_seen_at": "2026-10-22T09:12:50+00:00",
    "peer_status_hidden": false,
    "peer_last_seen_bucket": null,
    "peer_calls_allowed": true,
    "peer_phone": null,
    "peer_about": "Product designer",
    "peer_birthday": null
  }
}
GET /api/invites #

Мои приглашения в сервис

Bearer-токен

Неперсональные коды приглашения, созданные пользователем.

Параметры

Без параметров.

Запрос

curl
curl 'https://minchatapp.com/api/invites' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

HTTP 200
{
  "success": true,
  "invites": [],
  "limits": {
    "max_active": 10
  }
}
POST /api/invites #

Создать приглашение в сервис

Bearer-токен Лимит: 20/10 min

До 10 активных кодов на пользователя.

Параметры

Имя Тип Описание
max_uses
необязательный тело
integer
Максимум использований.
≥ 1≤ 100
expires_in_days
необязательный тело
integer
Срок жизни в днях.
≥ 1≤ 365
note
необязательный тело
string
Заметка.
max 255 chars

Запрос

curl
curl -X POST 'https://minchatapp.com/api/invites' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"max_uses": 1, "expires_in_days": 30, "note": "For a friend"}'

Ответ

HTTP 200
{
  "success": true,
  "invite": {
    "id": 2,
    "code": "XQBGFORV1V",
    "is_personal": false,
    "max_uses": 1,
    "uses_count": 0,
    "expires_at": "2026-11-21T09:12:50.000000Z",
    "revoked_at": null,
    "note": "For a friend",
    "created_at": "2026-10-22T09:12:50.000000Z",
    "is_usable": true,
    "invited_users": []
  }
}
GET /api/invites/personal #

Персональная ссылка-приглашение

Bearer-токен

Возвращает (создавая при необходимости) персональный код.

Параметры

Без параметров.

Запрос

curl
curl 'https://minchatapp.com/api/invites/personal' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

HTTP 200
{
  "success": true,
  "invite": {
    "id": 1,
    "code": "I7TSXMCTZX",
    "is_personal": true,
    "max_uses": 1,
    "uses_count": 0,
    "expires_at": null,
    "revoked_at": null,
    "note": null,
    "created_at": "2026-10-21T06:47:17.000000Z",
    "is_usable": true,
    "invited_users": []
  },
  "url": "https://minchatapp.com/invite/I7TSXMCTZX"
}
POST /api/invites/personal/rotate #

Перевыпустить персональное приглашение

Bearer-токен Лимит: 20/10 min

Параметры

Без параметров.

Запрос

curl
curl -X POST 'https://minchatapp.com/api/invites/personal/rotate' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

Отвечает HTTP 200.

DELETE /api/invites/{invite} #

Отозвать приглашение

Bearer-токен

403 для чужого кода.

Параметры

Имя Тип Описание
invite
обязательный путь
integer
id приглашения.

Запрос

curl
curl -X DELETE 'https://minchatapp.com/api/invites/7' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Accept: application/json'

Ответ

Отвечает HTTP 200.