Integrate email lookup, username search, breach detection, and OSINT enrichment into your applications through a single REST API — built for security, fraud-prevention, and authorized investigation teams.
Revealer.US is not a consumer reporting agency. API results may not be used for any FCRA-covered purpose, including employment, credit, tenant screening, or insurance eligibility. See our Terms of Service.
API access is on the Unlimited plan. Contact sales to get set up.
Send authenticated REST requests
Receive structured JSON responses
Include your API key in the Authorization header:
Authorization: Bearer sk_live_your_api_keySecurity: Never expose your API key in client-side code. Make API calls from your backend.
import requests
API_KEY = "sk_live_..."
BASE_URL = "https://revealer.us"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Verify your API key first
def verify_api_key():
response = requests.get(f"{BASE_URL}/api/v1/verify", headers=headers)
return response.json()
# Resolve a username/handle
def resolve_handle(handle):
response = requests.post(
f"{BASE_URL}/api/resolve",
headers=headers,
json={"handle": handle}
)
return response.json()
# Search breach records
def search_breaches(search_type, term):
response = requests.post(
f"{BASE_URL}/api/database/search",
headers=headers,
json={"type": search_type, "term": term}
)
return response.json()
# Search stealer logs (Elite plan)
def search_stealer_logs(search_type, term, limit=35):
response = requests.post(
f"{BASE_URL}/api/stealer-logs/search",
headers=headers,
json={"type": search_type, "term": term, "limit": limit}
)
return response.json()
# Example usage
result = search_breaches("email", "[email protected]")
if result.get("success"):
print(f"Found {result['data']['found']} records")/api/v1/infoPublicGet API information, available endpoints, and your detected IP address (no auth required)
/api/v1/verifyUnlimitedVerify API key is working and check your access level
/api/resolveUnlimitedResolve a handle/username to associated profiles, breach data, and device exposures
/api/database/searchUnlimitedSearch breach records across connected sources for exposed credentials and personal data
/api/stealer-logs/searchUnlimitedSearch device exposures for compromised credentials (full results require the Elite plan)
/api/stealer-logs/file/[id]/[type]UnlimitedBrowse detailed contents of a stealer log file
/api/discord/lookupUnlimitedLookup Discord user profiles by user ID
/api/saved-incidentsUnlimitedList all saved credentials/incidents
/api/saved-incidentsUnlimitedSave a credential/incident to your account
/api/saved-incidents/[id]UnlimitedDelete a saved incident by ID
/api/auth/meUnlimitedGet current account information, tier, quota, and verify API key
| Plan | API | Breach Lookups | Social Lookups | Device Exposures | Rate | IPs |
|---|---|---|---|---|---|---|
| Free | — | 1/day | 1/day | — | — | — |
| Starter | — | Unlimited | 25/day | — | — | — |
| Basic | — | Unlimited | 150/day | — | — | — |
| Pro | — | Unlimited | 500/day | Previews | — | — |
| Elite | — | Unlimited | Unlimited | 100/day | — | — |
| Unlimited | ✓ | ∞ | ∞ | ∞ | ∞ | ∞ |
API access: Available on the Unlimited plan. Contact sales to get set up. Once enabled, configure allowed IPs in Dashboard → Settings → API Access before using the API.
| Code | Status | Description |
|---|---|---|
| 400 | Bad Request | Invalid request body or missing required parameters |
| 401 | Unauthorized | Missing or invalid API key |
| 403 | Forbidden | IP not whitelisted or insufficient tier access |
| 404 | Not Found | Resource not found |
| 409 | Conflict | Resource already exists (e.g., duplicate saved incident) |
| 429 | Too Many Requests | Rate limit or quota exceeded |
| 500 | Internal Server Error | Server error - contact support if persistent |
Error Response Format:
{
"success": false,
"error": "Error message",
"message": "Human-readable description"
}Rate limit information is included in response headers:
If you receive 403 errors or see Cloudflare challenge pages:
GET /api/v1/infoGET /api/v1/verifyYour server's outgoing IP may differ from local, especially with:
API access is available on the Unlimited plan. Get in touch and we'll set you up.