API Documentation

Complete guide to integrating with the arrest.rest OSINT Intelligence Platform

Overview

The arrest.rest API is a comprehensive OSINT (Open Source Intelligence) platform that helps you investigate emails, phone numbers, Discord IDs, and other digital identifiers..

API Version

Current version: 2.0

What You Can Do

The API covers comprehensive OSINT investigation needs across multiple categories:

  • Email Investigation: Breach searches, social media discovery, Google account verification
  • Phone Investigation: Caller identification, carrier information, fraud analysis
  • Discord Analysis: User lookups and cross-platform connections
  • Domain & IP Intelligence: Network analysis, DNS records, geolocation
  • Specialized Searches: SEON fraud analysis, HLR lookups, Chilean RUT investigation

Authentication

All API requests require authentication using an API key passed in the request header.

API Key Header

X-API-Key: your_api_key_here

Getting an API Key

Contact our support team through Discord or Telegram to obtain an API key. We offer several subscription plans including daily, weekly, and monthly options.

Example Request

curl -H "X-API-Key: ak_1ebb8a09e823e4c58b76a638fb3ef05e636410cdebf8b2dbe9a58cb3444a" \
     "https://arrest.rest/api.php"
Keep your API key secure! Never expose your API key in client-side code or public repositories.

Rate Limits

API requests are subject to rate limiting based on your subscription plan. Limits apply across all endpoints.

Rate Limit Headers

X-RateLimit-Daily-Limit: 1000
X-RateLimit-Daily-Remaining: 847
X-RateLimit-Hourly-Limit: 100
X-RateLimit-Hourly-Remaining: 73

Rate Limit Response

{
  "status": "error",
  "data": {
    "error": "Rate limit exceeded. Try again in 3600 seconds."
  },
  "timestamp": 1750218591
}

Response Format

All API responses follow a consistent JSON structure.

Success Response Structure

{
  "status": "success",
  "data": {
    "query_term": "search_value",
    "sources_checked": 4,
    "results": {
      "data_category": { },
      "additional_category": { }
    }
  },
  "timestamp": 1750218591
}

Error Response

{
  "status": "error",
  "data": {
    "error": "Detailed error message explaining the issue"
  },
  "timestamp": 1750218591
}

API Status

GET /api.php

Retrieve comprehensive API information, usage statistics, and available endpoints.

Example Request

curl -H "X-API-Key: ak_your_key_here" "https://arrest.rest/api.php"

Example Response

{
  "status": "success",
  "data": {
    "name": "arrest.rest API",
    "version": "2.0",
    "authenticated_as": "username",
    "usage_today": "5/1000",
    "usage_this_hour": "2/100",
    "endpoints": {
      "GET /api?endpoint=email&q={email}": "Email investigation",
      "GET /api?endpoint=phone&q={phone}": "Phone investigation", 
      "GET /api?endpoint=breach&q={email}": "Breach search"
    }
  },
  "timestamp": 1750218591
}

Email Investigation

GET /api.php?endpoint=email&q={email}

Comprehensive email investigation consolidating breach data, social media accounts, and additional intelligence.

Parameters

Parameter Type Required Description
endpoint string Yes Must be "email"
q string Yes Valid email address to investigate

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=email&q=test@example.com"

Example Response

{
  "status": "success",
  "data": {
    "email": "test@example.com",
    "sources_checked": 3,
    "results": {
      "breaches": [
        {
          "breach_name": "LinkedIn 2012",
          "date": "2012-06-05",
          "data_types": ["emails", "passwords"]
        }
      ],
      "social_media": [
        {
          "platform": "Twitter",
          "profile_url": "https://twitter.com/johndoe"
        }
      ],
      "additional_info": {
        "registrations": ["Discord", "Steam"]
      }
    }
  },
  "timestamp": 1750218591
}

Phone Investigation

GET /api.php?endpoint=phone&q={phone}

