Email Breach Lookup
curl --request POST \
--url https://api.neur-a.org/api/leak-search \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>"
}
'import requests
url = "https://api.neur-a.org/api/leak-search"
payload = { "email": "<string>" }
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '<string>'})
};
fetch('https://api.neur-a.org/api/leak-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.neur-a.org/api/leak-search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.neur-a.org/api/leak-search"
payload := strings.NewReader("{\n \"email\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.neur-a.org/api/leak-search")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.neur-a.org/api/leak-search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"List": {
"Deadeye Breach": {
"Data": [
{
"Email": "someone@example.com",
"Password": "hunter2",
"Username": "someone",
"Source": "ExampleBreach2023"
}
],
"InfoLeak": "Deadeye universal breach results"
},
"LeakOSint": {
"Data": [
{
"Email": "someone@example.com",
"Phone": "+14155550000",
"Name": "John Doe"
}
],
"InfoLeak": "LeakOSint aggregated results"
}
},
"NumOfDatabase": 2,
"NumOfResults": 2,
"price": "0",
"search time": "1s"
}
{
"List": {},
"NumOfDatabase": 0,
"NumOfResults": 0,
"price": "0",
"search time": "0s"
}
{
"error": "'email' field is required"
}
{
"error": "Unauthorized — invalid or missing API key"
}
{
"error": "Daily limit reached for your plan"
}
{
"error": "Upstream query failed"
}
Endpoint examples
Email Breach Lookup
Multi-source email breach and intelligence search across LeakOSint, Deadeye, CSInt, Melissa, IntelVault, and Cypher.
POST
/
api
/
leak-search
Email Breach Lookup
curl --request POST \
--url https://api.neur-a.org/api/leak-search \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>"
}
'import requests
url = "https://api.neur-a.org/api/leak-search"
payload = { "email": "<string>" }
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '<string>'})
};
fetch('https://api.neur-a.org/api/leak-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.neur-a.org/api/leak-search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.neur-a.org/api/leak-search"
payload := strings.NewReader("{\n \"email\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.neur-a.org/api/leak-search")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.neur-a.org/api/leak-search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"List": {
"Deadeye Breach": {
"Data": [
{
"Email": "someone@example.com",
"Password": "hunter2",
"Username": "someone",
"Source": "ExampleBreach2023"
}
],
"InfoLeak": "Deadeye universal breach results"
},
"LeakOSint": {
"Data": [
{
"Email": "someone@example.com",
"Phone": "+14155550000",
"Name": "John Doe"
}
],
"InfoLeak": "LeakOSint aggregated results"
}
},
"NumOfDatabase": 2,
"NumOfResults": 2,
"price": "0",
"search time": "1s"
}
{
"List": {},
"NumOfDatabase": 0,
"NumOfResults": 0,
"price": "0",
"search time": "0s"
}
{
"error": "'email' field is required"
}
{
"error": "Unauthorized — invalid or missing API key"
}
{
"error": "Daily limit reached for your plan"
}
{
"error": "Upstream query failed"
}
Overview
Queries multiple breach and intelligence databases in parallel for a given email address and returns aggregated results in a unified envelope. Sources include LeakOSint, Deadeye, CSInt, Melissa, IntelVault, and Cypher.Requires a valid API key and at least 1 remaining daily request on your plan. Free plan users have access to this endpoint within their daily limit of 10 requests.
Request
Headers
string
required
Bearer token. Format:
Bearer <api_key>string
Alternative to Authorization header. Pass your API key directly.
Body
string
required
The email address to search across breach databases.Example:
someone@example.comcurl -X POST https://api.neur-a.org/api/leak-search \
-H "Authorization: Bearer nra_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"email": "someone@example.com"}'
import requests
response = requests.post(
"https://api.neur-a.org/api/leak-search",
headers={"Authorization": "Bearer nra_xxxxxxxxxxxx"},
json={"email": "someone@example.com"}
)
print(response.json())
const response = await fetch("https://api.neur-a.org/api/leak-search", {
method: "POST",
headers: {
"Authorization": "Bearer nra_xxxxxxxxxxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({ email: "someone@example.com" })
});
const data = await response.json();
console.log(data);
Response
Fields
object
Map of source/database names to their results. Each key is a provider name (e.g.
"Deadeye Breach", "LeakOSint"). Empty object {} if no results found.integer
Number of sources that returned at least one result.
integer
Total number of records returned across all sources.
string
Query cost. Typically
"0" for metered plans.string
Server-side query duration, e.g.
"1s".Examples
{
"List": {
"Deadeye Breach": {
"Data": [
{
"Email": "someone@example.com",
"Password": "hunter2",
"Username": "someone",
"Source": "ExampleBreach2023"
}
],
"InfoLeak": "Deadeye universal breach results"
},
"LeakOSint": {
"Data": [
{
"Email": "someone@example.com",
"Phone": "+14155550000",
"Name": "John Doe"
}
],
"InfoLeak": "LeakOSint aggregated results"
}
},
"NumOfDatabase": 2,
"NumOfResults": 2,
"price": "0",
"search time": "1s"
}
{
"List": {},
"NumOfDatabase": 0,
"NumOfResults": 0,
"price": "0",
"search time": "0s"
}
{
"error": "'email' field is required"
}
{
"error": "Unauthorized — invalid or missing API key"
}
{
"error": "Daily limit reached for your plan"
}
{
"error": "Upstream query failed"
}
Error Codes
| Status | Meaning |
|---|---|
400 | Missing or malformed email field in request body |
401 | Invalid or missing API key |
429 | Daily, hourly, or monthly plan quota exceeded |
500 | Internal error or upstream source failure |
⌘I