List signal buckets
List every tier a signal can belong to, with the signals each one groups.
Lists the signal buckets, each with the IDs of the signals it groups and what your workspace pays for it. A bucket does not include the full description of those signals — look them up in the signal catalogue.
A bucket's price is per key account, per month: you pay for the accounts on any list you've assigned to that bucket, not for each signal it detects. If your workspace is attached to a partner with a negotiated rate, pricing reflects that rate instead of the standard one.
Route
Access modes
Use a workspace API key. The workspace is inferred from the key.
Authorization: Bearer sk_live_...Query parameters
See Pagination for the shared page / page_size parameters.
Example request
curl "https://api.getsillage.com/api/v3/signal-buckets?page=1&page_size=25" \
-H "Authorization: Bearer $SILLAGE_API_KEY"Success response
Status: 200 OK
{
"data": [
{
"key": "essential",
"name": "Essential signals",
"description": "Account mapping of every key decision maker, tracked weekly, with people signals and email enrichment of all account contacts.",
"display_order": 1,
"signal_template_ids": [2, 5, 9],
"pricing": { "credits": 50, "unit": "key_account_per_month" }
},
{
"key": "standard",
"name": "Standard signals",
"description": "Everything in Essential, plus hiring, content and market signals.",
"display_order": 2,
"signal_template_ids": [3, 6, 11],
"pricing": { "credits": 100, "unit": "key_account_per_month" }
},
{
"key": "advanced",
"name": "Advanced signals",
"description": "Everything in Essential and Standard, plus competition, champion and partner signals.",
"display_order": 3,
"signal_template_ids": [7, 12, 15],
"pricing": { "credits": 150, "unit": "key_account_per_month" }
}
],
"meta": {
"pagination": {
"page": 1,
"page_size": 25,
"page_count": 1,
"total": 3
}
}
}Response fields
| Field | Type | Description |
|---|---|---|
| data[].key | string | Stable identifier of this bucket, the same in every environment — essential, standard or advanced. |
| data[].name | string | The bucket name shown to a user. |
| data[].description | string or null | A short explanation of what this bucket is for. |
| data[].display_order | integer | The position this bucket should be shown at, ascending. |
| data[].signal_template_ids | array of integer | The IDs of the signals grouped in this bucket. |
| data[].pricing | object or null | What your workspace pays for this bucket. null when no price has resolved for your workspace yet. |
| data[].pricing.credits | number | The exact price, in credits — never rounded. |
| data[].pricing.unit | string | Always key_account_per_month — you're billed per key account, per month. |
| meta.pagination | object | Pagination metadata — see Pagination. |
pricing: null means no price has resolved for your workspace on this bucket — it is
not the same as free. Do not treat a missing price as a signal that the bucket costs
nothing.
Errors
| Status | Meaning |
|---|---|
| 400 | Invalid page or page_size. |
| 401 | The API key is missing or invalid. |
| 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": "Invalid query parameters",
"status": 400,
"detail": "page_size must be a positive integer",
"instance": "/api/v3/signal-buckets"
}