Everything in the dashboard is in the API
Lanes, keywords, checks, estimates, exports, leads, websites, workspaces, exclusions and webhooks. Run it from your own code, a script or an AI agent.
Plug it into what you already run
Pull leads into your CRM, push visitors to your sequencer, or let an AI agent run your lanes.
PullLeads to you
- REST APIJSON over HTTPS
- CLIOne-line install
- CSVSheets, Excel
PushAs it happens
- WebhooksSigned, to your CRM
- Google Tag ManagerVisitor ID tag
AI agentsRun your lanes
- MCP serverRemote MCP
- ClaudeOver MCP
- CursorOver MCP
The same export, three ways
- Free quote first. A dry run shows how many new people you'd get and the price, without buying.
- Pull what's new.
since=lastreturns only people you haven't pulled yet. - Keys per workspace, or one organization key that works across them all.
https://mcp.intentleads.si/mcp# A free quote first, then only people you don't havecurl -X POST https://intentleads.si/api/v1/exports \ -H "Authorization: Bearer $KEY" \ -d '{"lanes":["L1"],"max":500,"dry_run":true}' # Everything new since your last pullcurl "https://intentleads.si/api/v1/leads?since=last" \ -H "Authorization: Bearer $KEY"
Every lead says who they are, how to reach them, and why they're here
Intent, Search and website leads share one format: in the dashboard, the CSV, the API and the webhook.

- Business email
- m.thornton@northwindsurgical.com Valid
- Personal email
- maya.t•••••@gmail.com
- Mobile
- +1 (612) 555-0142 OK to call
- Mobile
- +1 (612) 555-0198 On DNC
- Direct phone
- +1 (612) 555-0100
- linkedin.com/in/maya-thornton
{
"person_id": "7c1e9b02-…-a42f",
"lane": "L1",
"first_name": "Maya",
"job_title": "VP Sales",
"company": "Northwind Surgical",
"business_email": "m.thornton@…",
"email_status": "valid",
"personal_email": "maya.t…@gmail.com",
"mobiles": [
{ "number": "+16125550142", "dnc": false },
{ "number": "+16125550198", "dnc": true }
],
"keywords_matched": ["selling to ambulatory…"],
"intent_strength": "high",
"seen_before": false
// …and 27 more fields
}A person ID that lasts
The same for someone across months and lanes, so your CRM can match them instead of creating duplicates.
Every mobile, flagged
All the mobiles we have, each with its own do-not-call flag, plus the business email's validation status.
The reason, attached
The topics they researched and how strongly, or the pages they visited. Your first line writes itself.
Every CSV column 70 in all
Visitors and removals, pushed to you
Add as many endpoints as you need and pick their events. Exports stay pull-only: a webhook never buys anyone.
Signed
In the Standard Webhooks format, so the open-source libraries check it in one line. Checking is up to you.
Retried until they land
A failing endpoint is retried with backoff and never holds up your others. Every attempt is logged.
Test with sample data
Send a signed test of any event, marked as a test, and see exactly what your endpoint answered.