Replace the company list
curl --request PUT \
--url https://intentleads.si/api/v1/company-list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: text/csv' \
--data 'company_domain,company_linkedin_url
example.com,https://www.linkedin.com/company/example
example.org,
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'text/csv'},
body: 'company_domain,company_linkedin_url\nexample.com,https://www.linkedin.com/company/example\nexample.org,\n'
};
fetch('https://intentleads.si/api/v1/company-list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://intentleads.si/api/v1/company-list"
payload = "company_domain,company_linkedin_url\nexample.com,https://www.linkedin.com/company/example\nexample.org,\n"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "text/csv"
}
response = requests.put(url, data=payload, headers=headers)
print(response.text){
"company_list": {
"companies": 1830,
"domains": 1800,
"linkedin_pages": 30,
"dropped_invalid": 12,
"duplicates_merged": 4,
"source": "Q4 target accounts",
"uploaded_at": "2026-10-12T15:04:22.731904+00:00"
}
}
Replace the company list
Replaces your company list; the previous one is deleted. Send either:
- CSV or plain text (
text/csvortext/plain): one domain or company LinkedIn URL per line, or a CSV whose header row has a domain column (domain,company_domain,website,company_website,url,company domainorcompany website) and/or a company LinkedIn column (company_linkedin_url,company_linkedin,linkedin_company_url,company linkedinorcompany linkedin url). Columns can be separated by commas, tabs or semicolons. Up to 60 MB. Name the list with?name=. - JSON (
application/json):{"domains": [...], "linkedin": [...], "name": "..."}.
Websites are cleaned to the bare domain (https://www.example.com/about becomes example.com). Email addresses and invalid entries are dropped and counted, and duplicates are merged.
Good to know
- Lanes match your list on domains. LinkedIn company pages are stored and counted, but aren’t used to match people, so a list of only LinkedIn pages doesn’t change counts or exports. In CSV rows that have both, only the domain is kept.
- Counts don’t change until the next check; queue one with
POST /api/v1/checks.
Free. This doesn’t use any contacts from your plan.
PUT
/
api
/
v1
/
company-list
Replace the company list
curl --request PUT \
--url https://intentleads.si/api/v1/company-list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: text/csv' \
--data 'company_domain,company_linkedin_url
example.com,https://www.linkedin.com/company/example
example.org,
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'text/csv'},
body: 'company_domain,company_linkedin_url\nexample.com,https://www.linkedin.com/company/example\nexample.org,\n'
};
fetch('https://intentleads.si/api/v1/company-list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://intentleads.si/api/v1/company-list"
payload = "company_domain,company_linkedin_url\nexample.com,https://www.linkedin.com/company/example\nexample.org,\n"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "text/csv"
}
response = requests.put(url, data=payload, headers=headers)
print(response.text){
"company_list": {
"companies": 1830,
"domains": 1800,
"linkedin_pages": 30,
"dropped_invalid": 12,
"duplicates_merged": 4,
"source": "Q4 target accounts",
"uploaded_at": "2026-10-12T15:04:22.731904+00:00"
}
}
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.
Query Parameters
A name for the list when you send CSV or text (default API upload). For JSON, use name in the body.
Body
text/csvtext/plainapplication/json
The body is of type string.
Response
The new list.
Show child attributes
Show child attributes