# API - Public Breaches Search (140+ Billion Records)

# 🧠 NiamonX API — **Public Breaches Search (140+ Billion Records)**

Comprehensive API documentation for searching public data breaches aggregated from 4,500+ sources.

---

## ⚠️ Important Notice

The **Public Breaches Search** API allows you to query a massive database of publicly available leaks (&gt;140 billion records).  
Use it **only** for legitimate purposes — such as verifying your own data or with explicit authorization.

> ❗ Abuse or publication of obtained data will lead to **account suspension** and **permanent API ban**.  
> Some results may contain outdated or incomplete data.

---

## 🧩 API Endpoint

**Main URL:**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-post-https%3A%2F%2Fdash.ni"><div class="overflow-y-auto p-4" dir="ltr">`POST https://dash.niamonx.io/api/v2/breaches_search`</div></div>**Headers:**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-content-type%3A-applic"><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-attribute">Content-Type</span>: application/json<span class="hljs-attribute">X-API-Key</span>: YOUR_API_KEY`</div></div>**Body Example:**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--2"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>```json
{ "query": "test@example.com" }
```

### Example Request via cURL

<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs" id="bkmrk--3">  
</div>```bash
curl -X POST https://dash.niamonx.io/api/v2/breaches_search \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{"query":"test@example.com"}'
```

---

## 🧭 Query Parameters

<div class="_tableContainer_1rjym_1" id="bkmrk-field-type-descripti"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1456" data-start="1270"><thead data-end="1310" data-start="1270"><tr data-end="1310" data-start="1270"><th data-col-size="sm" data-end="1278" data-start="1270">Field</th><th data-col-size="sm" data-end="1285" data-start="1278">Type</th><th data-col-size="md" data-end="1299" data-start="1285">Description</th><th data-col-size="sm" data-end="1310" data-start="1299">Example</th></tr></thead><tbody data-end="1456" data-start="1354"><tr data-end="1456" data-start="1354"><td data-col-size="sm" data-end="1364" data-start="1354">`query`</td><td data-col-size="sm" data-end="1375" data-start="1364">`string`</td><td data-col-size="md" data-end="1432" data-start="1375">Search term (email, phone, domain, IP, username, etc.)</td><td data-col-size="sm" data-end="1456" data-start="1432">`"example@mail.com"`</td></tr></tbody></table>

</div></div>### Supported Search Types

- Email: `john.doe@gmail.com`
- Login or Username: `nickname123`
- Domain: `domain.com`
- IP address: `1.1.1.1`
- Combo (e.g. “email password” or “name phone”)
- Full name, city, social ID

💡 **Tip:** If you get an empty response, try deleting one character from the query and repeat the request — it refreshes the search pipeline.

---

## ⚙️ Response Structure

### ✅ When Data Is Found

**HTTP 200**

```json
{
  "success": true,
  "data": {
    "query": "niamonx",
    "task_id": "50bab956-4a9c-4548-83ff-a0451be1b18e",
    "status": "ok",
    "detail": "file_downloaded",
    "meta": {
      "blocks_total": 3,
      "emails": ["test@niamonx.io"],
      "names": ["NiaMonx"],
      "first_seen": "2021-01-21T05:32:31+00:00",
      "last_seen": "2021-01-22T01:51:31+00:00"
    },
    "risk": {
      "score": 9,
      "level": "Low"
    },
    "blocks": [
      {
        "id": "p1",
        "title": "TestNia",
        "description": "In November 2021, the TestNia website...",
        "groups_normalized": [
          {
            "fields_map": {
              "email": "test@niamonx.io",
              "nick": "NiaMonx",
              "ip": "2800:***:9824"
            }
          }
        ]
      }
    ],
    "rate": {
      "remaining": 99,
      "reset_in_sec": 600
    },
    "cooldown_sec": 10
  }
}

```

---

### 🕳️ When No Results Found

**HTTP 200**

```json
{
  "success": true,
  "data": {
    "query": "not_found@niamonx.io",
    "status": "not_found",
    "detail": "no results found",
    "meta": { "blocks_total": 0 },
    "risk": { "score": 0, "level": "Low" }
  }
}

```

---

### 🔒 When Data Is Protected

**HTTP 200**

```json
{
  "success": true,
  "data": {
    "success": false,
    "error": "[NiamonX | DataGuard] This data has been removed and is no longer indexed by our search engine at the request of the copyright holder."
  }
}

```

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--8"><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>---

## 📊 HTTP Status Codes

<div class="_tableContainer_1rjym_1" id="bkmrk-code-meaning-200-suc"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="3735" data-start="3385"><thead data-end="3403" data-start="3385"><tr data-end="3403" data-start="3385"><th data-col-size="sm" data-end="3392" data-start="3385">Code</th><th data-col-size="sm" data-end="3403" data-start="3392">Meaning</th></tr></thead><tbody data-end="3735" data-start="3424"><tr data-end="3465" data-start="3424"><td data-col-size="sm" data-end="3434" data-start="3424">**200**</td><td data-col-size="sm" data-end="3465" data-start="3434">Success — request processed</td></tr><tr data-end="3511" data-start="3466"><td data-col-size="sm" data-end="3476" data-start="3466">**400**</td><td data-col-size="sm" data-end="3511" data-start="3476">Invalid input or malformed body</td></tr><tr data-end="3552" data-start="3512"><td data-col-size="sm" data-end="3522" data-start="3512">**401**</td><td data-col-size="sm" data-end="3552" data-start="3522">Invalid or missing API key</td></tr><tr data-end="3597" data-start="3553"><td data-col-size="sm" data-end="3563" data-start="3553">**403**</td><td data-col-size="sm" data-end="3597" data-start="3563">Tool disabled for your account</td></tr><tr data-end="3649" data-start="3598"><td data-col-size="sm" data-end="3608" data-start="3598">**404**</td><td data-col-size="sm" data-end="3649" data-start="3608">Unknown endpoint or invalid tool name</td></tr><tr data-end="3689" data-start="3650"><td data-col-size="sm" data-end="3660" data-start="3650">**405**</td><td data-col-size="sm" data-end="3689" data-start="3660">Wrong method — use `POST`</td></tr><tr data-end="3735" data-start="3690"><td data-col-size="sm" data-end="3700" data-start="3690">**429**</td><td data-col-size="sm" data-end="3735" data-start="3700">Cooldown or daily limit reached</td></tr></tbody></table>

