Список мастер-аккаунтов
Описание
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.
статусы 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
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)
Коды ошибок
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?