Advanced phone investigation providing caller information, carrier details, and registration analysis.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=phone&q=5551234567"

Example Response

{
  "status": "success", 
  "data": {
    "phone": "5551234567",
    "sources_checked": 3,
    "results": {
      "caller_info": {
        "name": "John Smith",
        "carrier": "Verizon Wireless",
        "location": "New York, NY",
        "line_type": "mobile",
        "country": "US"
      }
    }
  },
  "timestamp": 1750218591
}

Discord Lookup

GET /api.php?endpoint=discord&q={discord_id}

Discord user investigation providing username history, server memberships, and account information.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=discord&q=123456789012345678"

Example Response

{
  "status": "success",
  "data": {
    "discord_id": "123456789012345678",
    "sources_checked": 1,
    "results": {
      "discord_info": {
        "username_history": [
          {
            "username": "johndoe#1234",
            "date_changed": "2023-03-15"
          }
        ],
        "account_info": {
          "creation_date": "2022-01-15"
        }
      }
    }
  },
  "timestamp": 1750218591
}

Discord to Roblox

GET /api.php?endpoint=discord-to-roblox&q={discord_id}

Find Roblox accounts connected to Discord IDs through verification systems.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=discord-to-roblox&q=123456789012345678"

Example Response

{
  "status": "success",
  "data": {
    "discord_id": "123456789012345678",
    "sources_checked": 1,
    "results": {
      "discord_to_roblox": {
        "roblox_username": "johndoe_rblx",
        "roblox_id": "987654321",
        "connection_verified": true,
        "last_seen": "2024-01-15"
      }
    }
  },
  "timestamp": 1750218591
}

Roblox Lookup

GET /api.php?endpoint=roblox&q={username}

Comprehensive Roblox user investigation including account details and additional data.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=roblox&q=johndoe"

Example Response

{
  "status": "success",
  "data": {
    "roblox_username": "johndoe",
    "sources_checked": 1,
    "results": {
      "account_info": {
        "user_id": "123456789",
        "display_name": "John Doe",
        "description": "Roblox player since 2020",
        "created_date": "2020-03-15",
        "premium": true
      }
    }
  },
  "timestamp": 1750218591
}

Domain Investigation

GET /api.php?endpoint=domain&q={domain}

Comprehensive domain analysis including WHOIS data, DNS records, and subdomain discovery.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=domain&q=example.com"

Example Response

{
  "status": "success",
  "data": {
    "domain": "example.com",
    "sources_checked": 1,
    "results": {
      "domain_info": {
        "whois_info": {
          "registrar": "Example Registrar",
          "created": "1995-08-14",
          "expires": "2025-08-13"
        },
        "dns_records": [
          {
            "type": "A",
            "value": "93.184.216.34"
          }
        ]
      }
    }
  },
  "timestamp": 1750218591
}

IP Investigation

GET /api.php?endpoint=ip&q={ip}

IP address investigation combining geolocation data with network intelligence.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=ip&q=8.8.8.8"

Example Response

{
  "status": "success",
  "data": {
    "ip_address": "8.8.8.8",
    "sources_checked": 2,
    "results": {
      "ip_info": {
        "location": {
          "country": "US",
          "city": "Mountain View",
          "region": "California"
        },
        "isp": "Google LLC",
        "organization": "Google Public DNS"
      }
    }
  },
  "timestamp": 1750218591
}

SEON Email Analysis

GET /api.php?endpoint=seon-email&q={email}

Advanced email fraud analysis using SEON's machine learning algorithms.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=seon-email&q=test@example.com"

Example Response

{
  "status": "success",
  "data": {
    "email": "test@example.com",
    "sources_checked": 1,
    "results": {
      "seon_analysis": {
        "risk_score": "low",
        "email_details": {
          "domain_age": "15 years",
          "domain_reputation": "excellent"
        },
        "fraud_indicators": [],
        "reputation": "good"
      }
    }
  },
  "timestamp": 1750218591
}

