Lead generation
your AI agent can call.
The only affordable B2B leads platform with a native MCP server and a REST API. Search 136M+ contacts free, verify any email free, and reveal a verified email for one credit — refunded automatically if we can't verify it. Built for AI sales agents and developers.
Quickstart
Two ways in — connect over MCP so an AI agent can use it as a tool, or call the REST API directly. Both authenticate with the same API key.
1 · Get an API key
Sign in and open the API & MCP tab in your dashboard to create a key. Keys look like la_live_… — shown once, so copy it. The free tier includes 200 credits/month and can use the API.
2 · Connect over MCP (Claude, Cursor, …)
Add LeadsApp to your MCP client config. We use the mcp-remote bridge (the colon-with-no-space header avoids an arg-escaping bug in some clients).
{
"mcpServers": {
"leadsapp": {
"command": "npx",
"args": [
"mcp-remote",
"https://leadsapp.com/api/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": { "AUTH_HEADER": "Bearer la_live_YOUR_KEY" }
}
}
}Restart your client. Your agent now has seven tools: search_contacts, verify_contact, verify_bulk, check_contactability, reveal_contacts, get_credits, add_suppression.
3 · Or call the REST API
Search is free. Take an id from the results and reveal its verified email for one credit.
curl -X POST https://leadsapp.com/api/v1/search \
-H "Authorization: Bearer la_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"titles":["VP Sales","Head of Sales"],"excludeTitles":["Assistant"],"industries":["SaaS"],"countries":["United States"],"limit":25,"offset":0}'curl -X POST https://leadsapp.com/api/v1/reveal \
-H "Authorization: Bearer la_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"contactIds":["c1a2..."]}'MCP server
Streamable HTTP at https://leadsapp.com/api/mcp, authenticated with your API key as a bearer token. Tools run in your account and spend from your credit balance.
search_contactsfreeSearch the contact database. Multi-value arrays + excludes: q, titles[], excludeTitles[], titleExact, industries[], excludeIndustries[], countries[], excludeCountries[], regions[], excludeRegions[], cities[], companySizes[], domains[], hasEmail, limit, offset. Returns matches (with count/offset/hasMore for paging) WITHOUT emails — pass the ids to reveal_contacts.
verify_contactfreeVerify ANY email address — yours or sourced anywhere — into an honest status (valid/accept_all/risky/role_based/disposable/invalid/unknown), a 0-100 confidence, and the signals that fired (live MX + provider, company email-pattern + name match, Gravatar). Args: email, optional firstName/lastName/companyEmailPattern. No SMTP probing, so confidence is never 100.
check_contactabilityfreeCompliance verdict for a contact: whether your agent is permitted to contact this person, and on what legal basis. Args: email, optional jobTitle/country/region. Returns contactable (yes/caution/no), the applicable anti-spam regime (CASL/GDPR/CAN-SPAM), legalBasis, signals (business-vs-consumer email, role-relevance, region restriction, deliverability), notes, and a disclaimer. A compliance risk signal to gate your agent's send — not legal advice.
verify_bulkfreeVerify + legally-vet a whole LIST of contacts you already hold — from ANY source, not just our database. Args: contacts[] (up to 100), each with email + optional firstName/lastName/jobTitle/country/region/companyEmailPattern. Returns, per row, the verify verdict + the contactability/compliance verdict + a single 0-100 reachability score to gate a send on. Clean + compliance-check any list before your agent emails it.
reveal_contacts1 credit / deliverableReveal + verify emails for ids from search_contacts. Args: contactIds[]. Anything unverifiable is refunded automatically.
get_creditsfreeReturn the API key owner's current credit balance.
add_suppressionfreeAdd an email — or a whole domain — to your do-not-contact list. Args: value (email or bare domain), optional reason. Once added, check_contactability and reveal_contacts return contactable="no" for it. Use on unsubscribe / hard bounce so your agent never re-contacts them.
REST API
Base URL https://leadsapp.com/api/v1. Every request needs Authorization: Bearer la_live_….
/api/v1/searchfreeMulti-value filters (array = match any), most with excludes: q, titles[]/excludeTitles[], titleExact, industries[]/excludeIndustries[], countries[]/excludeCountries[], regions[]/excludeRegions[], cities[], companySizes[], domains[], hasEmail. limit ≤ 100, offset ≤ 4900 (hasMore flags another page). Emails are never returned here.
{
"count": 25,
"limit": 25,
"offset": 0,
"hasMore": true,
"results": [
{
"id": "c1a2...",
"fullName": "Jane Doe",
"jobTitle": "VP Sales",
"companyName": "Acme Co",
"companyDomain": "acme.com",
"companyIndustry": "Software",
"locationRegion": "Ontario",
"locationCountry": "Canada",
"hasEmail": 1
}
]
}/api/v1/reveal1 credit / deliverableBody { contactIds: [...] } (1–1000). Charges 1 credit per deliverable contact; non-deliverable and already-owned contacts are not charged. 402 if you're out of credits.
{
"revealed": [
{
"id": "c1a2...",
"email": "jane@acme.com",
"fullName": "Jane Doe",
"jobTitle": "VP Sales",
"companyName": "Acme Co",
"companyDomain": "acme.com",
"verifyStatus": "valid",
"confidence": 84
}
],
"creditsSpent": 1,
"creditsRefunded": 0,
"balance": 24
}/api/v1/mefreeYour current credit balance and plan — check quota before a big reveal.
curl https://leadsapp.com/api/v1/me \
-H "Authorization: Bearer la_live_YOUR_KEY"
# → { "credits": 24, "plan": "free", "subscriptionStatus": null }Credits & limits
- ›Search is always free. One credit reveals one deliverable contact.
- ›Anything we can't verify is refunded automatically — you never pay for an email we won't stand behind. Re-revealing a contact you already own is free.
- ›Free: 200 credits/month. Paid plans 750 → 10,000 credits/month — see pricing.
- ›Rate limits: search 60/min, reveal 3/min. A
429means slow down; a402means top up.
About the data
~136M B2B business contacts across the US and Canada, weighted toward small-business owners and operators. Emails are verified on reveal, not pre-verified — each one is checked for a live mail domain, pattern/name match, and disposable filtering at the moment you reveal it, and refunded if it doesn't pass. Contacts in CA, TX, VT, OR and the EU are excluded for compliance.
136M+ contacts.
Free to search.
Create a free account — 200 reveal credits every month, no card required. Search is always free; credits are only spent when you reveal an email. Or drop your email below for product updates.
Unsubscribe anytime. No spam.