Interactive Documentation
Full interactive API documentation is auto-generated and available at /docs/api. The docs are powered by Scramble and always reflect the latest endpoints, parameters, and response schemas.
This page provides a summary of the most commonly used endpoints. For complete details, refer to the interactive docs.
Search
GET /v1/search
Search across breach and leak databases. The query type is auto-detected (email, domain, IP, etc.) unless you specify a field.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q |
string | Yes | Search query (email, domain, IP, hash, URL, or free text) |
field |
string | No | Specific field to search (e.g., extracted_data.emails). Auto-detected if omitted. |
page |
integer | No | Page number (default: 1) |
per_page |
integer | No | Results per page, 1-100 (default: 20) |
sort |
string | No | Sort order as field:direction (default: _score:desc) |
date_from |
string | No | Filter from date (YYYY-MM-DD) |
date_to |
string | No | Filter until date (YYYY-MM-DD) |
file_type |
string | No | Filter by file extension (txt, csv, sql, json, log) |
sources |
string | No | Comma-separated data source index names |
Example Response
{
"success": true,
"data": {
"query": "[email protected]",
"detected_type": "email",
"total": 42,
"page": 1,
"per_page": 20,
"total_pages": 3,
"results": [
{
"title": "credentials.txt",
"file_path": "logs/2024/credentials.txt",
"file_type": "txt",
"file_size": 2048,
"timestamp": "2024-06-15T10:30:00Z",
"source_type": "Stealer Logs",
"extracted_counts": {
"emails": 5,
"urls": 12
}
}
]
}
}
Search Filters
GET /v1/search/filters
Returns available searchable fields, MIME types, and filter flags. Cached for 10 minutes.
Data Sources
GET /v1/search/sources
Lists available data sources with document counts and accessibility based on your subscription plan.
Search Stats
GET /v1/search/stats
Get aggregated statistics for a search query. Accepts the same filter parameters as the search endpoint.
Service Health
GET /v1/search/health
Check the health status of the search service. No quota consumed.
Content & Downloads
View Content
GET /v1/search/content
Retrieve file content by its secure hash. Requires a valid search session. Consumes a content view from your quota.
Download File
GET /v1/search/content/download
Download a source file by its secure hash. Requires a valid search session. Consumes a download from your quota.
Extracted Data
GET /v1/search/extracted/{id}
Get structured extracted data (emails, URLs, IPs, etc.) for a specific document.
Account Endpoints
Profile
GET /v1/profile — View your account profile
PUT /v1/profile — Update your profile
Subscription & Quota
GET /v1/subscription — View your subscription details
GET /v1/subscription/quota — Check remaining quotas
GET /v1/subscription/plans — List available plans
Token Management
GET /v1/tokens — List your active API tokens
POST /v1/tokens — Create a new token (max 5)
DELETE /v1/tokens/{id} — Revoke a token
Code Examples
Python
import requests
TOKEN = "your_api_token"
BASE = "https://api.reconx.io/v1"
headers = {"Authorization": f"Bearer {TOKEN}"}
# Search for a domain
resp = requests.get(f"{BASE}/search", headers=headers, params={
"q": "@company.com",
"per_page": 10,
"date_from": "2024-01-01"
})
data = resp.json()
if data["success"]:
print(f"Found {data['data']['total']} results")
for result in data["data"]["results"]:
print(f" {result['title']} ({result['source_type']})")
# Check remaining quota
quota = requests.get(f"{BASE}/subscription/quota", headers=headers).json()
print(f"Searches remaining: {quota['data']}")
JavaScript
const TOKEN = 'your_api_token';
const BASE = 'https://api.reconx.io/v1';
const headers = { 'Authorization': `Bearer ${TOKEN}` };
// Search for an email
const resp = await fetch(
`${BASE}/[email protected]&per_page=10`,
{ headers }
);
const data = await resp.json();
if (data.success) {
console.log(`Found ${data.data.total} results`);
data.data.results.forEach(r =>
console.log(` ${r.title} (${r.source_type})`)
);
}
// Check remaining quota
const quota = await fetch(`${BASE}/subscription/quota`, { headers });
const quotaData = await quota.json();
console.log('Quota:', quotaData.data);
Pagination
Search results are paginated. Use page and per_page parameters to navigate through results. The response includes total, page, per_page, and total_pages to help you build pagination controls.
# Fetch page 2 with 50 results per page
curl "https://api.reconx.io/v1/[email protected]&page=2&per_page=50" \
-H "Authorization: Bearer YOUR_TOKEN"
For the complete, always up-to-date API documentation, visit /docs/api.