List Agents
List the agents configured for your workspace.
Returns a paginated list of your agents — keyword detection, job-change tracking, champion tracking, and interaction agents (competitor, partner, customer, influencer, and champion).
List agents
Query parameters
| Parameter | Type | Description |
|---|---|---|
| page | integer | Page number (starts at 1). Defaults to 1. |
| page_size | integer | Number of agents per page. Defaults to 10, max 25. |
Example request
curl "https://api.getsillage.com/api/v2/agents?page=1&page_size=10" \
-H "Authorization: Bearer $SILLAGE_API_KEY"Example response
{
"data": [
{
"id": 42,
"name": "LinkedIn keyword monitor",
"type": "keyword_detection",
"enabled": true,
"schedulable": false,
"schedule": null,
"parameters": {
"tracking_keywords": ["fundraising", "series a", "hiring sales"],
"start_date": "2026-01-01"
},
"created_at": "2026-06-18T10:00:00.000Z",
"updated_at": "2026-06-18T10:00:00.000Z"
},
{
"id": 43,
"name": "Job Updates",
"type": "job_update",
"enabled": true,
"schedulable": false,
"schedule": null,
"parameters": {
"job_titles": ["VP Sales", "Head of Growth"],
"seniority_levels": ["vp", "director"],
"target_persona": ["Sales", "Revenue"]
},
"created_at": "2026-06-18T10:00:00.000Z",
"updated_at": "2026-06-18T10:00:00.000Z"
},
{
"id": 57,
"name": "Acme competitor watch",
"type": "competitor",
"enabled": true,
"schedulable": true,
"schedule": null,
"parameters": {
"mode": "all",
"target_group": "prospects",
"resolved_target_persona": ["sales", "ventes", "account executive", "..."]
},
"watchlist_kind": "company",
"watchlist_id": 12,
"created_at": "2026-06-18T10:00:00.000Z",
"updated_at": "2026-08-26T09:15:00.000Z"
}
],
"meta": {
"pagination": {
"page": 1,
"page_size": 10,
"page_count": 1,
"total": 3
}
}
}Response fields
| Field | Type | Description |
|---|---|---|
| data | array | The page of agents. |
| data[].id | integer | Identifier of the agent. |
| data[].name | string | Display name of the agent. |
| data[].type | string | Agent type. One of: keyword_detection, keyword_post_search, job_posting_keyword_detection, job_update, champion_tracking, competitor, partner, customer, influencer, champion, or unconfigured (agent with no watchlist — not yet set up, or its watchlist was unbound; empty parameters, null watchlist_kind/watchlist_id). |
| data[].enabled | boolean | Whether the agent is currently active. |
| data[].schedulable | boolean | Whether this agent can run on a weekly schedule. true for keyword_post_search agents, and for competitor agents whose mode is lead_discovery or all; false for every other agent type. Read-only — setting schedule on an agent where this is false returns 422. |
| data[].schedule | object | null | The agent's weekly run schedule. { "cadence": "weekly" } when weekly runs are on, null when they are off. weekly is the only cadence supported today. |
| data[].parameters | object | Type-dependent parameters. See the parameters shape table below. |
| data[].created_at | string | ISO 8601 creation timestamp. |
| data[].updated_at | string | ISO 8601 last-update timestamp. |
| meta.pagination.page | integer | Current page number. |
| meta.pagination.page_size | integer | Number of agents per page. |
| meta.pagination.page_count | integer | Total number of pages. |
| meta.pagination.total | integer | Total number of v2 agents in your workspace. |
Parameters shape by type
The parameters object fields depend on the agent type. All fields are optional in the response (legacy rows may be sparse).
keyword_detection
| Field | Type | Description |
|---|---|---|
| tracking_keywords | array<string> | Keywords Sillage monitors on LinkedIn, scoped to your target accounts. |
| start_date | string | ISO 8601 date — only posts published after this date are scraped. |
keyword_post_search
Monitors LinkedIn broadly for the given keywords — not limited to your target accounts.
| Field | Type | Description |
|---|---|---|
| tracking_keywords | array<string> | Keywords Sillage monitors across LinkedIn. |
| start_date | string | ISO 8601 date — only posts published after this date are scraped. |
job_posting_keyword_detection
| Field | Type | Description |
|---|---|---|
| tracking_keywords | array<string> | Keywords Sillage monitors in your tracked companies' job postings. |
job_update
| Field | Type | Description |
|---|---|---|
| job_titles | array<string> | Job titles that trigger detection. |
| seniority_levels | array<string> | Seniority levels to filter on. |
| company_domains_to_scrape | array<string> | Target company domains. |
| target_persona | array<string> | Target persona labels. |
| target_persona_locations | array<string> | Geographic filters for target personas. |
| interested_by | object | { prospects: boolean, customers: boolean } filters. |
| keywords_for_social_detection | array<string> | Keywords used for social post matching. |
| author_roles | array<string> | Author role filters. |
| author_industries | array<string> | Author industry filters. |
| target_linkedin_profiles | array<string> | Specific LinkedIn profile URLs to track. |
champion_tracking
Detects when a tracked champion leaves their company, changes company, or is promoted. It binds a profile watchlist of type champion — the same list a champion agent can bind to, simultaneously.
| Field | Type | Description |
|---|---|---|
| company_domains_to_scrape | array<string> | Target company domains. |
| target_persona | array<string> | Target persona labels. |
| target_persona_locations | array<string> | Geographic filters for target personas. |
| interested_by | object | { prospects: boolean, customers: boolean } filters. |
| author_roles | array<string> | Author role filters. |
| author_industries | array<string> | Author industry filters. |
| target_linkedin_profiles | array<string> | Specific LinkedIn profile URLs to track. |
Legacy rows may carry these fields; a newly created champion_tracking agent has an empty parameters object ({}) since the create request accepts no parameters for this type.
competitor
| Field | Type | Description |
|---|---|---|
| mode | string | What the agent does: lead_discovery (surfaces both the people the competitor's team comments on or reacts to, and the people who comment on or react to their posts, wherever they work), account_monitoring (only detects interactions between the competitor and your target accounts, in both directions), or all (both). Absent means account_monitoring. |
| target_group | string | null | Which people at the tracked competitor a lead-discovery run watches: prospects (their new-business side: sales, account executives, SDR/BDR, revenue and exec leadership), customers (their account side: account management, customer success, support), or all (both). |
| resolved_target_persona | array<string> | The exact job titles the agent's next discovery run searches for. Always present, so this agent's actual targeting is never invisible even when target_group reads null or has never been set. |
competitor_activity and content_engagement are labels carried by individual signal detections (see the Signals endpoint), never an agent type — a competitor agent always reads back as type: "competitor", whatever its mode.
partner, customer, influencer, champion
These interaction agents have no additional parameters — parameters is always an empty object ({}).
Errors
| Status | Description |
|---|---|
| 401 | The API key is missing or invalid. |
| 422 | Invalid page or page_size query parameter. |
| 429 | Too many requests. |