REST API
Чаты, группы и каналы
Личные чаты, группы и каналы: создание, участники, роли, настройки, ссылки, закрепы, черновики.
Три типа чатов: private (1-на-1, включая «Избранное»), group и channel (вещание — пишут только owner/admin/moderator). Роли: owner, admin, moderator, member. У публичного канала есть username и страница /c/{username}; в приватный — только по ссылке.
Методы#
Список чатов
Все чаты пользователя (без пагинации), сверху — с последней активностью. type: private, group, channel; «Избранное» — личный чат с самим собой. Содержит превью последнего сообщения, счётчики непрочитанного и упоминаний, mute, черновик и число отложенных.
Параметры
Без параметров.
Запрос
curl 'https://minchatapp.com/api/conversations' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
[
{
"id": 1,
"name": "Design team",
"type": "group",
"peer_user_id": null,
"history_ttl": 0,
"noforwards": false,
"my_noforwards": false,
"peer_noforwards": false,
"blocked": false,
"avatar": null,
"can_send_messages": true,
"username": null,
"visibility": "public",
"share_url": null,
"last_message": {
"id": 28,
"content": "OK",
"body": "OK",
"attachments": [],
"created_at": "2026-10-21T06:46:11.000000Z",
"user": "Gleb Orlov",
"user_id": 4,
"type": "text",
"preview_code": null,
"card": null
},
"unread_count": 0,
"unread_mentions_count": 0,
"muted_until": null,
"joined_at": "2026-10-20T11:12:46+00:00",
"draft": null,
"scheduled_count": 3
},
{
"id": 2,
"name": "MinChat News",
"type": "channel",
"peer_user_id": null,
"history_ttl": 0,
"noforwards": false,
"my_noforwards": false,
"peer_noforwards": false,
"blocked": false,
"avatar": null,
"can_send_messages": true,
"username": "minchat_news",
"visibility": "public",
"share_url": "https://minchatapp.com/c/minchat_news",
"last_message": {
"id": 13,
"content": "Version 1.0.41 is out: more stable calls and chat folders 📁",
"body": "Version 1.0.41 is out: more stable calls and chat folders 📁",
"attachments": [],
"created_at": "2026-10-20T11:12:47.000000Z",
"user": "MinChat News",
"user_id": 1,
"type": "text",
"preview_code": null,
"card": null
},
"unread_count": 0,
"unread_mentions_count": 0,
"muted_until": null,
"joined_at": "2026-10-20T11:12:47+00:00",
"draft": null,
"scheduled_count": 0
}
]
Чат и сообщения
Карточка чата и страница сообщений (курсорная пагинация, по возрастанию id). Без курсоров — последние limit сообщений и отметка прочтения (если не передан peek). before_id — история назад; after_id — догрузка после офлайна (не отмечает прочтение; крутите цикл, пока has_more, сдвигая курсор на максимальный id); around_id — окно вокруг сообщения (переход к ответу / результату поиска).
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
limit
необязательный query
|
integer |
Размер страницы (по умолчанию 50). 1–100
|
before_id
необязательный query
|
integer |
Сообщения с id < before_id. |
after_id
необязательный query
|
integer |
Сообщения с id > after_id. |
around_id
необязательный query
|
integer |
Окно вокруг сообщения. |
peek
необязательный query
|
boolean |
Не отмечать чат прочитанным. |
Запрос
curl 'https://minchatapp.com/api/conversations/12' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"conversation": {
"id": 1,
"name": "Design team",
"type": "group",
"avatar": null,
"user_role": "admin",
"is_owner": true,
"can_send_messages": true,
"members_can_pin": false,
"can_pin": true,
"can_manage_subscribers": false,
"username": null,
"visibility": "public",
"share_url": null,
"pinned_messages": [],
"peer_user_id": null,
"unread_count": 0,
"unread_mentions_count": 0,
"active_call": null,
"joined_at": "2026-10-20T11:12:46+00:00",
"history_ttl": 0,
"noforwards": false,
"my_noforwards": false,
"peer_noforwards": false,
"blocked": false,
"can_change_policy": true,
"members_read_at": {
"1": "2026-10-22T09:06:13+00:00",
"2": null,
"3": null,
"4": null
}
},
"messages": [
{
"id": 41,
"content": "Font is slightly bolder on Windows",
"type": "text",
"attachments": [],
"link_previews": null,
"reply_to": null,
"user": {
"id": 3,
"name": "Vera Kotova",
"avatar": null,
"is_channel": false,
"is_bot": false,
"username": null
},
"created_at": "2026-10-21T06:46:11.000000Z",
"edited_at": null,
"can_delete": false,
"is_own": false,
"read_receipt": null,
"client_id": null,
"forwarded_from": null,
"permalink": null,
"system": null,
"card": null,
"group_id": null,
"mentions": [],
"silent": false,
"expires_at": null,
"reply_markup": null,
"reactions": []
},
{
"id": 42,
"content": "Will fix",
"type": "text",
"attachments": [],
"link_previews": null,
"reply_to": null,
"user": {
"id": 2,
"name": "Boris Petrov",
"avatar": null,
"is_channel": false,
"is_bot": false,
"username": "boris_p"
},
"created_at": "2026-10-21T06:46:11.000000Z",
"edited_at": null,
"can_delete": false,
"is_own": false,
"read_receipt": null,
"client_id": null,
"forwarded_from": null,
"permalink": null,
"system": null,
"card": null,
"group_id": null,
"mentions": [],
"silent": false,
"expires_at": null,
"reply_markup": null,
"reactions": []
},
{
"id": 43,
"content": "Thanks everyone!",
"type": "text",
"attachments": [],
"link_previews": null,
"reply_to": null,
"user": {
"id": 4,
"name": "Gleb Orlov",
"avatar": null,
"is_channel": false,
"is_bot": false,
"username": null
},
"created_at": "2026-10-21T06:46:11.000000Z",
"edited_at": null,
"can_delete": false,
"is_own": false,
"read_receipt": null,
"client_id": null,
"forwarded_from": null,
"permalink": null,
"system": null,
"card": null,
"group_id": null,
"mentions": [],
"silent": false,
"expires_at": null,
"reply_markup": null,
"reactions": []
}
],
"has_more": true
}
404 404
{
"success": false,
"code": "common.not_found",
"error": "Not found",
"message": "Not found"
}
Создать группу или канал
Создатель — владелец. Публичному каналу нужен username; в приватный вступают только по ссылке-приглашению. Realtime: ConversationCreated.
Параметры
| Имя | Тип | Описание |
|---|---|---|
name
обязательный тело
|
string |
Название. max 255 chars
|
description
необязательный тело
|
string |
Описание. max 500 chars
|
type
обязательный тело
|
string |
group или channel.one of:
group, channel |
visibility
необязательный тело
|
string |
public (по умолчанию) или private.one of:
public, private |
username
необязательный тело
|
string |
Публичный @логин (обязателен для публичного канала). max 32 chars
|
Запрос
curl -X POST 'https://minchatapp.com/api/conversations' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"name": "Release notes", "type": "channel", "visibility": "public", "username": "release_notes", "description": "Changelog"}'
Ответ
{
"success": true,
"conversation": {
"id": 6,
"name": "Release notes",
"type": "channel",
"avatar": null,
"description": "Changelog",
"username": "release_notes",
"visibility": "public",
"share_url": "https://minchatapp.com/c/release_notes",
"last_message": null,
"unread_count": 0
}
}
Создать группу с участниками
Добавляет перечисленных пользователей и пишет системное сообщение.
Параметры
| Имя | Тип | Описание |
|---|---|---|
name
обязательный тело
|
string |
Имя / название. max 255 chars
|
description
необязательный тело
|
string |
Описание. max 500 chars
|
user_ids
обязательный тело
|
array |
Кого добавить. min 1 items
|
user_ids.*
необязательный тело
|
integer |
id пользователя. must exist (users)
|
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/group' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"name": "Weekend", "user_ids": [2, 3]}'
Ответ
{
"success": true,
"conversation": {
"id": 7,
"name": "Weekend",
"type": "group",
"avatar": null
}
}
Открыть личный чат
Создаёт или возвращает личный чат с user_id. 400 — с самим собой (используйте /saved).
Параметры
| Имя | Тип | Описание |
|---|---|---|
user_id
обязательный тело
|
integer |
id собеседника. must exist (users)
|
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/private' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"user_id": 2}'
Ответ
{
"success": true,
"conversation": {
"id": 3,
"name": "Boris Petrov",
"type": "private",
"avatar": null
}
}
Открыть «Избранное»
Создаёт или возвращает чат «Избранное».
Параметры
Без параметров.
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/saved' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"success": true,
"conversation": {
"id": 4,
"name": "Saved Messages",
"type": "saved",
"peer_user_id": 1,
"avatar": null
}
}
Популярные каналы
До 10 публичных каналов из каталога, где пользователя нет. Алиас: /random-channels.
Параметры
Без параметров.
Запрос
curl 'https://minchatapp.com/api/conversations/popular-channels' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
[
{
"id": 2,
"name": "MinChat News",
"type": "channel",
"description": "Product updates",
"avatar": null,
"username": "minchat_news",
"visibility": "public",
"members_count": 3,
"is_joined": false,
"share_url": "https://minchatapp.com/c/minchat_news",
"last_activity_at": "2026-10-20T11:12:47+00:00"
}
]
Популярные каналы (алиас)
То же, что /popular-channels.
Параметры
Без параметров.
Запрос
curl 'https://minchatapp.com/api/conversations/random-channels' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
[
{
"id": 2,
"name": "MinChat News",
"type": "channel",
"description": "Product updates",
"avatar": null,
"username": "minchat_news",
"visibility": "public",
"members_count": 3,
"is_joined": false,
"share_url": "https://minchatapp.com/c/minchat_news",
"last_activity_at": "2026-10-20T11:12:47+00:00"
}
]
Поиск публичных каналов
Сначала точное совпадение @username, затем по названию. До 20.
Параметры
| Имя | Тип | Описание |
|---|---|---|
query
обязательный query
|
string |
Строка поиска. min 2 chars
|
Запрос
curl 'https://minchatapp.com/api/conversations/search?query=…' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
[
{
"id": 2,
"name": "MinChat News",
"type": "channel",
"description": "Product updates",
"avatar": null,
"username": "minchat_news",
"visibility": "public",
"members_count": 3,
"is_joined": true,
"share_url": "https://minchatapp.com/c/minchat_news",
"last_activity_at": "2026-10-20T11:12:47+00:00"
}
]
Проверить логин канала
Параметры
| Имя | Тип | Описание |
|---|---|---|
username
обязательный query
|
string |
Логин. max 32 chars
|
Запрос
curl 'https://minchatapp.com/api/conversations/username-available?username=…' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"username": "design_news",
"available": true,
"reason": null,
"code": null
}
Найти канал по логину
Карточка публичного канала. 404 — приватный/скрытый.
Параметры
| Имя | Тип | Описание |
|---|---|---|
username
обязательный путь
|
string |
Логин канала. |
Запрос
curl 'https://minchatapp.com/api/conversations/resolve/minchat_news' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"id": 2,
"name": "MinChat News",
"type": "channel",
"description": "Product updates",
"avatar": null,
"username": "minchat_news",
"visibility": "public",
"members_count": 3,
"is_joined": true,
"share_url": "https://minchatapp.com/c/minchat_news",
"last_activity_at": "2026-10-20T11:12:47+00:00"
}
Превью канала без вступления
404 — приватный канал без членства, 403 — бан.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
Запрос
curl 'https://minchatapp.com/api/conversations/12/preview' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"id": 2,
"name": "MinChat News",
"type": "channel",
"description": "Product updates",
"avatar": null,
"username": "minchat_news",
"visibility": "public",
"members_count": 3,
"is_joined": true,
"share_url": "https://minchatapp.com/c/minchat_news",
"last_activity_at": "2026-10-20T11:12:47+00:00"
}
Информация о чате и участники
Метаданные, владелец, участники (до 50 за страницу, members_has_more), статистика, закрепы. В канале подписчик видит только администрацию. Пагинация: after (id последнего участника) + after_role; фильтр q.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
after
необязательный query
|
integer |
Курсор: id последнего участника предыдущей страницы. |
after_role
необязательный query
|
string |
Роль этого участника (часть курсора). |
q
необязательный query
|
string |
Фильтр участников по имени. |
Запрос
curl 'https://minchatapp.com/api/conversations/12/info' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"id": 1,
"name": "Design team",
"description": "Release discussions",
"type": "group",
"avatar": null,
"is_owner": true,
"user_role": "admin",
"members_can_pin": false,
"can_pin": true,
"can_manage_subscribers": false,
"username": null,
"visibility": "public",
"share_url": null,
"pinned_messages": [],
"owner": {
"id": 1,
"name": "Anna Smith",
"avatar": null
},
"members": [
{
"id": 1,
"name": "Anna Smith",
"avatar": null,
"role": "admin",
"joined_at": "2026-10-20 11:12:46",
"last_seen_at": "2026-10-22T09:06:13+00:00",
"status_hidden": false,
"last_seen_bucket": null
},
{
"id": 2,
"name": "Boris Petrov",
"avatar": null,
"role": "member",
"joined_at": "2026-10-20 11:12:46",
"last_seen_at": "2026-10-21T06:46:11+00:00",
"status_hidden": false,
"last_seen_bucket": null
}
],
"members_count": 4,
"members_has_more": false,
"message_stats": {
"total": 34,
"text": 26,
"media": 3,
"files": 2
},
"created_at": "2026-10-20T11:12:46.000000Z",
"peer_phone": null,
"peer_about": null,
"peer_birthday": null,
"history_ttl": 0,
"noforwards": false,
"my_noforwards": false,
"peer_noforwards": false,
"blocked": false,
"can_change_policy": true
}
Изменить настройки группы/канала
Владелец или админ. Multipart при отправке avatar. avatar_clear=1 удаляет аватар. Логин канала можно менять раз в 14 дней. Личные чаты → 400. Realtime: ConversationUpdated каждому участнику.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
name
необязательный тело
|
string |
Имя / название. max 255 chars
|
description
необязательный тело
|
string |
Описание. max 500 chars
|
avatar
необязательный тело
|
file |
Изображение (multipart). max 5 MB
|
avatar_clear
необязательный тело
|
string |
1 — удалить аватар. |
members_can_pin
необязательный тело
|
boolean |
Группы: участники могут закреплять. |
visibility
необязательный тело
|
string |
public / private.one of:
public, private |
username
необязательный тело
|
string |
Публичный @логин. max 32 chars
|
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"description": "Product updates"}'
Ответ
{
"success": true,
"conversation": {
"id": 2,
"name": "MinChat News",
"avatar": null,
"description": "Product updates",
"type": "channel",
"user_role": "admin",
"is_owner": true,
"can_send_messages": true,
"members_can_pin": false,
"can_pin": true,
"can_manage_subscribers": true,
"username": "minchat_news",
"visibility": "public",
"share_url": "https://minchatapp.com/c/minchat_news",
"hidden_from_discovery": false,
"history_ttl": 604800
}
}
Удалить группу/канал
Только владелец, нужен confirm=DELETE. Realtime: ConversationDeleted.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
confirm
обязательный тело
|
string |
Строка DELETE.one of:
DELETE |
Запрос
curl -X DELETE 'https://minchatapp.com/api/conversations/12' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"confirm": "DELETE"}'
Ответ
Отвечает HTTP 200.
Подписаться на публичный канал
400 — не канал, 404 — приватный, 403 — бан.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/join' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"success": true,
"conversation": {
"id": 2,
"name": "MinChat News",
"type": "channel",
"avatar": null,
"description": "Product updates",
"username": "minchat_news",
"visibility": "public",
"share_url": "https://minchatapp.com/c/minchat_news",
"last_message": null,
"unread_count": 0
}
}
Покинуть чат
Канал: подписчик выходит; владелец при других участниках — 409 (сначала передайте права); единственный владелец удаляет канал. Личный: delete_for_all=1 удаляет чат у обоих. Группа: если выходит владелец, права переходят админу/модератору.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
delete_for_all
необязательный query
|
boolean |
Личные чаты: удалить у обоих. |
Запрос
curl -X DELETE 'https://minchatapp.com/api/conversations/12/leave' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"success": true
}
Добавить участника
Группы или администрация канала. Боты добавляются так же (по user id бота). В канале заодно снимает бан.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
user_id
обязательный тело
|
integer |
id пользователя. must exist (users)
|
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/members' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"user_id": 42}'
Ответ
{
"success": false,
"code": "conversation.already_member",
"error": "User is already in the conversation",
"message": "User is already in the conversation"
}
Удалить участника
Нельзя удалить владельца и равного/старшего по роли. В канале исключение = бан.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
userId
обязательный путь
|
integer |
id пользователя. |
Запрос
curl -X DELETE 'https://minchatapp.com/api/conversations/12/members/2' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"success": true
}
Сменить роль участника
Владелец назначает admin/moderator; админ — только moderator.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
userId
обязательный путь
|
integer |
id пользователя. |
role
обязательный тело
|
string |
member, moderator или admin.one of:
member, moderator, admin |
Запрос
curl -X PATCH 'https://minchatapp.com/api/conversations/12/members/2/role' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"role": "moderator"}'
Ответ
{
"success": true,
"role": "moderator"
}
Передать владение
Только текущий владелец; новый должен быть участником. Старый остаётся админом.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
user_id
обязательный тело
|
integer |
id пользователя. must exist (users)
|
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/owner' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"user_id": 2}'
Ответ
Отвечает HTTP 200.
Баны канала
Только администрация. Пагинация: after = ban_id последнего, limit 1–50.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
after
необязательный query
|
integer |
Курсор ( ban_id). |
limit
необязательный query
|
integer |
Размер страницы, по умолчанию 50. 1–50
|
Запрос
curl 'https://minchatapp.com/api/conversations/12/bans' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"bans": [],
"bans_has_more": false
}
Разбанить
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
userId
обязательный путь
|
integer |
id пользователя. |
Запрос
curl -X DELETE 'https://minchatapp.com/api/conversations/12/bans/2' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.
Заглушить / включить звук
Ровно одно из: duration (1h, 8h, forever) или until (ISO 8601, ≤ 1 года). Пустое тело — снять. Упоминания и ответы вам всё равно уведомляют. Realtime: ConversationMuted на другие ваши устройства.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
duration
необязательный тело
|
string |
1h, 8h, forever или null. |
until
необязательный тело
|
date-time |
Заглушить до момента. |
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/mute' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"duration": "8h"}'
Ответ
{
"conversation_id": 1,
"muted_until": "2026-10-22T17:06:13+00:00"
}
200 unmute
{
"conversation_id": 1,
"muted_until": null
}
Таймер автоудаления
Новые сообщения удаляются через period секунд (0 — выкл.). Пишется системное сообщение.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
period
обязательный тело
|
integer |
Секунды. ≥ 0≤ 31536000
|
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/ttl' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"period": 86400}'
Ответ
{
"conversation_id": 1,
"history_ttl": 86400
}
Запрет пересылки
Запрещает пересылку и сохранение сообщений из чата.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
enabled
обязательный тело
|
boolean |
Включить / выключить. |
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/noforwards' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"enabled": true}'
Ответ
{
"conversation_id": 1,
"enabled": true,
"scope": "chat"
}
Отметить прочитанным
Обновляет last_read_at; realtime ParticipantRead. В канале — ещё и просмотры.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/read' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"success": true
}
Статус «печатает / записывает»
action: typing, record_audio (повторять, пока идёт) или cancel. Не для каналов. Realtime: UserActivity.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
action
обязательный тело
|
string |
Тип активности. one of:
typing, record_audio, cancel |
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/activity' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"action": "typing"}'
Ответ
{
"success": true
}
Сохранить черновик
Синхронизируется между устройствами; content:null — очистить. Realtime: DraftUpdated.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
content
обязательный тело
|
string |
Текст сообщения. present (may be null)max 4000 chars
|
reply_to_message_id
необязательный тело
|
integer |
Сообщение, на которое отвечаем. ≥ 1
|
Запрос
curl -X PUT 'https://minchatapp.com/api/conversations/12/draft' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"content": "Draft text", "reply_to_message_id": null}'
Ответ
{
"conversation_id": 1,
"draft": {
"content": "Draft text",
"reply_to_message_id": null,
"updated_at": "2026-10-22T09:06:13+00:00"
}
}
Статистика канала
Только администрация: подписчики, прирост за 7/30 дней, просмотры, топ постов.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
Запрос
curl 'https://minchatapp.com/api/conversations/12/stats' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"subscribers": 3,
"joined_7d": 3,
"joined_30d": 3,
"views_7d": 0,
"top_posts": [
{
"id": 13,
"content": "Version 1.0.41 is out: more stable calls and chat folders 📁",
"views_count": 0,
"created_at": "2026-10-20T11:12:47.000000Z"
},
{
"id": 14,
"content": "What should we build next?",
"views_count": 0,
"created_at": "2026-10-20T11:12:47.000000Z"
}
]
}
Медиа чата
Галерея вложений. type: image, video, media (фото+видео), file (документы и аудио кроме голосовых), voice, link. Пагинация offset по вложениям: используйте next_offset.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
type
необязательный query
|
string |
Фильтр. one of:
image, video, file, media, voice, link |
limit
необязательный query
|
integer |
Размер страницы (по умолчанию 20). 1–200
|
offset
необязательный query
|
integer |
Смещение во вложениях. ≥ 0
|
Запрос
curl 'https://minchatapp.com/api/conversations/12/media' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"media": [
{
"id": "f6cbddbe-fc10-4ab0-a406-b839184ffd08",
"type": "image",
"url": "https://minchatapp.com/storage/media/be/d0/bed02c0b4bd0799b771b43ef5e5abb4e52eab27d447472966263f53e53afbbe8.jpg",
"name": "photo3.jpg",
"size": 13485,
"mime_type": "image/jpeg",
"is_voice": false,
"message_id": 6,
"created_at": "2026-10-20T11:12:46.000000Z",
"user": {
"id": 3,
"name": "Vera Kotova",
"avatar": null
}
},
{
"id": "08c33049-f1a1-4e88-9e44-79a6bcb8f8e6",
"type": "image",
"url": "https://minchatapp.com/storage/media/32/fd/32fdfe2a3c825ea2d281066b119b3c12a06b9ed06a640e64eb748baf8ffee54f.jpg",
"name": "photo1.jpg",
"size": 24374,
"mime_type": "image/jpeg",
"is_voice": false,
"message_id": 5,
"created_at": "2026-10-20T11:12:46.000000Z",
"user": {
"id": 2,
"name": "Boris Petrov",
"avatar": null
}
}
],
"has_more": true,
"next_offset": 2
}
Закрепить сообщение
До 5 закрепов. notify — уведомить участников. Realtime: ConversationPinsUpdated.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
message_id
обязательный тело
|
integer |
id сообщения. must exist (messages)
|
notify
необязательный тело
|
string |
Уведомить участников. |
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/pins' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"message_id": 45}'
Ответ
{
"pinned_messages": [
{
"id": 45,
"content": "Hello @Boris Petrov! (edited)",
"type": "text",
"attachments": [],
"user": {
"id": 1,
"name": "Anna Smith",
"avatar": null
},
"created_at": "2026-10-22T09:06:13.000000Z",
"pinned_at": "2026-10-22T09:06:13+00:00",
"pinned_by": 1
}
]
}
Открепить сообщение
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
message
обязательный путь
|
integer |
id сообщения. |
Запрос
curl -X DELETE 'https://minchatapp.com/api/conversations/12/pins/4521' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"pinned_messages": []
}
Ссылки-приглашения чата
Администрация групп/каналов.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
Запрос
curl 'https://minchatapp.com/api/conversations/12/invite-links' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"links": [
{
"id": 2,
"code": "z8qxbjlhmblg",
"name": null,
"url": "https://minchatapp.com/join/z8qxbjlhmblg",
"max_uses": 0,
"uses_count": 0,
"expires_at": null,
"revoked_at": null,
"created_at": "2026-10-20T11:13:00+00:00",
"is_usable": true
},
{
"id": 1,
"code": "dgpnlk9opbmw",
"name": "Contractors",
"url": "https://minchatapp.com/join/dgpnlk9opbmw",
"max_uses": 10,
"uses_count": 0,
"expires_at": "2026-10-27T11:13:00+00:00",
"revoked_at": null,
"created_at": "2026-10-20T11:13:00+00:00",
"is_usable": true
}
]
}
Создать ссылку-приглашение
max_uses 0 — без лимита. Либо expires_at, либо expires_in (секунды, 60 с – 1 год).
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
max_uses
необязательный тело
|
integer |
Максимум использований. ≥ 0≤ 100000
|
expires_at
необязательный тело
|
date-time |
Момент истечения (ISO 8601). after now
|
expires_in
необязательный тело
|
integer |
Срок жизни в секундах. ≥ 60≤ 31536000
|
name
необязательный тело
|
string |
Имя / название. max 64 chars
|
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/invite-links' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"name": "Friends", "max_uses": 10, "expires_in": 86400}'
Ответ
{
"id": 3,
"code": "p4rkrskpstdq",
"name": "Friends",
"url": "https://minchatapp.com/join/p4rkrskpstdq",
"max_uses": 10,
"uses_count": 0,
"expires_at": "2026-10-23T09:06:13+00:00",
"revoked_at": null,
"created_at": "2026-10-22T09:06:13+00:00",
"is_usable": true
}
Отозвать ссылку
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
inviteLink
обязательный путь
|
integer |
id ссылки. |
Запрос
curl -X DELETE 'https://minchatapp.com/api/conversations/12/invite-links/3' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"success": true
}
Перевыпустить ссылку
Отзывает ссылку и создаёт новый код с теми же настройками.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
inviteLink
обязательный путь
|
integer |
id ссылки. |
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/invite-links/3/regenerate' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"id": 4,
"code": "wqbefok5d6op",
"name": "Friends",
"url": "https://minchatapp.com/join/wqbefok5d6op",
"max_uses": 10,
"uses_count": 0,
"expires_at": "2026-10-23T09:06:13+00:00",
"revoked_at": null,
"created_at": "2026-10-22T09:12:50+00:00",
"is_usable": true
}
Превью ссылки-приглашения
Публично (Bearer необязателен): название, аватар, число участников.
Параметры
| Имя | Тип | Описание |
|---|---|---|
code
обязательный путь
|
string |
Код приглашения. |
Запрос
curl 'https://minchatapp.com/api/invite-links/p4rkrskpstdq' \
-H 'Accept: application/json'
Ответ
{
"code": "p4rkrskpstdq",
"url": "https://minchatapp.com/join/p4rkrskpstdq",
"conversation": {
"id": null,
"type": "group",
"name": "Design team",
"avatar": null,
"description": "Release discussions",
"members_count": 5
},
"is_member": false,
"expires_at": "2026-10-23T09:06:13+00:00"
}
Вступить по ссылке
Параметры
| Имя | Тип | Описание |
|---|---|---|
code
обязательный путь
|
string |
Код приглашения. |
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/join/p4rkrskpstdq' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"success": true,
"already_member": true,
"conversation": {
"id": 1,
"name": "Design team",
"type": "group",
"avatar": null,
"description": "Release discussions",
"username": null,
"visibility": "public",
"share_url": null,
"last_message": null,
"unread_count": 0
}
}
Подсказки для @упоминаний
Участники для подсказки после @ (в канале — только администрация). q фильтрует по имени/логину.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
q
необязательный query
|
string |
Фильтр. |
Запрос
curl 'https://minchatapp.com/api/conversations/12/mention-targets' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"members": [
{
"id": 2,
"name": "Boris Petrov",
"username": "boris_p",
"avatar": null,
"role": "member"
}
]
}
Непрочитанные упоминания
id сообщений с упоминанием вас, ещё не прочитанных (для кнопки «@»).
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
Запрос
curl 'https://minchatapp.com/api/conversations/12/mentions/unread' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
{
"message_ids": [],
"unread_mentions_count": 0
}
Отметить упоминания прочитанными
Без message_ids — все. Realtime: MentionsUpdated.
Параметры
| Имя | Тип | Описание |
|---|---|---|
conversation
обязательный путь
|
integer |
id чата. |
message_ids
необязательный тело
|
array |
id сообщений; без него — все. max 200 items
|
message_ids.*
необязательный тело
|
integer |
id сообщения. |
Запрос
curl -X POST 'https://minchatapp.com/api/conversations/12/mentions/read' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"message_ids": [23]}'
Ответ
{
"unread_mentions_count": 0
}