For the complete documentation index, see llms.txt. This page is also available as Markdown.

Список мастер-аккаунтов

Описание

Endpoint возвращает список мастер-аккаунтов проекта, к которому привязан ваш Application Token.

Список отдаётся постранично и отсортирован по id по возрастанию, поэтому при последовательном обходе страниц вы получите каждый аккаунт ровно один раз. Набор полей каждого аккаунта совпадает с ответом endpoint'а Получение мастер-аккаунта.

Endpoint работает в двух режимах:

  • Без параметров filters и search — возвращает общий список всех мастер-аккаунтов проекта постранично.

  • С параметрами — filters сужает список по дате регистрации и статусу, search находит аккаунты по пачке идентификаторов (user_ids, emails, phones) за один запрос.

Вы можете использовать данный endpoint для:

  • Синхронизации базы пользователей с внешними системами (CRM, аналитика, рассылки)

  • Периодической выгрузки новых регистраций по дате создания

  • Массовой проверки, какие из ваших пользователей зарегистрированы в проекте, и получения их user_id

  • Получения списка заблокированных или неподтверждённых аккаунтов

Endpoint возвращает персональные данные пользователей (email, телефон, IP). Выдавайте право Список мастер аккаунтов (v2) только тем ключам, которым оно действительно необходимо.


Endpoint

GET https://api.mmoweb.biz/v2/master-account/list

Требуемое разрешение ключа: Список мастер аккаунтов (v2)


Параметры

Все параметры передаются в строке запроса (query string) и являются необязательными. Без filters и search возвращается общий список аккаунтов проекта. Параметры делятся на три группы: пагинация, фильтры и поиск.

Пагинация

Параметр
Тип
Обязателен
Формат
Описание

page

integer

Нет

≥ 1, по умолчанию 1

Номер страницы

per_page

integer

Нет

1..1000, по умолчанию 100

Количество аккаунтов на одной странице

Фильтры filters[...]

Сужают список. Если передано несколько фильтров, аккаунт должен подходить под все из них.

Параметр
Тип
Обязателен
Формат
Описание

filters[created_from]

string

Нет

YYYY-MM-DD или YYYY-MM-DD HH:MM:SS

Показать аккаунты, созданные начиная с указанной даты (включительно)

filters[created_to]

string

Нет

YYYY-MM-DD или YYYY-MM-DD HH:MM:SS

Показать аккаунты, созданные до указанной даты (включительно)

filters[statuses]

string

Нет

Значения 0, 1, 2 через запятую

Показать аккаунты с любым из перечисленных статусов

Статусы аккаунта: 0 — активный, 1 — email не подтверждён, 2 — заблокирован.

Даты без времени. Значение YYYY-MM-DD трактуется как 00:00:00 этого дня. Чтобы включить в диапазон весь день, укажите время явно: filters[created_to]=2026-01-31 23:59:59.

Поиск search[...]

Находит аккаунты по идентификаторам. Аккаунт попадает в ответ, если совпал хотя бы с одним значением из любого списка. Если одновременно переданы filters, они применяются к найденным аккаунтам.

Параметр
Тип
Обязателен
Формат значений
Описание

search[user_ids]

string

Нет

Целые числа ≥ 1 через запятую

Идентификаторы мастер-аккаунтов

search[emails]

string

Нет

Валидные email через запятую

Email мастер-аккаунтов

search[phones]

string

Нет

Только цифры, 7–18 символов, первая не 0, через запятую

Телефоны мастер-аккаунтов

Формат телефона. Код страны и номер одной строкой из цифр, без +, пробелов, скобок и дефисов: +7 (900) 123-45-67 передаётся как 79001234567.

Правила для filters и search

  • Списки — через запятую. Значения перечисляются в одной строке: search[user_ids]=15,42,108. Пробелы вокруг запятых допустимы, повторы учитываются один раз.

  • Массивный синтаксис не поддерживается. Запрос вида search[user_ids][]=15 возвращает VALIDATION_ERROR.

  • Переданный ключ не может быть пустым. Запросы вида search[emails]= или filters[statuses]=, возвращают VALIDATION_ERROR. Если условие не нужно, не передавайте ключ вовсе.

  • Только известные ключи. Внутри filters и search допускаются только перечисленные выше ключи. Опечатка вроде search[email] возвращает VALIDATION_ERROR, а не общий список.

  • Лимиты поиска. Не более 100 значений в каждом списке search и не более 300 значений суммарно. Превышение возвращает VALIDATION_ERROR.


Пагинация в ответе