SEON Phone Analysis

GET /api.php?endpoint=seon-phone&q={phone}

Advanced phone fraud analysis and risk assessment using SEON technology.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=seon-phone&q=5551234567"

Example Response

{
  "status": "success",
  "data": {
    "phone": "5551234567",
    "sources_checked": 1,
    "results": {
      "seon_analysis": {
        "risk_score": "medium",
        "phone_details": {
          "line_type": "mobile",
          "carrier": "Verizon",
          "country": "US"
        },
        "fraud_indicators": ["recent_activation"]
      }
    }
  },
  "timestamp": 1750218591
}

HLR Phone Lookup

GET /api.php?endpoint=hlr-lookup&q={phone}

Home Location Register lookup providing real-time phone number status and network information.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=hlr-lookup&q=5551234567"

Example Response

{
  "status": "success",
  "data": {
    "phone": "5551234567",
    "sources_checked": 1,
    "results": {
      "hlr_info": {
        "network": "Verizon Wireless",
        "country": "US",
        "status": "active",
        "ported": false
      }
    }
  },
  "timestamp": 1750218591
}

Google Account (GHunt)

GET /api.php?endpoint=ghunt&q={email}

Google account investigation revealing profile information and associated data.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=ghunt&q=test@gmail.com"

Example Response

{
  "status": "success",
  "data": {
    "email": "test@gmail.com",
    "sources_checked": 1,
    "results": {
      "google_account": {
        "google_id": "123456789012345678901",
        "name": "John Doe",
        "profile_picture": "https://lh3.googleusercontent.com/a/example",
        "last_update": "2024/01/15 10:30:00 (UTC)"
      }
    }
  },
  "timestamp": 1750218591
}

Network Scanning

GET /api.php?endpoint=shodan&q={ip_or_query}

Network intelligence scanning using Shodan's database of internet-connected devices.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=shodan&q=8.8.8.8"

Example Response

{
  "status": "success",
  "data": {
    "query": "8.8.8.8",
    "sources_checked": 1,
    "results": {
      "network_intelligence": {
        "host_info": {
          "ip": "8.8.8.8",
          "hostnames": ["dns.google"],
          "country_name": "United States",
          "city": "Mountain View",
          "org": "Google LLC"
        },
        "vulnerabilities": [],
        "open_ports": [53, 443]
      }
    }
  },
  "timestamp": 1750218591
}

Chilean RUT

GET /api.php?endpoint=rut&q={rut}

Chilean RUT (Rol Único Tributario) investigation for identity verification.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=rut&q=12345678-9"

Example Response

{
  "status": "success",
  "data": {
    "rut": "12345678-9",
    "sources_checked": 1,
    "results": {
      "rut_info": {
        "personal_info": {
          "name": "Juan Pérez",
          "status": "active"
        },
        "address_info": {
          "region": "Metropolitana",
          "city": "Santiago"
        },
        "verification_status": true
      }
    }
  },
  "timestamp": 1750218591
}

Balance Check

GET /api.php?endpoint=balance

Check your current API usage statistics and remaining quota.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=balance"

Example Response

{
  "status": "success",
  "data": {
    "user": "johndoe",
    "usage_statistics": {
      "requests_today": 45,
      "daily_limit": 1000,
      "requests_this_hour": 8,
      "hourly_limit": 100,
      "remaining_today": 955,
      "remaining_this_hour": 92
    }
  },
  "timestamp": 1750218591
}

Connectivity Test

GET /api.php?endpoint=test

Test API connectivity and verify your authentication is working correctly.

Example Request

curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=test"

Example Response

{
  "status": "success",
  "data": {
    "status": "API is working perfectly",
    "authenticated_user": "johndoe",
    "timestamp": "2024-06-25 14:30:15",
    "server_time": 1750218591,
    "version": "2.0"
  },
  "timestamp": 1750218591
}

JavaScript Examples

Node.js API Client

const axios = require('axios');

