Skip to main content

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.

Limits by endpoint

Each endpoint has an independent rate limit based on requests per minute per API key:
EndpointLimitWindow
/api/agent/lookup60 req1 min
/api/agent/validate60 req1 min
/api/agent/breaches60 req1 min
/api/agent/ip60 req1 min
/api/agent/domain30 req1 min
/api/agent/company30 req1 min
/api/agent/google30 req1 min
/api/agent/darkweb30 req1 min
/api/agent/monitors/*60 req1 min
/api/webhooks/*30 req1 min
Bulk endpoints5 req1 min

Response headers

Every response includes rate limit headers:
HeaderDescriptionExample
X-RateLimit-LimitMax requests in the current window60
X-RateLimit-RemainingRequests remaining42
X-RateLimit-ResetUnix timestamp when the window resets1716134460
When you’re rate limited (HTTP 429), an additional header is returned:
HeaderDescriptionExample
Retry-AfterSeconds until you can retry12

Handling rate limits

Exponential backoff

The recommended strategy is exponential backoff with the Retry-After header:
import time
import requests

def lookup_with_retry(email, api_key, max_retries=3):
    url = "https://encrata.com/api/agent/lookup"
    headers = {"Authorization": f"Bearer {api_key}"}

    for attempt in range(max_retries):
        resp = requests.post(url, headers=headers, json={"e": email})

        if resp.status_code == 429:
            retry_after = int(resp.headers.get("Retry-After", 2 ** attempt))
            time.sleep(retry_after)
            continue

        return resp.json()

    raise Exception("Max retries exceeded")

Best practices

Respect Retry-After

Always use the Retry-After header value instead of a fixed delay.

Spread requests

Distribute requests evenly across the window rather than bursting.

Use bulk endpoints

For high-volume lookups, use bulk endpoints instead of individual calls.

Monitor remaining

Check X-RateLimit-Remaining to preemptively slow down before hitting limits.