API Reference

Complete API endpoint reference with parameters, examples, and response formats.

RX
ReconX Team··4 min read

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.

Share this article
RX

ReconX Team

Expert in cyber intelligence, threat analysis, and security research. Contributing insights and analysis to help security professionals stay ahead of emerging threats.

Was this article helpful?