curl --request POST \
--url https://intentleads.si/api/v1/lanes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Hospital supply sellers",
"audience": "Owners and sales leaders at US medical supply companies with 20 to 300 staff",
"keywords": [
"selling to group purchasing organizations",
"hospital supply chain contracts",
"selling to ambulatory surgery centers"
],
"us_only": true,
"employees": {
"min": 20,
"max": 300
},
"industries": [
"medical equipment manufacturing",
"medical device",
"wholesale"
],
"seniority": [
"cxo",
"vp",
"director"
],
"titles_exclude": [
"intern",
"assistant"
],
"topics_to_leave_out": [
"job openings"
],
"exclude_companies": [
"staffing firms"
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Hospital supply sellers',
audience: 'Owners and sales leaders at US medical supply companies with 20 to 300 staff',
keywords: [
'selling to group purchasing organizations',
'hospital supply chain contracts',
'selling to ambulatory surgery centers'
],
us_only: true,
employees: {min: 20, max: 300},
industries: ['medical equipment manufacturing', 'medical device', 'wholesale'],
seniority: ['cxo', 'vp', 'director'],
titles_exclude: ['intern', 'assistant'],
topics_to_leave_out: ['job openings'],
exclude_companies: ['staffing firms']
})
};
fetch('https://intentleads.si/api/v1/lanes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://intentleads.si/api/v1/lanes"
payload = {
"name": "Hospital supply sellers",
"audience": "Owners and sales leaders at US medical supply companies with 20 to 300 staff",
"keywords": ["selling to group purchasing organizations", "hospital supply chain contracts", "selling to ambulatory surgery centers"],
"us_only": True,
"employees": {
"min": 20,
"max": 300
},
"industries": ["medical equipment manufacturing", "medical device", "wholesale"],
"seniority": ["cxo", "vp", "director"],
"titles_exclude": ["intern", "assistant"],
"topics_to_leave_out": ["job openings"],
"exclude_companies": ["staffing firms"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Create a lane
Creates a lane with the next free code (L1, L2, …) and sends each keyword for approval as its own topic. Approval usually takes about a day; once a keyword is live, people show up within 2 to 4 days. Nothing is bought until you export.
New lanes start with min_strength medium and company_list_mode narrow; change them with PATCH /api/v1/lanes/{code} (they’re ignored here). us_only defaults to true.
Good to know
- Keywords are split on commas and semicolons as well, deduplicated, and kept only if 3 to 120 characters long (others are dropped without an error). Up to 50.
- Industries must be catalog values (
GET /api/v1/catalog); unknown industries or seniority values are an error. - List filters over their limit are cut to the limit. Excluded industries that are also in
industriesare dropped. keywords_sent_for_approvalcan be lower thankeywords: the rest are queued and sent automatically.- Up to 30 lanes per organization.
Free. This doesn’t use any contacts from your plan.
curl --request POST \
--url https://intentleads.si/api/v1/lanes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Hospital supply sellers",
"audience": "Owners and sales leaders at US medical supply companies with 20 to 300 staff",
"keywords": [
"selling to group purchasing organizations",
"hospital supply chain contracts",
"selling to ambulatory surgery centers"
],
"us_only": true,
"employees": {
"min": 20,
"max": 300
},
"industries": [
"medical equipment manufacturing",
"medical device",
"wholesale"
],
"seniority": [
"cxo",
"vp",
"director"
],
"titles_exclude": [
"intern",
"assistant"
],
"topics_to_leave_out": [
"job openings"
],
"exclude_companies": [
"staffing firms"
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Hospital supply sellers',
audience: 'Owners and sales leaders at US medical supply companies with 20 to 300 staff',
keywords: [
'selling to group purchasing organizations',
'hospital supply chain contracts',
'selling to ambulatory surgery centers'
],
us_only: true,
employees: {min: 20, max: 300},
industries: ['medical equipment manufacturing', 'medical device', 'wholesale'],
seniority: ['cxo', 'vp', 'director'],
titles_exclude: ['intern', 'assistant'],
topics_to_leave_out: ['job openings'],
exclude_companies: ['staffing firms']
})
};
fetch('https://intentleads.si/api/v1/lanes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://intentleads.si/api/v1/lanes"
payload = {
"name": "Hospital supply sellers",
"audience": "Owners and sales leaders at US medical supply companies with 20 to 300 staff",
"keywords": ["selling to group purchasing organizations", "hospital supply chain contracts", "selling to ambulatory surgery centers"],
"us_only": True,
"employees": {
"min": 20,
"max": 300
},
"industries": ["medical equipment manufacturing", "medical device", "wholesale"],
"seniority": ["cxo", "vp", "director"],
"titles_exclude": ["intern", "assistant"],
"topics_to_leave_out": ["job openings"],
"exclude_companies": ["staffing firms"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Authorizations
An Intent Leads API key, e.g. il_live_ followed by 32 letters and digits. Create one on the API and CLI page of the dashboard.
Body
2 to 80 characters.
2 - 80Who you sell to in this lane: at least a short sentence (10+ characters, cut at 400).
10What people in this lane research, one topic per keyword; each is sent for approval as its own topic. At least one valid keyword is required. Entries are also split on commas and semicolons and deduplicated; keywords shorter than 3 or longer than 120 characters are dropped, and only the first 50 are kept.
1Only people at companies headquartered in the US. Defaults to true on create.
Company size range, both ends from 1 to 100,000 and at most 5,000 apart, e.g. {"min": 20, "max": 300}. Send both or neither. null means any size.
Show child attributes
Show child attributes
Industry values from GET /api/v1/catalog (case-insensitive). Unknown values are an error. Up to 60; extra entries are dropped.
Industries to leave out where the industry list isn't applied (the company-list path, or a lane with no industries). Catalog values. Up to 80; extra entries are dropped.
Seniority levels. cxo is C-suite and owners.
cxo, vp, director, manager, staff Job title must contain one of these. Stored lowercase. Up to 60; extra entries are dropped.
Job title must not contain any of these. Stored lowercase. Up to 80; extra entries are dropped.
Topics to leave out of the keyword topics, e.g. job openings. Up to 40; extra entries are dropped.
Kinds of companies to leave out, e.g. staffing firms. Up to 20; extra entries are dropped.