Поле
Тип
Описание

page

integer

Текущая страница

per_page

integer

Размер страницы

pages

integer

Общее количество страниц с учётом filters и search

next_page

integer | null

Номер следующей страницы. null означает, что текущая страница последняя

total

integer

Общее количество аккаунтов с учётом filters и search

Рекомендуемый алгоритм обхода: запросите page=1, затем повторяйте запрос с page=next_page и теми же filters/search, пока next_page не станет null.


Кодировка

Запрос

  • Значения параметров передаются в кодировке UTF-8 и должны быть URL-кодированы (percent-encoding).

  • Квадратные скобки в именах параметров можно передавать как есть (filters[statuses]) или в кодированном виде (filters%5Bstatuses%5D).

  • Запятая-разделитель допускается как есть или как %2C.

  • Символ + в email обязательно кодируйте как %2B. Незакодированный + читается как пробел, и такой email не пройдёт проверку.

  • Символ @ допускается как в исходном виде, так и в виде %40.

Исходные данные
Значение в query string

статусы 0 и 2

filters[statuses]=0,2

email a@x.com и b+promo@x.com

search[emails]=a%40x.com,b%2Bpromo%40x.com

телефоны +7 (900) 123-45-67, 79001234568

search[phones]=79001234567,79001234568

Стандартные средства формирования query string кодируют значения автоматически: URLSearchParams в JavaScript, http_build_query() в PHP, --data-urlencode в cURL. Список значений при этом соберите в одну строку через запятую заранее.

Ответ

Ответ возвращается в формате JSON в кодировке UTF-8 с заголовком Content-Type: application/json.


Примеры

Общий список без параметров

Фильтр: заблокированные и неподтверждённые аккаунты за январь 2026

Поиск: пачка аккаунтов по email и телефонам

Полный обход списка по страницам


Ответы

Успешный ответ (200 OK)

В примере выше запрос искал два email и два телефона. Найден один аккаунт, поэтому total: 1, а второй email и второй телефон перечислены в not_found. Если бы все значения нашлись, блока not_found в ответе не было бы. Подробнее — в разделе «Важные особенности».

Поля аккаунта:

Поле
Тип
Описание

id

integer

Идентификатор мастер-аккаунта

email

string | null

Email

phone

string | null

Телефон. "0" означает, что телефон не указан

shield

integer

Включена ли дополнительная защита аккаунта (1 — да, 0 — нет)

affiliate

integer

Идентификатор пригласившего аккаунта, 0 — реферал не установлен

select_lid

integer

Идентификатор выбранного логин-сервера

select_sid

integer

Идентификатор выбранного игрового сервера

project_id

integer

Идентификатор проекта

status

integer

Статус аккаунта (0 — активный, 1 — email не подтверждён, 2 — заблокирован)

desc_status

string | null

Сообщение, которое видит пользователь при блокировке

created_at

string

Дата регистрации в формате YYYY-MM-DD HH:MM:SS

last_login

string | null

Дата последнего входа в формате YYYY-MM-DD HH:MM:SS

last_ip

string | null

IP-адрес последнего входа

email_valid

integer

Подтверждён ли email (1 — да, 0 — нет)

lang

string | null

Язык интерфейса пользователя

iso

string | null

ISO-код страны

telegram

string | null

Telegram пользователя

Ошибка структуры параметров (400 Bad Request)

Когда встречается: неизвестный ключ внутри filters или search, массивный синтаксис [] вместо строки через запятую, ключ передан с пустым значением (search[emails]=), либо filters/search переданы без ключа (filters=abc)

Превышен лимит поиска (400 Bad Request)

Неверный формат значения (400 Bad Request)

Когда встречается: page или per_page вне допустимого диапазона, дата не распознана, статус не из списка 0,1,2, среди user_ids есть не целое число, среди emails — невалидный адрес, среди phones — значение с символами кроме цифр, ведущим 0 или неверной длиной. Для списков ключ ошибки содержит позицию проблемного значения, начиная с 0: в примере выше это второй email и первый статус

Некорректный диапазон дат (400 Bad Request)

Когда встречается: filters[created_from] позже filters[created_to]

Страница за пределами списка (400 Bad Request)

Когда встречается: запрошенный page больше количества страниц. В ответе возвращаются актуальные pages и total, чтобы вы могли скорректировать запрос

Аккаунты не найдены (404 Not Found)

Когда встречается: ни один аккаунт проекта не подходит под filters и search. Успешный ответ никогда не содержит пустой список. Если передан search, в ответе есть блок not_found со всеми переданными идентификаторами