class ArrestRestAPI {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseURL = 'https://arrest.rest/api.php';
    this.headers = {
      'X-API-Key': apiKey,
      'Content-Type': 'application/json'
    };
  }

  async makeRequest(endpoint, query) {
    try {
      const response = await axios.get(`${this.baseURL}?endpoint=${endpoint}&q=${encodeURIComponent(query)}`, {
        headers: this.headers
      });
      return response.data;
    } catch (error) {
      throw new Error(`API Error: ${error.response?.data?.data?.error || error.message}`);
    }
  }

  async emailInvestigation(email) {
    return await this.makeRequest('email', email);
  }

  async phoneInvestigation(phone) {
    return await this.makeRequest('phone', phone);
  }

  async breachSearch(email) {
    return await this.makeRequest('breach', email);
  }
}

const api = new ArrestRestAPI('ak_your_key_here');
api.emailInvestigation('test@example.com').then(console.log);

Python Examples

Python API Client

import requests
from typing import Dict, Any

class ArrestRestAPI:
    def __init__(self, api_key: str):
        self.api_key = api_key
        self.base_url = 'https://arrest.rest/api.php'
        self.headers = {
            'X-API-Key': api_key,
            'Content-Type': 'application/json'
        }

    def _make_request(self, endpoint: str, query: str) -> Dict[str, Any]:
        params = {'endpoint': endpoint, 'q': query}

        try:
            response = requests.get(self.base_url, params=params, headers=self.headers)
            response.raise_for_status()
            return response.json()
        except requests.exceptions.RequestException as e:
            raise Exception(f"API request failed: {e}")

    def email_investigation(self, email: str) -> Dict[str, Any]:
        return self._make_request('email', email)

    def phone_investigation(self, phone: str) -> Dict[str, Any]:
        return self._make_request('phone', phone)

# Usage example
api = ArrestRestAPI('ak_your_key_here')
result = api.email_investigation('test@example.com')
print(result)

PHP Examples

PHP API Client

apiKey = $apiKey;
        $this->baseURL = 'https://arrest.rest/api.php';
    }

    private function makeRequest($endpoint, $query) {
        $url = $this->baseURL . '?' . http_build_query([
            'endpoint' => $endpoint,
            'q' => $query
        ]);

        $headers = [
            'X-API-Key: ' . $this->apiKey,
            'Content-Type: application/json'
        ];

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);

        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

        if (curl_error($ch)) {
            throw new Exception('cURL Error: ' . curl_error($ch));
        }

        curl_close($ch);

        if ($httpCode !== 200) {
            throw new Exception('HTTP Error: ' . $httpCode);
        }

        $data = json_decode($response, true);
        if (json_last_error() !== JSON_ERROR_NONE) {
            throw new Exception('JSON Decode Error: ' . json_last_error_msg());
        }

        return $data;
    }

    public function emailInvestigation($email) {
        return $this->makeRequest('email', $email);
    }

    public function phoneInvestigation($phone) {
        return $this->makeRequest('phone', $phone);
    }

    public function breachSearch($email) {
        return $this->makeRequest('breach', $email);
    }

    public function discordLookup($discordId) {
        return $this->makeRequest('discord', $discordId);
    }

    public function domainInvestigation($domain) {
        return $this->makeRequest('domain', $domain);
    }

    public function ipInvestigation($ip) {
        return $this->makeRequest('ip', $ip);
    }

    public function checkBalance() {
        $url = $this->baseURL . '?' . http_build_query(['endpoint' => 'balance']);

        $headers = [
            'X-API-Key: ' . $this->apiKey,
            'Content-Type: application/json'
        ];

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);

        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

        if (curl_error($ch)) {
            throw new Exception('cURL Error: ' . curl_error($ch));
        }

        curl_close($ch);

        if ($httpCode !== 200) {
            throw new Exception('HTTP Error: ' . $httpCode);
        }

        $data = json_decode($response, true);
        if (json_last_error() !== JSON_ERROR_NONE) {
            throw new Exception('JSON Decode Error: ' . json_last_error_msg());
        }

        return $data;
    }
}