</div></div>---

## 🧱 Features Summary

- 🔍 **140+ billion** records
- 🌍 **4500+** aggregated sources
- 🔒 **Cryptographically protected** data
- 🧠 **Risk Indicator** (numeric + level)
- ⚡ **Cached results** for faster response
- 🧯 **Automatic data removal** for sensitive categories (bank/medical)

---

## 💻 Code Examples

### **1. Python (requests)**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--12"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">  
</div></div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>```python
import requests

url = "https://dash.niamonx.io/api/v2/breaches_search"
headers = {
    "Content-Type": "application/json",
    "X-API-Key": "YOUR_API_KEY"
}
payload = { "query": "example@mail.com" }

response = requests.post(url, json=payload, headers=headers)
print(response.status_code)
print(response.json())

```

---

### **2. JavaScript (Node.js / Axios)**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--14"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">  
</div></div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>```javascript
import axios from "axios";

const API_KEY = "YOUR_API_KEY";
const url = "https://dash.niamonx.io/api/v2/breaches_search";

async function searchLeak(query) {
  try {
    const res = await axios.post(
      url,
      { query },
      {
        headers: {
          "Content-Type": "application/json",
          "X-API-Key": API_KEY
        }
      }
    );
    console.log(res.data);
  } catch (err) {
    console.error("Error:", err.response?.data || err.message);
  }
}

searchLeak("example@mail.com");

```

---

### **3. PHP (cURL)**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--16"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">  
</div></div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>```php
<?php
$api_key = "YOUR_API_KEY";
$url = "https://dash.niamonx.io/api/v2/breaches_search";

$data = ["query" => "example@mail.com"];
$options = [
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json",
    "X-API-Key: $api_key"
  ],
  CURLOPT_POSTFIELDS => json_encode($data)
];

$ch = curl_init();
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>

```

---

### **4. Go (net/http)**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk--18"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">  
</div></div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>```go
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	apiKey := "YOUR_API_KEY"
	jsonBody := []byte(`{"query":"example@mail.com"}`)
	req, _ := http.NewRequest("POST", "https://dash.niamonx.io/api/v2/breaches_search", bytes.NewBuffer(jsonBody))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("X-API-Key", apiKey)

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	fmt.Println("Status:", resp.Status)
	fmt.Println(string(body))
}

```

---

## 🧠 Best Practices

- Wait **3 seconds** between requests to respect cooldown (anti-spam).
- Combine parameters intelligently:
    
    
    - `"email password"`
    - `"name phone"`
- Do not republish or share results publicly.
- If you detect compromised credentials — **change passwords immediately**.
- Sensitive datasets (bank cards, healthcare) are **automatically excluded**.

---

## 🧾 Summary

<div class="_tableContainer_1rjym_1" id="bkmrk-feature-description-"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="6954" data-start="6569"><thead data-end="6594" data-start="6569"><tr data-end="6594" data-start="6569"><th data-col-size="sm" data-end="6579" data-start="6569">Feature</th><th data-col-size="md" data-end="6594" data-start="6579">Description</th></tr></thead><tbody data-end="6954" data-start="6623"><tr data-end="6690" data-start="6623"><td data-col-size="sm" data-end="6638" data-start="6623">**Endpoint**</td><td data-col-size="md" data-end="6690" data-start="6638">`https://dash.niamonx.io/api/v2/breaches_search`</td></tr><tr data-end="6712" data-start="6691"><td data-col-size="sm" data-end="6704" data-start="6691">**Method**</td><td data-col-size="md" data-end="6712" data-start="6704">POST</td></tr><tr data-end="6749" data-start="6713"><td data-col-size="sm" data-end="6734" data-start="6713">**Authentication**</td><td data-col-size="md" data-end="6749" data-start="6734">`X-API-Key`</td></tr><tr data-end="6779" data-start="6750"><td data-col-size="sm" data-end="6765" data-start="6750">**Cooldown**</td><td data-col-size="md" data-end="6779" data-start="6765">3 seconds</td></tr><tr data-end="6831" data-start="6780"><td data-col-size="sm" data-end="6802" data-start="6780">**Rate Limit Info**</td><td data-col-size="md" data-end="6831" data-start="6802">Returned in `rate` object</td></tr><tr data-end="6897" data-start="6832"><td data-col-size="sm" data-end="6859" data-start="6832">**Data Types Supported**</td><td data-col-size="md" data-end="6897" data-start="6859">Email, phone, IP, domain, username</td></tr><tr data-end="6954" data-start="6898"><td data-col-size="sm" data-end="6920" data-start="6898">**Data Protection**</td><td data-col-size="md" data-end="6954" data-start="6920">SHA-256 &amp; DataGuard Compliance</td></tr></tbody></table>

</div></div>---

✅ **Now you can safely integrate the NiamonX Public Breaches API** into your OSINT tools, cybersecurity dashboards, or monitoring systems — with full ethical and legal compliance.