Недостаточно прав (403 Forbidden)

Когда встречается: у Application Token не включено разрешение Список мастер аккаунтов (v2)


Коды ошибок

Код
HTTP Status
Описание
Что делать

VALIDATION_ERROR

400

Неверная структура, превышен лимит или неверный формат значения

Сверьте имена ключей, лимиты 100/300 и форматы значений с разделом «Параметры»

INVALID_DATE_RANGE

400

Начало диапазона дат позже его конца

Поменяйте filters[created_from] и filters[created_to] местами или исправьте значения

PAGE_OUT_OF_RANGE

400

Запрошенная страница больше pages

Используйте pages из ответа; при обходе списка ориентируйтесь на next_page

ACCOUNTS_NOT_FOUND

404

Под указанные условия не подходит ни один аккаунт

Это нормальный результат для пустой выборки; при поиске используйте not_found, чтобы узнать, что именно не найдено

ACCESS_DENIED

403

У токена нет разрешения на этот endpoint

Включите разрешение Список мастер аккаунтов (v2) для ключа в панели администратора

Ошибки аутентификации (EMPTY_TOKEN, INVALID_TOKEN, TOKEN_NOT_FOUND, TOKEN_DISABLED) общие для всех endpoint'ов API v2 и описаны во введении.


Важные особенности

Без параметров — общий список

Если не переданы ни filters, ни search, endpoint возвращает всех мастер-аккаунтов проекта постранично. Это основной режим для полной выгрузки.

Фильтры сужают, поиск объединяет

Условия внутри filters объединяются через И: аккаунт должен подходить под каждое. Значения внутри search объединяются через ИЛИ: достаточно совпадения по любому user_id, email или телефону. Если переданы обе группы, в ответ попадают аккаунты, которые совпали с search и одновременно подходят под filters. Например, search[emails]=a@x.com&filters[statuses]=2 вернёт аккаунт a@x.com, только если он заблокирован; иначе ответ будет ACCOUNTS_NOT_FOUND, а email окажется в not_found.

Пустой результат — это ошибка, а не успех

Если под условия не попал ни один аккаунт, endpoint возвращает ACCOUNTS_NOT_FOUND (404), а не success: true с пустым массивом. При обходе списка обрабатывайте этот код как штатное завершение.

not_found появляется только при пропусках

Блок not_found есть в ответе, только если передан search и хотя бы одно его значение не нашлось. Если найдены все идентификаторы, блока нет, поэтому проверяйте его наличие перед чтением. Внутри блока всегда три списка: user_ids, emails, phones; списки без пропусков пустые.

Значение попадает в not_found, если по нему не найден ни один аккаунт, подходящий под filters. Блок рассчитывается по всей выборке, не зависит от page и per_page и одинаков на каждой странице.

Стабильный порядок

Аккаунты всегда отсортированы по id по возрастанию. Новые регистрации получают больший id, поэтому они появляются на последних страницах и не сдвигают уже прочитанные.

Сравнение email и телефонов

Регистр букв в email не учитывается. Алиасы вида user+promo@example.com и user@example.com считаются разными адресами. Телефон должен совпадать полностью, включая код страны.


Рекомендации

Безопасность:

  • Храните Application Token на сервере и никогда не передавайте его в браузер или мобильное приложение

  • Выдавайте разрешение Список мастер аккаунтов (v2) отдельному ключу, который используется только для выгрузки

  • Используйте HTTPS для всех запросов

Производительность:

  • Для полной выгрузки используйте per_page=1000, чтобы сократить количество запросов

  • Для регулярной синхронизации запрашивайте только новые аккаунты через filters[created_from] с даты последней выгрузки

  • Для проверки пачки пользователей используйте search вместо отдельных запросов к Получению мастер-аккаунта: до 300 идентификаторов за один запрос

Надёжность:

  • Реализуйте retry logic с экспоненциальной задержкой при ошибках 5xx и сетевых сбоях

  • Обрабатывайте ACCOUNTS_NOT_FOUND как пустую выборку, а не как сбой

  • Ориентируйтесь на next_page вместо самостоятельного расчёта номера следующей страницы

  • Передавайте одни и те же filters и search на каждой странице обхода

Интеграция:

  • Собирайте списки для search в строку через запятую средствами языка (join, implode) и формируйте query string стандартными функциями кодирования

  • Убедитесь, что токен приложения имеет разрешение Список мастер аккаунтов (v2)

Last updated

Was this helpful?