Перейти к основному содержимому

Начало работы

1. Регистрация

Создайте аккаунт на detect.expert.

После регистрации, при наличии доступа, вам будет доступно главное меню со всеми сервисами.

2. Генерация API-ключа

В личном кабинете перейдите в раздел API и сгенерируйте ваш X-Api-Key. Этот ключ необходим для всех запросов к API.

3. Первый запрос

Все запросы отправляются на базовый URL:

https://detect.expert/api/v1/

Авторизация осуществляется через заголовок X-Api-Key:

import requests

API_KEY = "ВАШ_API_КЛЮЧ"
url = "https://detect.expert/api/v1/users/balance"

headers = {"X-Api-Key": API_KEY}
response = requests.get(url, headers=headers)
print(response.json())

4. Пример Python-клиента

Полный пример клиента для работы с Numbers API (SMS):

import time
import requests

class DetectExpertClient:
def __init__(self, api_key, base_url):
self.api_key = api_key
self.base_url = base_url
self.headers = {"X-Api-Key": api_key}

def get_balance(self):
url = f"{self.base_url}/users/balance"
response = requests.get(url=url, headers=self.headers)
return response.text

def buy_number(self, data):
url = f"{self.base_url}/numbers/"
response = requests.post(url=url, json=data, headers=self.headers)
if response.status_code == 201:
return response.json()
return {"error": True}

def get_number_info(self, uuid):
url = f"{self.base_url}/numbers/{uuid}/"
response = requests.get(url=url, headers=self.headers)
if response.status_code == 200:
return response.json()
return {"error": True}

def get_numbers(self):
url = f"{self.base_url}/numbers/"
response = requests.get(url=url, headers=self.headers)
if response.status_code == 200:
return response.json()
return {"error": response.text}

def cancel_number(self, uuid):
url = f"{self.base_url}/numbers/{uuid}/"
response = requests.put(url=url, headers=self.headers)
if response.status_code == 204:
return {"success": True}
return {"error": True}

def get_countries(self):
url = f"{self.base_url}/numbers/mixed/countries/"
response = requests.get(url=url, headers=self.headers)
if response.status_code == 200:
return response.json()
return {"error": True}


def run():
DATA = {
"product": "residential",
"service_code": "yahoo",
"country_code": 187,
"period_code": 1
}

API_KEY = "ВАШ_API_КЛЮЧ"
BASE_URL = "https://detect.expert/api/v1"

client = DetectExpertClient(api_key=API_KEY, base_url=BASE_URL)

balance = client.get_balance()
print(f"Баланс: {balance}")

number = client.buy_number(data=DATA)
if number.get("error"):
print("Не удалось купить номер")
return

print(f"ID номера: {number.get('id')}")
print("Ожидание SMS...")

count = 0
timeout = 5
while True:
print(f"Проверка через {timeout}с...")
time.sleep(timeout)
number_info = client.get_number_info(uuid=number.get("id"))

last_sms_code = number_info.get("last_sms_code")
if last_sms_code:
print(f"SMS-код: {last_sms_code}")
break

timeout += 5
count += 1
if count >= 10:
print("Время ожидания SMS истекло")
break


if __name__ == "__main__":
run()

Дальнейшие шаги