API & MCP

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.

Start free — 200 credits

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 four tools: search_contacts, verify_contact, reveal_contacts, get_credits.

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_contactsfree

Search 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_contactfree

Verify 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_contactabilityfree

Compliance 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.

reveal_contacts1 credit / deliverable

Reveal + verify emails for ids from search_contacts. Args: contactIds[]. Anything unverifiable is refunded automatically.

get_creditsfree

Return the API key owner's current credit balance.

add_suppressionfree

Add 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_….

POST/api/v1/searchfree

Multi-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
    }
  ]
}
POST/api/v1/reveal1 credit / deliverable

Body { 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
}
GET/api/v1/mefree

Your 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 429 means slow down; a 402 means 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.

Start free

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.