Skip to main content

Getting Started

1. Register​

Create your account at detect.expert.

After registration, if you have access, the main menu will be available to you with all services.

2. Generate an API Key​

In your dashboard, navigate to the API section and generate your X-Api-Key. This key is required for all API requests.

3. Make Your First Request​

All API requests are sent to the base URL:

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

Authentication is done via the X-Api-Key header:

import requests

API_KEY = "YOUR_API_KEY"
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 Client Example​

Here is a full client example covering the Numbers (SMS) API:

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 = "YOUR_API_KEY"
BASE_URL = "https://detect.expert/api/v1"

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

balance = client.get_balance()
print(f"Balance: {balance}")

number = client.buy_number(data=DATA)
if number.get("error"):
print("Failed to buy number")
return

print(f"Number ID: {number.get('id')}")
print("Waiting for SMS...")

count = 0
timeout = 5
while True:
print(f"Checking in {timeout}s...")
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 code: {last_sms_code}")
break

timeout += 5
count += 1
if count >= 10:
print("Timed out waiting for SMS")
break


if __name__ == "__main__":
run()

Next Steps​