Get a signal setup's stats
See what one of your signal setups found over the last 90 days.
Returns what one of your signal setups found over the last 90 days: how many signals, on how many accounts, how many of those accounts are on a customer or prospect list, the credits committed (including credits on hold), one count per week, and the latest signal. Only top-priority signals are counted, the same ones POST /v3/signals/query returns.
Use the id returned by List signal setups or Set up a signal. This ID is specific to your environment.
Route
Access modes
Use a workspace API key. The workspace is inferred from the key.
Authorization: Bearer sk_live_...Path parameters
| Parameter | Type | Description |
|---|---|---|
| id | integer | ID of the signal setup, from the list or create endpoint. Specific to your environment. |
Example request
curl "https://api.getsillage.com/api/v3/signal-setups/42/stats" \
-H "Authorization: Bearer $SILLAGE_API_KEY"Success response
Status: 200 OK
{
"data": {
"signal_setup_id": 42,
"period_start": "2026-07-11T09:30:00.000Z",
"period_end": "2026-10-09T09:30:00.000Z",
"signals_found": 18,
"accounts_reached": 11,
"key_accounts": 4,
"new_accounts": 7,
"credits_spent": 36,
"weeks": [
{ "start": "2026-07-11T09:30:00.000Z", "signals_found": 0 },
{ "start": "2026-07-17T09:30:00.000Z", "signals_found": 1 },
{ "start": "2026-10-02T09:30:00.000Z", "signals_found": 3 }
],
"latest_signal": {
"id": 9021,
"signal_type": "keyword_mention",
"signal_date": "2026-10-08T00:00:00.000Z",
"detected_at": "2026-10-08T14:02:11.000Z",
"source_url": "https://www.linkedin.com/feed/update/urn:li:activity:7000000000000000000",
"lead": {
"id": 311,
"full_name": "Jane Doe",
"title": "VP Sales",
"photo_url": "https://example.com/jane.jpg",
"linkedin_url": "https://www.linkedin.com/in/jane-doe"
},
"company": { "id": 57, "name": "Acme" },
"details": {
"post_text": "We are looking for a new sales tool.",
"action_date": null,
"interaction": null,
"comment_text": null,
"counterpart_name": null,
"counterpart_role": null,
"counterpart_company": null,
"job_title": null,
"new_role": null,
"new_company": null,
"previous_role": null,
"previous_company": null,
"keywords": ["sales tool"]
}
}
}
}Response fields
| Field | Type | Description |
|---|---|---|
| data.signal_setup_id | integer | ID of the signal setup. Specific to your environment. |
| data.period_start | string | Start of the 90-day period. |
| data.period_end | string | End of the period, the moment of the request. |
| data.signals_found | integer | Top-priority signals this setup found in the period, the same ones POST /v3/signals/query returns. |
| data.accounts_reached | integer | Distinct accounts those signals are about. A signal that is not about an account is not counted here. |
| data.key_accounts | integer | How many of those accounts are on a customer or prospect list at the time of the request. |
| data.new_accounts | integer | Accounts reached that are not key accounts. |
| data.credits_spent | number | Credits committed to the signals this setup found in the period, including credits on hold. |
| data.weeks | array | Thirteen 7-day counts, oldest first, the last one ending at period_end. They add up to signals_found. |
| data.weeks[].start | string | Start of the week, never before period_start. |
| data.weeks[].signals_found | integer | Signals found that week. |
| data.latest_signal | object or null | The most recently detected signal, null when this setup has found none yet. |
| data.latest_signal.id | integer | ID of the signal, as in POST /v3/signals/query. |
| data.latest_signal.signal_type | string or null | Type of the signal. |
| data.latest_signal.signal_date | string or null | When the signal happened. |
| data.latest_signal.detected_at | string or null | When Sillage detected it. |
| data.latest_signal.source_url | string or null | The post, comment or job offer behind the signal. |
| data.latest_signal.lead | object or null | The person the signal is about (id, full_name, title, photo_url, linkedin_url), null when none. |
| data.latest_signal.company | object or null | The account the signal is about (id, name), null when none. |
| data.latest_signal.details | object | What the signal says: post_text, action_date, interaction, comment_text, counterpart_name, counterpart_role, counterpart_company, job_title, new_role, new_company, previous_role, previous_company, keywords. A field the signal type does not have is null. |
Errors
| Status | Meaning |
|---|---|
| 400 | id is not a valid ID. |
| 401 | The API key is missing or invalid. |
| 404 | No signal setup matches this ID, or it belongs to another workspace. |
| 429 | Rate limit exceeded. |
| 500 | An unexpected server error occurred. |
Error responses use RFC 9457 problem documents with Content-Type: application/problem+json. type is always about:blank on v3 — title is what tells one problem from another:
{
"type": "about:blank",
"title": "Not Found",
"status": 404,
"detail": "Signal setup 99999 not found",
"instance": "/api/v3/signal-setups/99999"
}