Requests Status
Get a snapshot of all work currently being processed in your workspace.
Returns all in-flight work in your workspace — account mapping, top-account content, and signal runs — as a single requests list, newest first. Each item carries a type field telling you what kind of work it is. Use this to check what is still being prepared before concluding that results are missing. Only pending and in-progress items are returned — failed and completed requests are excluded from the snapshot.
IDs in this response are specific to your environment. A numeric id from production is
not meaningful in staging or development.
Get in-flight requests
Query parameters
Both are optional — without them, one call returns up to the 500 most recent in-flight items, which covers virtually every workspace.
| Parameter | Type | Description |
|---|---|---|
| page | integer | Page number (default 1). Only needed when a previous response reported meta.page_count above 1. |
| page_size | integer | Items per page (default and maximum 500). |
Example request
curl "https://api.getsillage.com/api/v2/requests-status" \
-H "Authorization: Bearer $SILLAGE_API_KEY"const response = await fetch('https://api.getsillage.com/api/v2/requests-status', {
headers: {
Authorization: `Bearer ${process.env.SILLAGE_API_KEY}`,
},
})
const result = await response.json()import { request } from 'node:https'
const req = request(
new URL('https://api.getsillage.com/api/v2/requests-status'),
{
headers: {
Authorization: `Bearer ${process.env.SILLAGE_API_KEY}`,
},
},
(res) => {
let data = ''
res.on('data', (chunk) => {
data += chunk
})
res.on('end', () => {
console.log(JSON.parse(data))
})
},
)
req.end()import os
import requests
response = requests.get(
"https://api.getsillage.com/api/v2/requests-status",
headers={"Authorization": f"Bearer {os.environ['SILLAGE_API_KEY']}"},
timeout=30,
)
response.raise_for_status()
result = response.json()Example response
200 OK
{
"data": {
"requests": [
{
"type": "signal",
"id": 5,
"status": "in_progress",
"label": "Detecting signals",
"created_at": "2026-06-30T08:05:00.000Z",
"updated_at": "2026-06-30T08:05:00.000Z",
"scope": "company",
"companies": [{ "id": 88, "name": "Acme", "domain": "acme.com" }]
},
{
"type": "account_mapping",
"id": 12,
"status": "in_progress",
"label": "Mapping the account",
"created_at": "2026-06-30T08:00:00.000Z",
"updated_at": "2026-06-30T08:01:00.000Z",
"company": { "id": 88, "name": "Acme", "domain": "acme.com" }
}
]
},
"meta": { "in_flight_total": 2, "page": 1, "page_size": 500, "page_count": 1 }
}An idle workspace returns the same structure with an empty requests array and in_flight_total: 0 — never a 403.
Response fields
data.requests mixes all kinds of in-flight work in one list, sorted by created_at (newest first). Branch on each item's type: "account_mapping" and "top_account_content" items share one shape; "signal" items have another.
Items with type account_mapping or top_account_content
| Field | Type | Description |
|---|---|---|
| type | string | What kind of work this item is: "account_mapping" or "top_account_content". |
| id | integer | ID of the request. Specific to your environment. |
| status | string | Normalized status: "pending" (waiting to start) or "in_progress" (actively processing). Failed and completed requests are excluded from this endpoint. |
| label | string | Plain-language description of what is happening, safe to show to a user (e.g. "Gathering content for your accounts"). |
| created_at | string (ISO 8601) | When this request was created. |
| updated_at | string (ISO 8601) | When this request was last updated. |
| company | object | null | The company this request is running for. null for workspace-wide requests. |
| company.id | integer | Numeric ID of the company. Specific to your environment. |
| company.name | string | null | Company name. |
| company.domain | string | null | Company domain (e.g. acme.com). |
Items with type signal
Signal runs have a different shape because one run can cover multiple accounts:
| Field | Type | Description |
|---|---|---|
| type | string | What kind of work this item is: always "signal" for this shape. |
| id | integer | ID of the run. Specific to your environment. |
| status | string | Normalized status: "pending" (waiting to start) or "in_progress" (actively processing). Failed and completed runs are excluded from this endpoint. |
| label | string | Plain-language description of what is happening, safe to show to a user (e.g. "Detecting signals"). |
| created_at | string (ISO 8601) | When the run was started. |
| updated_at | string (ISO 8601) | When the run was last updated. |
| scope | string | "company" when the run targets specific accounts; "workspace" when it spans the whole workspace. An empty companies array with scope: "workspace" is expected, not missing data. |
| companies | array | The accounts being scanned. Empty when scope is "workspace". |
| companies[].id | integer | Numeric ID of the company. |
| companies[].name | string | null | Company name. |
| companies[].domain | string | null | Company domain. |
meta
| Field | Type | Description |
|---|---|---|
| in_flight_total | integer | True total of pending and in-progress items, regardless of pagination. |
| page | integer | Current page. |
| page_size | integer | Items per page. |
| page_count | integer | Total number of pages. Above 1 only in extreme cases (e.g. a large account list being ingested) — fetch the remaining pages to see everything. |
How the pipelines relate
The three pipelines run in sequence: account mapping feeds top-account content, which feeds signal detection. If the list contains account_mapping items but no signal items, signals are not missing — they cannot start until the earlier stages finish.
Errors
| Status | Meaning |
|---|---|
| 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": "https://docs.getsillage.com/errors/unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "Invalid or missing API key.",
"instance": "/api/v2/requests-status"
}