> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encrata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Overview

> Base URL, rate limiting, and response format.

## Base URL

```
https://encrata.com
```

## Endpoints

| Method   | Path                            | Description                         | Auth    |
| -------- | ------------------------------- | ----------------------------------- | ------- |
| `POST`   | `/api/agent/lookup`             | Full email lookup                   | API Key |
| `POST`   | `/api/agent/validate`           | Email deliverability check (free)   | API Key |
| `POST`   | `/api/smtp/verify`              | SMTP mailbox verification           | API Key |
| `POST`   | `/api/agent/breaches`           | Data breach check (free)            | API Key |
| `POST`   | `/api/agent/ip`                 | IP intelligence                     | API Key |
| `POST`   | `/api/agent/phone`              | Phone number intelligence           | API Key |
| `POST`   | `/api/agent/company`            | Company search                      | API Key |
| `POST`   | `/api/agent/domain`             | Domain search                       | API Key |
| `POST`   | `/api/agent/darkweb`            | Dark web search                     | API Key |
| `POST`   | `/api/agent/darkweb-crawl`      | Dark web onion crawl                | API Key |
| `POST`   | `/api/agent/onion-search`       | Find onion sites by keyword         | API Key |
| `POST`   | `/api/agent/onion-render`       | Fetch an onion page over Tor        | API Key |
| `POST`   | `/api/agent/google`             | Google search                       | API Key |
| `POST`   | `/api/agent/dork`               | Google dork pack (free)             | API Key |
| `POST`   | `/api/agent/duckduckgo`         | DuckDuckGo instant answer (free)    | API Key |
| `GET`    | `/api/agent/monitors`           | List monitors                       | API Key |
| `POST`   | `/api/agent/monitors`           | Create monitor                      | API Key |
| `GET`    | `/api/agent/monitors/{id}`      | Get monitor                         | API Key |
| `DELETE` | `/api/agent/monitors/{id}`      | Delete monitor                      | API Key |
| `POST`   | `/api/agent/monitors/{id}/run`  | Trigger monitor run                 | API Key |
| `GET`    | `/api/agent/monitoring/runs`    | List all runs                       | API Key |
| `GET`    | `/api/agent/monitoring/results` | List all results                    | API Key |
| `GET`    | `/api/agent/lists`              | List contact lists                  | API Key |
| `GET`    | `/api/agent/lists/{id}`         | Get contact list                    | API Key |
| `POST`   | `/mcp`                          | MCP server (Model Context Protocol) | API Key |
| `GET`    | `/api/health`                   | Health check                        | None    |

<Info>
  The public API is the **API-key** surface above (`/api/agent/*` and `/mcp`). Bulk operations, API-key management, webhooks, and workflows are managed from your **dashboard** and are documented for reference; those routes use session authentication rather than an API key.
</Info>

## Rate limits

| Endpoint              | Limit       | Window   |
| --------------------- | ----------- | -------- |
| `/api/agent/lookup`   | 60 requests | 1 minute |
| `/api/agent/validate` | 60 requests | 1 minute |
| `/api/agent/breaches` | 60 requests | 1 minute |
| `/api/agent/ip`       | 60 requests | 1 minute |
| `/api/agent/phone`    | 60 requests | 1 minute |
| `/api/agent/domain`   | 30 requests | 1 minute |
| `/api/agent/company`  | 30 requests | 1 minute |
| `/api/agent/google`   | 30 requests | 1 minute |
| `/api/agent/darkweb`  | 30 requests | 1 minute |
| `/api/agent/monitors` | 60 requests | 1 minute |
| `/api/webhooks/*`     | 30 requests | 1 minute |

When rate limited, the API returns `429 Too Many Requests` with these headers:

| Header                  | Description                                   |
| ----------------------- | --------------------------------------------- |
| `X-RateLimit-Limit`     | Maximum requests allowed in the window        |
| `X-RateLimit-Remaining` | Requests remaining in current window          |
| `X-RateLimit-Reset`     | Unix timestamp when the window resets         |
| `Retry-After`           | Seconds to wait before retrying (only on 429) |

## Response format

All endpoints return JSON. The agent endpoint uses compact single-letter keys to minimize token usage when consumed by AI agents.

### Standard errors

```json theme={"dark"}
{
  "error": "Invalid email address"
}
```

### Agent errors

```json theme={"dark"}
{
  "c": 400,
  "m": "bad email"
}
```

## Credits

Each lookup costs **1 credit**.

## Data pipeline

Each lookup runs multiple enrichment services **in parallel** for minimal latency:

```
Email Input
├── Profile Enrichment    → Identity, company, education, skills
├── Web Intelligence      → News, scholar, patents, videos, social links
├── Breach Detection      → Data breach history
├── Email Verification    → Deliverability check
└── Disposable Detection  → Throwaway email check

→ Merge & deduplicate results
→ Cache in database
→ Return enriched PersonInfo
```
