curl --request GET \
--url https://intentleads.si/api/v1/activity \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://intentleads.si/api/v1/activity', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://intentleads.si/api/v1/activity"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"activity": [
{
"at": "2026-10-14T09:41:56.020871+00:00",
"action": "export.completed",
"text": "Exported 250 new people from L1, L2",
"by": "intent_leads_or_api"
},
{
"at": "2026-10-14T09:30:02.201563+00:00",
"action": "export.started",
"text": "Started an export of up to 250 new people from L1, L2",
"by": "intent_leads_or_api"
},
{
"at": "2026-10-13T16:05:12.774390+00:00",
"action": "keyword.approved",
"text": "\"selling to group purchasing organizations\" in L1 was approved and is live; people start showing up in 2–4 days",
"by": "intent_leads_or_api"
}
]
}{
"error": "unauthorized",
"message": "Send a valid API key as: Authorization: Bearer il_live_…"
}{
"error": "internal_error",
"message": "Something went wrong. Try again."
}List activity
Recent changes and events in your organization, newest first: keyword approvals, checks, exports, lane edits, company-list uploads, plan changes, keys, invites and team changes.
action is a stable dotted code, such as lane.created, lane.filters_changed, lane.strength_changed, lane.list_mode_changed, lane.check_queued, lanes.check_queued, lane.check_completed, keyword.added, keyword.removed, keyword.approved, keyword.rejected, company_list.uploaded, export.started, export.completed, api_key.created, api_key.updated, api_key.rotated, api_key.revoked, invite.created, invite.accepted, invite.revoked, member.role_changed, member.removed, plan.started, plan.upgraded, plan.change_requested, plan.canceled, suppression.applied and terms.accepted. text is one plain-English sentence.
Free. This doesn’t use any contacts from your plan.
curl --request GET \
--url https://intentleads.si/api/v1/activity \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://intentleads.si/api/v1/activity', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://intentleads.si/api/v1/activity"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"activity": [
{
"at": "2026-10-14T09:41:56.020871+00:00",
"action": "export.completed",
"text": "Exported 250 new people from L1, L2",
"by": "intent_leads_or_api"
},
{
"at": "2026-10-14T09:30:02.201563+00:00",
"action": "export.started",
"text": "Started an export of up to 250 new people from L1, L2",
"by": "intent_leads_or_api"
},
{
"at": "2026-10-13T16:05:12.774390+00:00",
"action": "keyword.approved",
"text": "\"selling to group purchasing organizations\" in L1 was approved and is live; people start showing up in 2–4 days",
"by": "intent_leads_or_api"
}
]
}{
"error": "unauthorized",
"message": "Send a valid API key as: Authorization: Bearer il_live_…"
}{
"error": "internal_error",
"message": "Something went wrong. Try again."
}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
How many items, 1 to 500. Out-of-range values are clamped.
1 <= x <= 500Response
Activity, newest first.
Show child attributes
Show child attributes