try {
    $api = new ArrestRestAPI('ak_your_key_here');

    $balance = $api->checkBalance();
    echo "Daily usage: " . $balance['data']['usage_statistics']['requests_today'] . 
         "/" . $balance['data']['usage_statistics']['daily_limit'] . "\n";

    $emailResult = $api->emailInvestigation('test@example.com');
    echo "Email sources checked: " . $emailResult['data']['sources_checked'] . "\n";

    $phoneResult = $api->phoneInvestigation('5551234567');
    echo "Phone sources checked: " . $phoneResult['data']['sources_checked'] . "\n";

    $domainResult = $api->domainInvestigation('example.com');
    echo "Domain sources checked: " . $domainResult['data']['sources_checked'] . "\n";

} catch (Exception $e) {
    echo "Error: " . $e->getMessage() . "\n";
}
?>

Simple PHP Example

 $endpoint,
        'q' => $query
    ]);

    $options = [
        'http' => [
            'header' => "X-API-Key: $apiKey\r\n" .
                       "Content-Type: application/json\r\n",
            'method' => 'GET',
            'timeout' => 30
        ]
    ];

    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        throw new Exception('Failed to fetch data from API');
    }

    return json_decode($result, true);
}

$apiKey = 'ak_your_key_here';

try {

    $emailData = arrestRestRequest('email', 'test@example.com', $apiKey);
    echo "Email investigation completed\n";
    print_r($emailData);

    $phoneData = arrestRestRequest('phone', '5551234567', $apiKey);
    echo "Phone investigation completed\n";
    print_r($phoneData);

    $balanceData = arrestRestRequest('balance', '', $apiKey);
    echo "Balance check completed\n";
    print_r($balanceData);

} catch (Exception $e) {
    echo "Error: " . $e->getMessage() . "\n";
}
?>

cURL Examples

Basic Endpoint Examples

# Email investigation
curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=email&q=test@example.com"

# Phone investigation  
curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=phone&q=5551234567"

# Breach search
curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=breach&q=test@example.com"

# Discord lookup
curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=discord&q=123456789012345678"

# Balance check
curl -H "X-API-Key: ak_your_key_here" \
     "https://arrest.rest/api.php?endpoint=balance"

Error Codes

Status Code Error Type Description Resolution
200 Success Request completed successfully Process the response data
400 Bad Request Invalid parameters or malformed request Check request format and parameters
401 Unauthorized Invalid or missing API key Verify API key in X-API-Key header
429 Too Many Requests Rate limit exceeded Wait before making more requests
500 Internal Server Error Server-side error occurred Retry request or contact support

Best Practices

Efficient Usage

Monitor your usage with the balance endpoint to track consumption. Cache results appropriately as each response represents data from multiple sources.

Error Handling

Always implement proper error handling for API requests. Check the sources_checked field to understand the comprehensiveness of results.

async function robustApiCall(endpoint, query, apiKey, maxRetries = 3) {
  const headers = {'X-API-Key': apiKey};

  for (let attempt = 0; attempt < maxRetries; attempt++) {
    try {
      const response = await fetch(
        `https:
        { headers }
      );

      if (response.status === 200) {
        const data = await response.json();
        if (data.status === 'success') {
          return data;
        }
      } else if (response.status === 429) {
        const retryAfter = response.headers.get('Retry-After') || 60;
        await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
      }

    } catch (error) {
      if (attempt === maxRetries - 1) throw error;
      await new Promise(resolve => setTimeout(resolve, Math.pow(2, attempt) * 1000));
    }
  }

  throw new Error('Max retries exceeded');
}

Contact & Support

Need Help?

Our support team is available to help you integrate with the arrest.rest API and answer any questions about our OSINT intelligence platform.

Join our Discord