REST API
Пользователи и профиль
Профиль, приватность и состояние клиента, блокировки, ссылки-контакты и приглашения.
Методы текущего аккаунта. Настройки приватности, папки, архив, закреплённые чаты и быстрые реакции хранятся в синхронизируемом состоянии клиента.
Профиль, приватность, контакты#
Текущий пользователь
Профиль авторизованного пользователя.
Параметры
Без параметров.
Запрос
curl 'https://minchatapp.com/api/user' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"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
}
Обновить профиль
Частичное обновление (только изменяемые поля). 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 -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"}'
Ответ
{
"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
}
}
Удалить аккаунт
Необратимо. Аккаунты с паролем передают password, остальные — confirmation.
Параметры
| Имя | Тип | Описание |
|---|---|---|
confirmation
обязательный тело
|
string |
Фраза подтверждения. |
password
обязательный тело
|
string |
Текущий пароль. |
Запрос
curl -X DELETE 'https://minchatapp.com/api/user' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.
Запросить смену email
Отправляет код на новый адрес. current_password обязателен, если у аккаунта есть пароль.
Параметры
| Имя | Тип | Описание |
|---|---|---|
email
обязательный тело
|
string |
Email. emailmax 255 chars
|
current_password
необязательный тело
|
string |
Текущий пароль. max 256 chars
|
Запрос
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.
Подтвердить смену email
Применяет новый email; на старый приходит уведомление.
Параметры
| Имя | Тип | Описание |
|---|---|---|
code
обязательный тело
|
string |
Код из письма. max 12 chars
|
Запрос
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.
Таймер автоудаления по умолчанию
period в секундах (0 — выключено), применяется к новым чатам.
Параметры
Без параметров.
Запрос
curl 'https://minchatapp.com/api/user/auto-delete' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"period": 0
}
Задать таймер автоудаления по умолчанию
Параметры
| Имя | Тип | Описание |
|---|---|---|
period
обязательный тело
|
integer |
Секунды, 0 — выкл., максимум год. ≥ 0≤ 31536000
|
Запрос
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}'
Ответ
{
"period": 604800
}
Синхронизируемое состояние клиента
Состояние между устройствами: приватность, папки, архив, закреплённые чаты, быстрые реакции.
Параметры
Без параметров.
Запрос
curl 'https://minchatapp.com/api/user/client-state' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"privacy": [],
"global_privacy": [],
"folders": [],
"archived": [],
"pinned": [],
"quick_reactions": []
}
Обновить состояние клиента
Передавайте только изменяемые ключи. 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 -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]}'
Ответ
{
"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
}
]
}
Поиск пользователей
Поиск по имени/логину (≥ 2 символов), до 20 результатов.
Параметры
| Имя | Тип | Описание |
|---|---|---|
query
обязательный query
|
string |
Строка поиска. min 2 chars
|
Запрос
curl 'https://minchatapp.com/api/users/search?query=bor' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
[
{
"id": 2,
"name": "Boris Petrov",
"avatar": null,
"last_seen_at": "2026-10-21T06:46:11+00:00",
"status_hidden": false,
"last_seen_bucket": null,
"phone": null,
"about": null,
"birthday": null
}
]
Проверить логин
Логины общие для людей, ботов и каналов. kind: human (по умолчанию), bot (должен оканчиваться на bot), channel.
Параметры
| Имя | Тип | Описание |
|---|---|---|
username
обязательный query
|
string |
Проверяемый логин. max 32 chars
|
kind
необязательный query
|
string |
human, bot или channel. |
Запрос
curl 'https://minchatapp.com/api/username-available?username=…' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"success": true,
"username": "weather_bot",
"available": true,
"reason": null,
"code": null
}
Заблокированные пользователи
Параметры
Без параметров.
Запрос
curl 'https://minchatapp.com/api/blocks' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
[
{
"id": 4,
"name": "Gleb Orlov",
"avatar": null
}
]
Заблокировать пользователя
Заблокированный не сможет писать вам в личку.
Параметры
| Имя | Тип | Описание |
|---|---|---|
user_id
обязательный тело
|
integer |
id пользователя. must exist (users)
|
Запрос
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}'
Ответ
{
"success": true
}
Разблокировать пользователя
Параметры
| Имя | Тип | Описание |
|---|---|---|
userId
обязательный путь
|
integer |
id пользователя. |
Запрос
curl -X DELETE 'https://minchatapp.com/api/blocks/2' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"success": true
}
Моя ссылка-контакт
Личная ссылка /u/{token} (и /u/{username}, если задан логин), открывающая личный чат с вами.
Параметры
Без параметров.
Запрос
curl 'https://minchatapp.com/api/user/contact-link' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"token": "KRNaDjeuvS2A",
"url": "https://minchatapp.com/u/KRNaDjeuvS2A",
"username_url": "https://minchatapp.com/u/anna_s"
}
Перевыпустить ссылку-контакт
Старый токен перестаёт работать.
Параметры
Без параметров.
Запрос
curl -X POST 'https://minchatapp.com/api/user/contact-link/rotate' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"token": "g2uGkOSB5TtE",
"url": "https://minchatapp.com/u/g2uGkOSB5TtE",
"username_url": "https://minchatapp.com/u/anna_s"
}
Превью ссылки-контакта
Публично (Bearer необязателен). token может быть и @username.
Параметры
| Имя | Тип | Описание |
|---|---|---|
token
обязательный путь
|
string |
Токен из ссылки. |
Запрос
curl 'https://minchatapp.com/api/contact-links/KRNaDjeuvS2A' \
-H 'Accept: application/json'
Ответ
{
"user": {
"id": null,
"name": "Anna Smith",
"username": "anna_s",
"avatar": null,
"is_bot": false
},
"is_self": false
}
Открыть ссылку-контакт
Создаёт (или возвращает) личный чат с владельцем ссылки.
Параметры
| Имя | Тип | Описание |
|---|---|---|
token
обязательный путь
|
string |
Токен из ссылки. |
Запрос
curl -X POST 'https://minchatapp.com/api/contact-links/KRNaDjeuvS2A/open' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"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
}
}
Мои приглашения в сервис
Неперсональные коды приглашения, созданные пользователем.
Параметры
Без параметров.
Запрос
curl 'https://minchatapp.com/api/invites' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"success": true,
"invites": [],
"limits": {
"max_active": 10
}
}
Создать приглашение в сервис
До 10 активных кодов на пользователя.
Параметры
| Имя | Тип | Описание |
|---|---|---|
max_uses
необязательный тело
|
integer |
Максимум использований. ≥ 1≤ 100
|
expires_in_days
необязательный тело
|
integer |
Срок жизни в днях. ≥ 1≤ 365
|
note
необязательный тело
|
string |
Заметка. max 255 chars
|
Запрос
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"}'
Ответ
{
"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": []
}
}
Персональная ссылка-приглашение
Возвращает (создавая при необходимости) персональный код.
Параметры
Без параметров.
Запрос
curl 'https://minchatapp.com/api/invites/personal' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"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"
}
Перевыпустить персональное приглашение
Параметры
Без параметров.
Запрос
curl -X POST 'https://minchatapp.com/api/invites/personal/rotate' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.
Отозвать приглашение
403 для чужого кода.
Параметры
| Имя | Тип | Описание |
|---|---|---|
invite
обязательный путь
|
integer |
id приглашения. |
Запрос
curl -X DELETE 'https://minchatapp.com/api/invites/7' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.