Home / Documentation

Create API User

POST /api/address-importer/users

Create a new API user with the system token. The account starts inactive until email verification or admin activation is completed.

Payload / Parameters
  • `name` (required)
  • `email` (required, unique)
  • `phone` (optional)
$payload = [
    'name' => 'Client App',
    'email' => 'client@example.com',
    'phone' => '1234567890',
];
fetch('/api/address-importer/users', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer YOUR_SYSTEM_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(payload)
});
requests.post(
    '/api/address-importer/users',
    headers={'Authorization': 'Bearer YOUR_SYSTEM_TOKEN'},
    json=payload,
)
{
  "message": "User created successfully. User is inactive by default.",
  "api_token": "PLAIN_TEXT_TOKEN"
}

Email Risk Score

POST /api/email-risk/score

Score an email address using syntax, DNS, MX, disposable, free-provider, role-based, gibberish, internal reputation, domain-age, and optional breach-history signals. The response includes a numeric score, risk band, decision, triggered signals, and detailed meta diagnostics.

Payload / Parameters
  • `email` (required)
  • `context` (optional, e.g. `b2b_signup`)
  • `meta` in the response includes domain age and optional breach-check details
$payload = ['email' => 'admin@10minutemail.com', 'context' => 'b2b_signup'];
            fetch('/api/email-risk/score', {
    method: 'POST',
    headers: { Authorization: 'Bearer YOUR_ACTIVE_API_TOKEN', 'Content-Type': 'application/json' },
    body: JSON.stringify({ email: 'admin@10minutemail.com', context: 'b2b_signup' })
});
            requests.post('/api/email-risk/score', headers=auth, json={'email': 'admin@10minutemail.com', 'context': 'b2b_signup'})
{
    "message": "Email risk scored successfully.",
    "data": {
        "email": "admin@10minutemail.com",
        "normalized_email": "admin@10minutemail.com",
        "local_part": "admin",
        "domain": "10minutemail.com",
        "score": 85,
        "band": "very_high",
        "decision": "block",
        "signals": [
            "disposable_domain",
            "role_based_local_part"
        ],
        "meta": {
            "syntax_valid": true,
            "dns_found": true,
            "mx_found": true,
            "disposable": true,
            "free_provider": false,
            "role_based": true,
            "gibberish_local_part": false,
            "domain_age_days": 6200,
            "breach_check_enabled": false,
            "breach_count": null
        }
    }
}

Email Risk Event

POST /api/email-risk/events

Record reputation events such as `verified`, `abuse`, `bounce`, `chargeback`, or `otp_failed` so future scores reflect your own history.

Payload / Parameters
  • `email` (required)
  • `event_type` (required: verified, abuse, bounce, chargeback, otp_failed)
  • `source`, `context`, `occurred_at` (optional)
$payload = ['email' => 'customer@example.com', 'event_type' => 'verified', 'source' => 'signup_form'];
            fetch('/api/email-risk/events', {
    method: 'POST',
    headers: { Authorization: 'Bearer YOUR_ACTIVE_API_TOKEN', 'Content-Type': 'application/json' },
    body: JSON.stringify({ email: 'customer@example.com', event_type: 'verified', source: 'signup_form' })
});
            requests.post('/api/email-risk/events', headers=auth, json={'email': 'customer@example.com', 'event_type': 'verified', 'source': 'signup_form'})
{
    "message": "Email risk event recorded successfully.",
    "data": {
        "id": 1,
        "email": "customer@example.com",
        "domain": "example.com",
        "event_type": "verified"
    }
}

Calculate Distance

POST /api/address-importer/calculate-distance

Directly calculate the miles between two coordinate pairs.

Payload / Parameters
  • `from_latitude`, `from_longitude`, `to_latitude`, `to_longitude` (required)
$payload = ['from_latitude' => 40.7128, 'from_longitude' => -74.0060, 'to_latitude' => 34.0522, 'to_longitude' => -118.2437];
fetch('/api/address-importer/calculate-distance', { method: 'POST', headers: auth, body: JSON.stringify({ from_latitude: 40.7128, from_longitude: -74.0060, to_latitude: 34.0522, to_longitude: -118.2437 }) });
requests.post('/api/address-importer/calculate-distance', headers=auth, json={'from_latitude': 40.7128, 'from_longitude': -74.0060, 'to_latitude': 34.0522, 'to_longitude': -118.2437})
{
  "message": "Distance calculated successfully.",
  "distance_miles": 2445.55
}

GeoIP Lookup

GET /api/geoip?ip=8.8.8.8

Resolve an IP address into geolocation and ASN metadata.

Payload / Parameters
  • `ip` query param (optional)
  • `fresh=1` to bypass cache
$ch = curl_init('/api/geoip?ip=8.8.8.8&fresh=1');
fetch('/api/geoip?ip=8.8.8.8&fresh=1', { headers: { Authorization: 'Bearer YOUR_ACTIVE_API_TOKEN' } });
requests.get('/api/geoip', headers=auth, params={'ip': '8.8.8.8', 'fresh': 1})
{
  "ok": true,
  "country_name": "United States",
  "city_name": "Mountain View"
}

Zipcode Nearby Search

GET /api/zipcode/zip_code?zip=10001&distance=10

Return zip codes found within the provided distance from a seed zip code.

Payload / Parameters
  • `zip` and `distance` query params are required
$ch = curl_init('/api/zipcode/zip_code?zip=10001&distance=10');
fetch('/api/zipcode/zip_code?zip=10001&distance=10', { headers: { Authorization: 'Bearer YOUR_ACTIVE_API_TOKEN' } });
requests.get('/api/zipcode/zip_code', headers=auth, params={'zip': 10001, 'distance': 10})
[{"zip": "10001", "distance": 0}, {"zip": "10002", "distance": 2.47}]

Zip-to-Zip Distance

GET /api/zipcode/distance?from_zip=10001&to_zip=10002

Measure the distance in miles between two zip codes.

Payload / Parameters
  • `from_zip` and `to_zip` query params are required
$ch = curl_init('/api/zipcode/distance?from_zip=10001&to_zip=10002');
fetch('/api/zipcode/distance?from_zip=10001&to_zip=10002', { headers: { Authorization: 'Bearer YOUR_ACTIVE_API_TOKEN' } });
requests.get('/api/zipcode/distance', headers=auth, params={'from_zip': 10001, 'to_zip': 10002})
2.47

Lat/Lng to Zipcode

GET /api/zipcode/zip?lat=40.7128&lng=-74.0060

Resolve coordinates into the nearest zip code list.

Payload / Parameters
  • `lat` and `lng` query params are required
$ch = curl_init('/api/zipcode/zip?lat=40.7128&lng=-74.0060');
fetch('/api/zipcode/zip?lat=40.7128&lng=-74.0060', { headers: { Authorization: 'Bearer YOUR_ACTIVE_API_TOKEN' } });
requests.get('/api/zipcode/zip', headers=auth, params={'lat': 40.7128, 'lng': -74.0060})
[{"zip": "10007", "distance": 0.18}]