Count signal detections
Get the number of signal detections of your workspace that match your filters.
Returns the total number of signal detections of your workspace that match the filters. It takes exactly the filters of Query signal detections, in the same JSON body, without cursor and limit. Every filter is optional. Like a search, a count only covers the detections rated top priority, the ones shown in the app.
Route
Access modes
Use a workspace API key. The workspace is inferred from the key.
Authorization: Bearer sk_live_...Body parameters
The filters of Query signal detections, all optional: signal_date_from, signal_date_to, detected_at_from, detected_at_to, signal_setup_id, signal_run_id, signal_types, company_ids, company_domains, company_linkedin_handles, company_linkedin_urls, lead_id, countries and cities. The date and company rules are the same: see Dates and Company filters.
Example request
curl -X POST "https://api.getsillage.com/api/v3/signals/count" \
-H "Authorization: Bearer $SILLAGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"signal_types":["keyword_detection"],"signal_date_from":"2026-09-01T00:00:00Z"}'Success response
Status: 200 OK
{
"data": {
"total": 42
}
}Response fields
| Field | Type | Description |
|---|---|---|
| data.total | integer | Number of signal detections matching the filters. |
Errors
| Status | Meaning |
|---|---|
| 401 | The API key is missing or invalid. |
| 422 | The body is not valid: an unknown field, a date without a time, a signal_date_from older than 180 days, an unknown value in signal_types, or a query parameter (this route takes none, and errors names the parameter). A range that ends before it starts (signal_date_from after signal_date_to or detected_at_from after detected_at_to) is refused with the code invalid_date_range; errors.signal_date_from says "must be on or before signal_date_to". |
| 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; code tells one problem from another, detail says what went wrong this time, and errors names the field at fault.