usersbox API
API usersbox полволяет вам получить доступ к обширному количеству данных (порядка 20 миллиардов документов).
Последние обновления
usersbox API 1.1 (22 Марта, 2025)
Создание приложения
Перед началом работы вам необходимо получить токен. Для этого создайте приложение через бота (команда /api > создать приложение).
Все запросы к API серверу посылаются через метод GET. Токен должен быть указан в заголовоке (Header) Authorization
. Все запросы должны посылаться к домену api.usersbox.ru/v1/{method_name}
GET /v1/getMe HTTP/1.1 Host: api.usersbox.ru Authorization: eyJhbGciOiJIUzI1Ni.eyJjcmVhdG…
Список доступных методов
Мы поддерживаем метод GET для запроса. Все ответы содержат JSON-обьект, в котором есть несколько полей:
- status (String) - Статус ответа:
success
илиerror
- data (Any) - Обьект ответа. Обычно список элементов
- error (Dict) - В случае ошибки возвращает
code
иmessage
/getMe
Возвращает базовую информацию о текущем приложении. Используйте этот метод для тестирования приложения.
{ "status": "success", "data": { "_id": ..., "title": "Morales Publisher", "token": "...", "created_at": "Jan 10, 2024, 12:05:00 PM", "is_active": true, "balance": 150.5, "owner": { "user_id": ..., "bot_id": ..., } } }
/sources
Возвращает список всех источников данных.
{ "status": "success", "data": { "count": 981, "items": [ { "database": "cdek", "collection": "full", "size": 31919315138, "count": 205663278, "title": "🚚 CDEK [2022]" }, { "database": "100realt", "collection": "parsing_2021", "size": 5394439345, "count": 4916799, "title": "🏠\t Парсинг «100realt.ru» [2021]" }, // остальные 979 источников ... ] } }
/{database}/{collection}/search
Выполняет поиск по выбранной базе. Возвращает первые 25 найденных документов. {database}
и {collection}
должны быть определены согласно информации, полученной из метода /sources. Структура полей документов в ответе может варьироваться, так как она зависит от структуры конкретной базы данных.
- q (String) - поисковый запрос, может быть любой строкой. Например, номер телефона, email, имя пользователя, IP-адрес.
- count (Int) - кол-во возвращаемых элементов. От 25 до 500
{ "status": "success", "data": { "count": 4, "items": [ { "_id": 3212868, "full_name": "Василий Иванов Максимович", "birth_date": "30.08.1945", "phone": "+79177840591", "_score": 7.08725643157959 }, { "_id": 4349339, "full_name": "Василий Иванов Максимович", "birth_date": "20.05.1968", "phone": "+79065499712", "_score": 7.08725643157959 }, // другие документы ... ] } }
Пример ответа без результатов:
{ "status": "success", "data": { "count": 0, "items": [] } }
/search
Выполняет поиск сразу во всем источникам одновременно. Используйте этот метод для быстрого поиска по всей нашей базе. Лимит выдачи ограничен 25 документами на одну базу.
- q (String) - поисковый запрос, может быть любой строкой. Например, номер телефона, email, имя пользователя, IP-адрес.
{ "status": "success", "count": 5 "items": [ { "source": { "database": "2berega_ru", "collection": "clients" }, "hits": { "hitsCount": 1, "count": 1, "items": [...] } }, { "source": { "database": "yandex", "collection": "eda" }, "hits": { "hitsCount": 1, "count": 1, "items": [...] } }, ... ] }
Пример ответа без результатов:
{ "status": "success", "data": { "count": 0, "items": [] } }
/{database}/{collection}/explain
Возвращает кол-во найденных документов в выбранной базе.
- q (String) - поисковый запрос, может быть любой строкой. Например, номер телефона, email, имя пользователя, IP-адрес.
{ "status": "success", "data": { "count": 11458 } }
/explain
Выполняет поиск по всей базе и возвращает кол-во документов. Используйте этот метод, если вам нужно проверить цель на утечки, но сами данные не нужны.
- q (String) - поисковый запрос, может быть любой строкой. Например, номер телефона, email, имя пользователя, IP-адрес.
{ "status": "success", "data": { "count": 15, "items": [ { "source": { "database": "500px_com", "collection": "users" }, "hits": { "count": 1 } }, { "source": { "database": "appen_com", "collection": "users" }, "hits": { "count": 1 } }, // остальные элементы ... ] } }
Пример ответа без результатов:
{ "status": "success", "data": { "count": 0, "items": [] } }
/{database}/{collection}/nearbySearch
Выполняет поиск документов, которые находятся в заданном радиусе от указанной геолокации. Только некоторые коллекции поддерживают этот метод:
delivery_club/part1 delivery_club/part2 yandex/eda avito/ads auchan/users_2023
- lat (Double) - широта центральной точки
- lon (Double) - долгота центральной точки
- radius (Int) - радиус поиска в метрах от указанной точки
- count (Int) - кол-во возвращаемых элементов. От 25 до 500
{ "status": "success", "data": { "hitsCount": 1000, "tooManyDocs": true, "count": 25, "items": [ { "user_id": 6538242, "first_name": "Станислав", "phone": "+79112778424", "address": { "city": "Санкт-Петербург", "street": "Гороховая улица", "house": "4", "floor": "4", "office": "28", "doorcode": "3460#", "comment": "арка 0625#", "latitude": "59.936322", "longitude": "30.311550" }, "_score": 1.0 }, {...} ] } }
/{database}/{collection}/sample
Отображает первые 15 документов из выбранной коллекции. Используйте его, чтобы посмотреть структуру полей
{ "status":"success", "data":{ "count":15, "items":[ { "_id":492033988, "user_id":225889705, "yandex_uid":"1219928845", "first_name":"mrozovmail.ru", "phone":"+79088468484", "amount":427, "currency":"RUB", "app":"eda_iphone", "user_agent":"ios(5.5.0)", "payment":{ "service":"Apple Pay Yandex Eda", }, "address":{ "city":"Москва, поселение Щаповское", "street":"коттеджный посёлок Европейская Долина", "house":"1", "office":"148", "reliable":1, "latitude":"55.430539", "longitude":"37.389167" } }, ... ] } }
/database/{collection}/schema
Возвращает JSON-схему документов коллекции на основе первых 5000 записей. Используется для анализа структуры полей.
{ "status": "success", "data": { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "_id": { "type": "integer" }, "first_name": { "type": "string" }, "last_name": { "type": "string" }, "sex": { "type": "integer" },
/lang/ru
Возвращает русский языковой пакет для полей документа, который включает около 2600 локализованных наименований.
{ "status": "success", "data": { "id": "ID", "uid": "User ID", "first_name": "Имя", "last_name": "Фамилия", "sex": "Пол", "age": "Возраст", // другие поля ... } }
Тарифы на запросы
Приобрести запросы Вы можете внутри Telegram бота используя внутренний баланс (команду /api).
Тарификация методов
Стоимость запроса зависит от вычислительной сложности метода. Простые запросы стоят дешевле, сложные — дороже. Некоторые методы тарифицируются за каждый возвращаемый документ.
- Метод
{database}/{collection}/search
- Стоимость: 0.005 ₽ за один документ
- Минимальная плата: даже если по запросу ничего не найдено или найдено менее 25 документов, списывается минимальная стоимость за 25 документов (25 * 0.005 = 0.125 ₽).
- Максимальная плата: при
count=500
и наличии достаточного количества результатов, составит 500 * 0.005 = 2.5 ₽ - Метод
/search
- Метод
{database}/{collection}/nearbySearch
- Метод
{database}/{collection}/explain
- Метод
/explain
- Метод
/{database}/{collection}sample
- Метод
/getMe
- Метод
/sources
Доступные типы
App
- title (String) - название приложения.
- token (String) - секретный ключ доступа.
- created_at (String) - дата создания (МСК).
- is_active (Bool) - статус активации.
- balance (Float) - баланс в рублях.
Source
- database (String) - название базы.
- collection (String) - название коллекции.
- size (Int) - размер базы в байтах.
- title (String) - человеко-читаемое имя базы.
Document
- ... (Any) - основные поля документа.
- _score (Float) - оценке релевантности документа. Чем выше значение - тем боле вероятно документ соответствует результату поиска.
Статус коды ошибок
- code 1: Invalid access token.
- code 2: Missing access token.
- code 3: Rate limit.
- code 4: Not enough requests.
- code 100: Missing query parameter.
- code 101: Missing path parameter.
- code 102: Source not found.
- code 1000: Unknown Error.
{ "status": "error", "error": { "code": 1, "message": "Invalid access token" } }
FAQ (Ответы на вопросы)
Как пополнить баланс приложения?
Баланс можно перевести с вашего аккаунта. Для этого сначала надо пополнить баланс через команду /me, а потом выполнить перевод средств в приложение через команду /api
Почему у каждой базы разные поля?
Структура базы зависит от ее исходного вида. Мы стараемся придерживаться единой структуры и стиля наименования полей, однако для всех 1000+ источников это сделать не всегда получается.
Как форматировать запросы?
Для точных результатов предварительно форматируйте ваш запрос:
- Телефоны: формат E.164
- Даты рождения: формат ДД.ММ.ГГГГ
Будет ли regex?
Почему в ответе два поля count
и hitsCount
?
- count - сколько документов вернулось в ответе (items.size)
- hitsCount - примерное общее число совпадений в коллекции
Какой лимит на count
?
count
может быть от 25 до 500. Если вы передаёте значение вне этого диапазона — оно будет автоматически приведено к ближайшему допустимому значению.
Можно ли выполнять POST-запросы?
Нет. На данный момент API работает только по GET-методу.
Есть ли ограничения на количество запросов?
В текущей версии API никаких жёстких ограничений на частоту запросов нет. Вы можете выполнять запросы без лимита в разумных пределах. В в будущем могут быть введены ограничения (в таком случае вы получите соотвествующий код ошибки code 3: Rate limit
)