67Leads / Docs / API

67Leads HTTP API

The 67Leads HTTP API: free search and counts with masked contacts, a free sample, export quotes, and CSV exports in the column layout of Instantly, Smartlead, lemlist, GoHighLevel, Clay, HubSpot or Apollo.

Basics

Base URL https://67leads.com. Requests and replies are JSON, except the export, which returns CSV. Authenticate with X-API-Key: YOUR_API_KEY; get the key from the app (sign in, then Copy API key). Search, counts and the sample work without a key. The same key works for the MCP server.

Endpoints

EndpointAPI keyWhat it does
GET /api/parse?q=NoWhat a plain-English search means (niche, city, state, filters) without running it.
POST /api/searchOptionalMatching businesses with counts and a one-line answer: 25 a page by default, up to 100 (limit, offset, sort). Contacts are masked unless you own the lead.
POST /api/sampleNoUp to 5 unmasked rows for one niche in one city; 3 different samples a day per IP.
GET /api/verticalsNoEvery niche, with leads, states and emails in stock.
GET /api/coverage?vertical=NoLeads, emails and owner names per state.
GET /api/export/presetsNoThe CSV layouts an export can be written in.
POST /api/export/quoteRequiredWhat an export would cost: matching, already owned, new rows, credits, daily allowance.
POST /api/exportRequiredTakes the leads and returns CSV, up to 25,000 rows a request.
GET /api/meRequiredYour plan, credits, daily allowance and leads owned.
POST /api/jobsRequiredAsk for a niche and area we do not cover yet: {"vertical": "...", "areas": ["..."]}.
GET /api/jobs/<id>NoStatus of a requested build.

Filters

Search, sample, quote and export all take the same body: q, vertical, state, city, company, has_email, email_quality, personal_email, has_owner, has_website, no_website, site_dead, has_phone, sms_ready, min_rating, max_rating, min_reviews, max_reviews, plus relevance (sellable by default, or core). q is parsed first, and explicit fields win over what the sentence says. has_phone is on unless you turn it off.

curl https://67leads.com/api/search \
  -H "Content-Type: application/json" \
  -d '{"q": "tree service in Denver with no website", "limit": 10}'

Exports and credits

An export takes the new leads your plan allows right now, charges for them once and records them as yours. Leads you already own come back free and do not count against the daily cap. The response headers say what happened: X-Rows-Exported, X-Credits-Charged, X-Credits-Remaining, X-Daily-Remaining, X-Plan, X-Export-Preset. Call /api/export/quote with the same body first to see the price. Plans and prices are on the pricing page.

curl https://67leads.com/api/export \
  -H "X-API-Key: $LEADS67_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "roofers in Dallas TX", "has_email": true, "limit": 500, "preset": "instantly"}' \
  -o roofers-dallas.csv

CSV presets

Send "preset" in the body (or ?preset=) to get the file with the column names a tool's importer expects, and the owner's name split into first and last. The first name is left blank when there is no owner name, so your sequencer's fallback (for example {{first_name|there}} in Instantly) fills it. Presets marked email only are narrowed to leads with an email, at your email_quality, before the quote and the charge.

presetForEmail onlyColumns
67leadsDefaultNoEvery column (the layout the app has always exported)
instantlyInstantlyYesEmail, First Name, Last Name, Company Name, Phone, Website, Location, City, State, Category, Pitch, Email_Status, Email_Type, No_Website, Site_Down, Timezone
smartleadSmartleadYesemail, first_name, last_name, company_name, phone_number, website, location, city, state, category, pitch_tags, email_status, email_type, no_website, site_down, timezone
lemlistlemlistYesemail, firstName, lastName, companyName, companyDomain, phone, website, city, state, category, pitchTags, emailStatus, noWebsite, siteDown, timezone
gohighlevelGoHighLevelNoFirst Name, Last Name, Email, Phone, Business Name, Website, City, State, Postal Code, Source, Tags
clayClayNoCompany Name, Domain, Website, First Name, Last Name, Full Name, Email, Email Status, Email Verified, Phone, City, State, Postal Code, Category, Pitch Tags, No Website, Site Down, Last Checked
hubspotHubSpotYesEmail, First name, Last name, Company name, Phone number, Website URL, City, State/Region, Postal code, Industry
apolloApolloNoFirst Name, Last Name, Email, Company Name, Company Website, Corporate Phone, City, State, Industry

Errors

Errors are JSON: {"error": "a sentence saying why"}.