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

GET/api/v3/signal-setups/{id}/stats

Access modes

Use a workspace API key. The workspace is inferred from the key.

Authorization: Bearer sk_live_...

Path parameters

ParameterTypeDescription
idintegerID 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

FieldTypeDescription
data.signal_setup_idintegerID of the signal setup. Specific to your environment.
data.period_startstringStart of the 90-day period.
data.period_endstringEnd of the period, the moment of the request.
data.signals_foundintegerTop-priority signals this setup found in the period, the same ones POST /v3/signals/query returns.
data.accounts_reachedintegerDistinct accounts those signals are about. A signal that is not about an account is not counted here.
data.key_accountsintegerHow many of those accounts are on a customer or prospect list at the time of the request.
data.new_accountsintegerAccounts reached that are not key accounts.
data.credits_spentnumberCredits committed to the signals this setup found in the period, including credits on hold.
data.weeksarrayThirteen 7-day counts, oldest first, the last one ending at period_end. They add up to signals_found.
data.weeks[].startstringStart of the week, never before period_start.
data.weeks[].signals_foundintegerSignals found that week.
data.latest_signalobject or nullThe most recently detected signal, null when this setup has found none yet.
data.latest_signal.idintegerID of the signal, as in POST /v3/signals/query.
data.latest_signal.signal_typestring or nullType of the signal.
data.latest_signal.signal_datestring or nullWhen the signal happened.
data.latest_signal.detected_atstring or nullWhen Sillage detected it.
data.latest_signal.source_urlstring or nullThe post, comment or job offer behind the signal.
data.latest_signal.leadobject or nullThe person the signal is about (id, full_name, title, photo_url, linkedin_url), null when none.
data.latest_signal.companyobject or nullThe account the signal is about (id, name), null when none.
data.latest_signal.detailsobjectWhat 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

StatusMeaning
400id is not a valid ID.
401The API key is missing or invalid.
404No signal setup matches this ID, or it belongs to another workspace.
429Rate limit exceeded.
500An 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"
}

On this page