Для работы с апи вы должны быть зарегистрированным пользователем сервиса.
Если у вас нет аккаунта, зарегистрируйтесь тут.
Для того что бы осуществлять запросы к апи, используйте ваш уникальный API ключ,
получить его можно в личном кабинете
API имеет ограничение на число запросов в секунду (RPS) и составляет 1 запрос в 1 секунду.
Распространенный вопрос от наших клиентов касающийся этого лимита:
1 запрос в 1 секунду это очень медленно, как мне работать с большими объемами данных при таких лимитах?
Ответ:
Для обработки больших объемов данных мы предусмотрели возможность отправки за один запрос от
1 до 75 идентификаторов, что позволит ускорить процесс взаимодействия с сервисом.
Авторизация происходит путем передачи в заголовке запроса ключа X-Api-Key с вашим токеном в его значении. Пример:
'X-Api-Key: YOU-TOKEN_HERE'
Этот метод можно использовать для получения баланса и остатка запросов. Для его выполнения вам необходимо отправить GET запрос на адрес https://breachka.com/api/v1/user/info
Type: | GET |
Request URL: | https://breachka.com/api/v1/user/info |
Request (примеры запросов): | |
curl --location 'https://breachka.com/api/v1/user/info' \ --header 'X-Api-Key: YOU-TOKEN_HERE' var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://breachka.com/api/v1/user/info"); request.Headers.Add("X-Api-Key", "YOU-TOKEN_HERE"); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://breachka.com/api/v1/user/info', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'X-Api-Key: YOU-TOKEN_HERE' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; import requests url = "https://breachka.com/api/v1/user/info" payload = {} headers = {'X-Api-Key': 'YOU-TOKEN_HERE'} response = requests.request("GET", url, headers=headers, data=payload) print(response.text) | |
Response (примеры ответов): | |
{ "Email": "some@email.com", "Balance": 0, "ApiKey": "YOU-TOKEN_HERE", "ApiQueryLimit": 0, "ApiQueryMade": 0, "Role": "Премиум", "RoleDateValid": "08.06.2029 15:34:38", "RoleQueryLimit": 0, "RoleQueryMade": 0, } |
В ответе сервиса, вы можете получить 3 формата выдачи:
- Сводная информация: выдача будет объединена по полям ответа и вы получите все имена в одном поле, все адреса в одном поле и тд;
- Подробная информация: выдача будет разделена согласно источнику откуда она получена, вы получите каждое имя, адрес и тп в разных полях;
- Источники: будет прислан перечень источников.
Для того что бы понять какой из типов запросов вам подойдет больше, вы можете протестировать форматы выдачи:
- на главной странице сайта
- на странице массового поиска - тут можно получить пример json файла эквивалентного тому который возвращает система при api запросах.
Для получения ответа на запрос вам необходимо отправить POST запрос, с json объектом в теле, на адрес https://breachka.com/api/v1/find/mass, следующего формата:
{ "Requests": [ "string", "string", "string" ], "FindType": "string", "CountryType": "string" } |
Параметр Requests представляет из себя строковый массив запросов в который необходимо положить
список идентификаторов которые вас интересуют, пример: "Requests": [ Иванов Петр Петрович 06.04.1994", 79258004623", novoselov@mail.ru" ]Максимальное число запросов за раз: от 1 до 75 шт
Параметр FindType представляет из себя текстовое значение
Для того что бы понять какой из типов запросов вам подойдет больше, вы можете протестировать форматы выдачи:
Параметр CountryType представляет собой код страны в формате Alpha-2 |
Описание | Пример запроса | |
---|---|---|
ФИО | Иванов Петр Петрович 06.04.1994 Иванов Петр Петрович 1994 |
Для поиска по ФИО необходимо прислать его в формате: CountryType - Обязательно |
Номер | 79258004623 | |
novoselov@mail.ru | ||
Пароль | pas qwerty1 |
Для поиска по паролю обязательно его прислать в формате: |
Паспорт | pasp 9808197477 |
Для поиска по паспорту обязательно его прислать в формате: |
ИНН | inn 141002515301 |
Для поиска по ИНН обязательно его прислать в формате: CountryType - Если у вас есть потребность |
СНИЛС | snils 12259959991 |
Для поиска по СНИЛС обязательно его прислать в формате: |
Автомобиль | Р900ХН150 | |
VIN | JF1SG9LT57G096640 | |
TG ID | #id2035261767 | |
TG UserName | @o188rs | |
Вконтакте | https://vk.com/id580392 |
Type: | POST |
Request URL: | https://breachka.com/api/v1/find/mass |
Request (примеры запросов): | |
curl --location 'https://breachka.com/api/v1/find/mass' \ --header 'X-Api-Key: YOU-TOKEN_HERE' \ --header 'Content-Type: application/json' \ --data '{ "requests": [ "Иванов Петр Петрович 06.04.1994", "79258004623" ], "findType": "Summary", "countryType": "RU" }' var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://breachka.com/api/v1/find/mass"); request.Headers.Add("X-Api-Key", "YOU-TOKEN_HERE"); var content = new StringContent("{\r\n \"requests\": [\r\n \"Иванов Петр Петрович 06.04.1994\",\r\n \"79258004623\"\r\n ],\r\n \"findType\": \"Summary\",\r\n \"countryType\": \"RU\"\r\n}", null, "application/json"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://breachka.com/api/v1/find/mass', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>'{ "requests": [ "Иванов Петр Петрович 06.04.1994", "79258004623" ], "findType": "Summary", "countryType": "RU" }', CURLOPT_HTTPHEADER => array( 'X-Api-Key: YOU-TOKEN_HERE', 'Content-Type: application/json' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; import requests import json url = "https://breachka.com/api/v1/find/mass" payload = json.dumps({ "requests": [ "Иванов Петр Петрович 06.04.1994", "79258004623" ], "findType": "Summary", "countryType": "RU" }) headers = { 'X-Api-Key': 'YOU-TOKEN_HERE', 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) | |
Response (примеры ответов): | |
{ "Responses": [ { "Query": "Фамилия Имя Отчество 21.12.1991", "Responses": [ { "Phone": [ "79211237896", "79211237898" ], "Opsos": [], "Persons": [ "Фамилия Имя Отчество 21.12.1991" ], "Names": [ "Фамилия Имя", "Прозвище", "Еще имя из другой базы" ], "Fio": [ "Фамилия Имя Отчество" ], "Born": [ "21.12.1991" ], "Address": [ "Москва, ул. Первая, д. 1, кв. 2", "Москва, ул. Вторая, д. 54, кв. 84" ], "Transport": [ "Е123НО197, VIN:WАUZZZ8Х9ВВ098677, Модель:АУДИ А1 СИНИЙ 2011", "Х456УА750, Модель:БМВ X1 2016" ], "Email": [ "nikola.tesla@yandex.ru", "tesla1991@mail.ru" ], "Password": [ "Rjk.yz" ], "Url": [ "https://vk.com/id1234567894" ], "Username": [], "ICQ": [], "Skype": [], "Telegram": [], "Work": [ "ИП Серегин" ], "WorkAddress": [ "Москва, б-р Бульварный, д. 6, оф. 7" ], "Passport": [ "4509123456, от 02.06.2010, выдан: ОТД ПО РНУ ЮЖНОЕ ТУШИНО ОУФМС РОССИИ ПО ГОР. МОСКВЕ В СЗАО, код подразделения: 123456" ], "Inn": [ "773385264641" ], "Snils": [ "20732314724" ], "Debts": [ "ОСП: ОСП по административным штрафам г. Владимир., Исп. пр-во : 123456/21/52065-ИП, Дата: 12.10.2021, Сумма: 1500", "ОСП: ОСП по административным штрафам г. Москва., Исп. пр-во : 123456/77/45678-ИП, Дата: 19.08.2022, Сумма: 2500" ], "Relatives": [ "Джугашвили Сталина Степановна 20.04.1945" ], "Sources": [ { "Name": "Источник 1", "Url": "site1.ru", "Rows": 58741, "Year": 2023, "Month": 8, "Day": 0 }, { "Name": "Источник 2", "Url": "site2.com", "Rows": 159632, "Year": 2021, "Month": 2, "Day": 9 } ] } ] } ], "NotValidRequests": [ "paasp 1234567896", "иванов иван 1963", "inn", "ршгг7пп" ] } { "Responses": [ { "Query": "Фамилия Имя Отчество 21.12.1991", "Responses": [ { "Phone": [ "79211237896" ], "Opsos": [], "Persons": [ "Фамилия Имя Отчество 21.12.1991" ], "Names": [ "Фамилия Имя", "Прозвище" ], "Fio": [ "Фамилия Имя Отчество" ], "Born": [ "21.12.1991" ], "Address": [ "Москва, ул. Первая, д. 1, кв. 2" ], "Transport": [ "Е123НО197, VIN:WАUZZZ8Х9ВВ098677, Модель:АУДИ А1 СИНИЙ 2011" ], "Email": [ "nikola.tesla@yandex.ru" ], "Password": [ "Rjk.yz" ], "Url": [ "https://vk.com/id1234567894" ], "Username": [], "ICQ": [], "Skype": [], "Telegram": [], "Work": [ "ИП Серегин" ], "WorkAddress": [ "Москва, б-р Бульварный, д. 6, оф. 7" ], "Passport": [ "4509123456, от 02.06.2010, выдан: ОТД ПО РНУ ЮЖНОЕ ТУШИНО ОУФМС РОССИИ ПО ГОР. МОСКВЕ В СЗАО, код подразделения: 123456" ], "Inn": [], "Snils": [], "Debts": [], "Relatives": [ "Джугашвили Сталина Степановна 20.04.1945" ], "Sources": [ { "Name": "Источник 1", "Url": "site1.ru", "Rows": 58741, "Year": 2023, "Month": 8, "Day": 0 } ] }, { "Phone": [ "79211237898" ], "Opsos": [], "Persons": [ "Фамилия Имя Отчество 21.12.1991" ], "Names": [ "Еще имя из другой базы" ], "Fio": [ "Фамилия Имя Отчество" ], "Born": [ "21.12.1991" ], "Address": [ "Москва, ул. Вторая, д. 54, кв. 84" ], "Transport": [ "Х456УА750, Модель:БМВ X1 2016" ], "Email": [ "tesla1991@mail.ru" ], "Password": [], "Url": [], "Username": [], "ICQ": [], "Skype": [], "Telegram": [], "Work": [ "ИП Серегин" ], "WorkAddress": [ "Москва, б-р Бульварный, д. 6, оф. 7" ], "Passport": [], "Inn": [ "773385264641" ], "Snils": [ "20732314724" ], "Debts": [ "ОСП: ОСП по административным штрафам г. Владимир., Исп. пр-во : 123456/21/52065-ИП, Дата: 12.10.2021, Сумма: 1500", "ОСП: ОСП по административным штрафам г. Москва., Исп. пр-во : 123456/77/45678-ИП, Дата: 19.08.2022, Сумма: 2500" ], "Relatives": [], "Sources": [ { "Name": "Источник 2", "Url": "site2.com", "Rows": 159632, "Year": 2021, "Month": 2, "Day": 9 } ] } ] } ], "NotValidRequests": [ "paasp 1234567896", "иванов иван 1963", "inn", "ршгг7пп" ] } { "Responses": [ { "Query": "Фамилия Имя Отчество 21.12.1991", "Responses": [ { "Name": "Источник 1", "Url": "site1.ru", "Rows": 58741, "Year": 2023, "Month": 8, "Day": 0 }, { "Name": "Источник 2", "Url": "site2.com", "Rows": 159632, "Year": 2021, "Month": 2, "Day": 9 } ] } ], "NotValidRequests": [ "paasp 1234567896", "иванов иван 1963", "inn", "ршгг7пп" ] } |
В ответе мы получаем JSON объект который имеет 2 поля Responses и NotValidRequests
{ "Responses": [ ... ], "NotValidRequests": [] }
В поле NotValidRequests (массив текстовых полей) будут присланы те запросы которые не прошли валидацию.
В поле Responses попадают валидные запросы.
Данное поле представляет из себя массив объектов, которые имеют 2 поля.
{ "Query": "string", "Responses": [ ... ] }
В поле Query помещается запрос прошедший валидацию, по которому в поле Responses (представляющее из себя массив объектов) помещаются ответы.
{ "Phone": [ "string" ], "Opsos": [ "string" ], "Persons": [ "string" ], "Names": [ "string" ], "Fio": [ "string" ], "Born": [ "string" ], "Address": [ "string" ], "Transport": [ "string" ], "Email": [ "string" ], "Password": [ "string" ], "Url": [ "string" ], "Username": [ "string" ], "ICQ": [ "string" ], "Skype": [ "string" ], "Telegram": [ "string" ], "Work": [ "string" ], "WorkAddress": [ "string" ], "Passport": [ "string" ], "Inn": [ "string" ], "Snils": [ "string" ], "Debts": [ "string" ], "Relatives": [ "string" ], "Sources": [ { "Name": "string", "Url": "string", "Rows": 0, "Year": 0, "Month": 0, "Day": 0 } ] }
Все поля за исключением Sources представляют из себя массив текстовых значений.
Поле Sources представляет из себя массив объектов.
{ "Name": "string", "Url": "string", "Rows": 0, "Year": 0, "Month": 0, "Day": 0 }
Значения полей, можно понять исходя из их названий, мы предполагаем что у вас с этим не должно быть трудностей.
В случае ожидаемой ошибки поведения клиента вы можете получить объект типа:
{ "error": "string" }В поле error будет передано текстовое сообщение об ошибке, мы постарались сделать его информативным, в связи с чем, в основном, они не должны требовать дополнительной расшифровки. В случае проблем с пониманием описанием ошибки воспользуйтесь гугл переводчиком, или обратитесь в техническую поддержку.