usersbox API
API usersbox полволяет вам получить доступ к обширному количеству данных (порядка 20 миллиардов документов).
Последние обновления
usersbox API 1.1 (22 Марта, 2025)
usersbox API 1.2 (26 Мая, 2025)
- Обновлены лимиты для /explain
Создание приложения
Перед началом работы вам необходимо получить токен. Для этого создайте приложение через бота (команда /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 exceeded. Retry after N seconds.
- 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-методу.
Есть ли ограничения на количество запросов?
Для /explain и /{database}/{collection}/explain есть лимиты - 300 запросов в минуту. При достижении этого лимиты вы получите ошибку Rate limit exceeded. Retry after N seconds