Get Agent
Read a single agent configured for your workspace.
Returns a single agent by its id, with its current configuration. Returns 404 when the agent does not exist.
Get agent
Path parameters
| Parameter | Type | Description |
|---|---|---|
| agent_id | integer | Identifier of the agent. |
Example request
curl "https://api.getsillage.com/api/v2/agents/42" \
-H "Authorization: Bearer $SILLAGE_API_KEY"Example response
{
"data": {
"id": 42,
"name": "LinkedIn keyword monitor",
"type": "keyword_detection",
"enabled": false,
"schedulable": false,
"schedule": null,
"parameters": {
"tracking_keywords": ["fundraising", "series a", "hiring sales"],
"start_date": "2026-01-01"
},
"watchlist_kind": "company",
"watchlist_id": 128,
"created_at": "2026-06-18T10:00:00.000Z",
"updated_at": "2026-06-18T10:00:00.000Z"
}
}Example response — competitor agent
{
"data": {
"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"
}
}Response fields
| Field | Type | Description |
|---|---|---|
| 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, competitor_activity, job_update, content_engagement, champion_tracking, influencer_engagement, job_posting, a semantic watchlist type (competitor, partner, customer, influencer, champion), or unconfigured (agent with no watchlist — not yet set up, or its watchlist was unbound; empty parameters, null watchlist fields). |
| 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.watchlist_kind | string | Kind (company/profile) of the bound watchlist, or null when the agent is unbound. |
| data.watchlist_id | integer | Id of the bound watchlist, or null when the agent is unbound. |
| data.created_at | string | ISO 8601 creation timestamp. |
| data.updated_at | string | ISO 8601 last-update timestamp. |
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. |
| start_date | string | ISO 8601 date — only posts published after this date are scraped. |
keyword_post_search
| Field | Type | Description |
|---|---|---|
| tracking_keywords | array<string> | Keywords Sillage monitors on LinkedIn via a broad search. |
| 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. |
job_posting
| Field | Type | Description |
|---|---|---|
| job_titles | array<string> | Job titles to watch for in postings. |
| search_strings | array<string> | Free-text search strings for job posting content. |
| job_locations | array<string> | Geographic filters for job postings. |
| published_at | string | ISO 8601 date — only postings published after this date. |
| target_top_accounts_only | boolean | Restrict to top-account companies only. |
competitor_activity, content_engagement, champion_tracking
These types share the common targeting parameter set:
| 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. |
| 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. |
influencer_engagement
Same common targeting fields as above, plus:
| Field | Type | Description |
|---|---|---|
| influencer_keywords | array<string> | Keywords that identify influencer content. |
competitor
| Field | Type | Description |
|---|---|---|
| mode | enum (lead_discovery, account_monitoring, all) | What the agent does: lead_discovery (surfaces both the people the competitor's team engages with and the people who engage with their posts, wherever they work), account_monitoring (only detects interactions between the competitor and your target accounts, in both directions), or all (both). Omitted when never set. |
| target_group | enum (prospects, customers, all) | 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. |
Partner, customer, influencer, and champion watchlist agents never carry any of these three fields — mode and the target-group fields are competitor-only.
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.
Errors
| Status | Description |
|---|---|
| 401 | The API key is missing or invalid. |
| 404 | The agent does not exist. |
| 422 | Invalid agent_id — must be a positive integer. |
| 429 | Too many requests. |