/v1/contacts/search2 unitsEMPTY · COMING SOONContacts - Search
Search the verified-people directory. Returns an empty page with a coverage_note today because the directory is still being built. The response shape matches what you'll get once it ships, so you can wire your client now and it will start returning rows automatically.
Request
curl -X POST https://data.leadleap.net/v1/contacts/search \
-H "Authorization: Bearer $LEADLEAP_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "investment officer",
"filters": {"country": ["US"], "state": ["FL"], "has_email": true},
"limit": 25
}'Response (today)
{
"results": [],
"total": 0,
"returned": 0,
"type": "contacts",
"sources_searched": [],
"coverage_note": "Contact data is still being prepared and will appear on
this endpoint when it ships. Response shape will not change - clients
written against the empty response will start returning rows automatically.",
"warnings": ["contact directory not yet populated"]
}The HTTP status is 200, not 503. "Empty" is a valid answer. Your client should treat zero results the same way it would treat any other zero-match search - no special branching required.
Why not 503. 503 implies a temporary outage you should retry. The contact directory is intentionally not populated yet; retrying won't change anything. An empty 200 with a coverage note is the honest signal.
Need contact data today. The legacy /v1/find with type: "contacts" still searches the broader contact set until it's removed after 2026-06-16.