Get a search lane's estimate
curl --request GET \
--url https://intentleads.si/api/v1/lanes/{code}/estimate \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://intentleads.si/api/v1/lanes/{code}/estimate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://intentleads.si/api/v1/lanes/{code}/estimate"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"lane": "S1",
"estimate": {
"status": "done",
"people": 41382,
"requested_at": "2026-10-14T06:12:41.528311+00:00",
"finished_at": "2026-10-14T06:12:41.528311+00:00",
"approximate": false,
"sample": [
{
"seniority": "VP+",
"department": "Executive",
"company": "Example Family Medicine",
"industry": "Medical Practices",
"employees": 34,
"city": "Tampa",
"state": "Florida",
"has_business_email": true,
"has_phone": true,
"has_linkedin": false
}
],
"error": null,
"note": "People who match the lane's filters now, leaving out anyone you've already bought, your exclusions and removals. Estimates usually take under an hour and are free."
}
}{
"error": "unauthorized",
"message": "Send a valid API key as: Authorization: Bearer il_live_…"
}{
"error": "lane_not_found",
"message": "No lane L9."
}{
"error": "not_a_search_lane",
"message": "L1 is an intent lane."
}{
"error": "internal_error",
"message": "Something went wrong. Try again."
}Get a search lane's estimate
The latest free estimate for a search lane: how many people match now, with a masked sample.
Free. This doesn’t spend your balance.
GET
/
api
/
v1
/
lanes
/
{code}
/
estimate
Get a search lane's estimate
curl --request GET \
--url https://intentleads.si/api/v1/lanes/{code}/estimate \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://intentleads.si/api/v1/lanes/{code}/estimate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://intentleads.si/api/v1/lanes/{code}/estimate"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"lane": "S1",
"estimate": {
"status": "done",
"people": 41382,
"requested_at": "2026-10-14T06:12:41.528311+00:00",
"finished_at": "2026-10-14T06:12:41.528311+00:00",
"approximate": false,
"sample": [
{
"seniority": "VP+",
"department": "Executive",
"company": "Example Family Medicine",
"industry": "Medical Practices",
"employees": 34,
"city": "Tampa",
"state": "Florida",
"has_business_email": true,
"has_phone": true,
"has_linkedin": false
}
],
"error": null,
"note": "People who match the lane's filters now, leaving out anyone you've already bought, your exclusions and removals. Estimates usually take under an hour and are free."
}
}{
"error": "unauthorized",
"message": "Send a valid API key as: Authorization: Bearer il_live_…"
}{
"error": "lane_not_found",
"message": "No lane L9."
}{
"error": "not_a_search_lane",
"message": "L1 is an intent lane."
}{
"error": "internal_error",
"message": "Something went wrong. Try again."
}Authorizations
Headers
Only with an organization key: the workspace to act in (its id; ?workspace=<id> works too). Lanes, leads, exports, lists, websites and webhooks live in workspaces. Without it, an organization key acts in its only workspace, or gets 400 workspace_required (with the list of workspaces) when it has several. Workspace keys don't need it. On keys, team and activity it switches from the organization's own to that workspace's.