Base URL and routes
Use https://mcp.enricho.co. This reference describes REST, not the MCP transport or dashboard APIs. Authenticate with an API key and send JSON withContent-Type: application/json.
The plan list needs no authentication. All example data is synthetic and all credential/ID placeholders must be replaced locally.
Response envelope
Responses use the actual HTTP status and{success, result, message}. Search records are in result.results, not a top-level array. Empty results are a successful response, not a 404:
Preview and full search
Each full retrieval costs credits again, including repeats and continuation pages. A 20-record page costs 20 credits; an empty page costs 0. Pages are prepared before an atomic full-page debit and released only after confirmation. Insufficient balance returns 402 with no records and no credits deducted; reduce
limit or buy credits.
Free previews share a per-user daily allowance across person/company searches and keys. Even an empty preview consumes an attempt. Default allowances are Free 100, Pro 1,000, Growth 5,000, Scale 20,000 and Enterprise 20,000 per UTC day; deployment settings can change them. Unknown plans use the Free cap; if the plan cannot be retrieved, previews also use the Free cap. If preview counting is unavailable, previews fail closed with 503 rather than silently becoming unlimited. On a daily-cap 429, wait until midnight UTC or use a paid full search. Plan changes can take up to five minutes to affect the preview allowance.
Pagination
- Send filters with
limitfrom 1–100 and no cursor. Omitted or 0 uses 20. - If
result.has_moreis true, resend the same filters withcursorset toresult.next_cursor. - Stop when
has_moreis false. The finalnext_cursoris empty.
total_estimate nor total_capped.
Previews always return an empty cursor. For full retrieval, use the preview’s IDs or repeat its filters with preview: false.
Errors and retries
Errors containsuccess: false, result.code and a human-readable message. Branch on status and code, not exact message text. Illustrative error:
Do not blindly retry paid search after a timeout, lost response or unconfirmed-charge 503: a debit may already have completed. Check usage first. Every public retry is a new retrieval; there is no public idempotency-key contract. No records are released when credit confirmation fails.