Endpoints
Find Leads
Local businesses by trade and town, each with its phone, website, address and the emails it publishes, ready for outreach.
POST
/v1/leads
Request
Send a JSON body with a URL (or a list) and any options. The response holds data and what the call cost.
import requestsr = requests.post( 'https://api.snoopscan.com/v1/leads', headers={'Authorization': 'Bearer sk_YOUR_KEY'}, json={ 'who': 'roofing contractors', 'where': 'Houston, TX', 'limit': 50 },)print(r.json())
const r = await fetch('https://api.snoopscan.com/v1/leads', { method: 'POST', headers: { Authorization: 'Bearer sk_YOUR_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ "who": "roofing contractors", "where": "Houston, TX", "limit": 50 }),});console.log(await r.json());
curl -X POST https://api.snoopscan.com/v1/leads \ -H 'Authorization: Bearer sk_YOUR_KEY' \ -H 'Content-Type: application/json' \ -d '{ "who": "roofing contractors", "where": "Houston, TX", "limit": 50}'
Returns job id · phone · website · emails · 4 credits a lead.
Parameters
The parameter list could not be loaded.
The example above is correct. Refresh in a moment for the full list.
Response
A success returns {"success": true, "data": {…}}. data holds the formats you asked for, the page's metadata, and a cost object with what the call was charged. A failure returns {"success": false, "error": {…}} with an error code. See Errors.
Failed requests are not charged.
Re-reading a page you already fetched, within
maxAge, is free. See Credits for every rate.