APIv3
Get setup state
See what is left to set up in the workspace.
Returns how far your workspace is set up, in one call, as a checklist of four steps: persona, accounts, signal_setups and contents.
Each step has a status, a plain-language message and, when something is left to do, a recommended_next_route naming the call to make next.
Route
GET/api/v3/setup-state
Access modes
Use a workspace API key. The workspace is inferred from the key.
Authorization: Bearer sk_live_...Statuses
| Status | Meaning |
|---|---|
ok | The step is done. |
warning | The step is started but not complete. |
blocked | Nothing is done yet for this step, or the feature is not enabled. |
Steps
| Step | Done when |
|---|---|
persona | The oldest active persona has at least one job title and one location. Only that persona is checked, even when there are several. job_titles_set and locations_set tell which of the two is there. |
accounts | At least one company sits on a customer or prospect list. Until then, recommended_next_route is POST /v3/lists to create a list, then POST /v3/lists/{kind}/{list_id}/members to add accounts. count is the number of accounts on your customer and prospect lists. |
signal_setups | The workspace runs at least 3 signals. count is the number of signal setups of your workspace, the same as the total of Signal setups. missing_priority_types lists the key of the signal templates still worth setting up, in priority order. A template counts as set up when the workspace has a signal setup of it. It is informational and never changes status. |
contents | Content has been generated. A blocked status means the contents feature is not enabled for your workspace (contact Sillage); warning means it is enabled and nothing has been generated yet. |
Recommended next routes
recommended_next_route is one of the following, written as METHOD /path. It is left out when nothing more is recommended.
| Value | Meaning |
|---|---|
POST /v3/personas | The persona is missing: create it. |
PATCH /v3/personas/{persona_id} | The persona is incomplete: complete it. |
POST /v3/lists | No customer or prospect list yet: create one. |
POST /v3/lists/{kind}/{list_id}/members | Add accounts to a list. |
POST /v3/signal-setups | Set up a signal. |
GET /v3/requests-status | Content is still being prepared: check what is running. |
Example request
curl "https://api.getsillage.com/api/v3/setup-state" \
-H "Authorization: Bearer $SILLAGE_API_KEY"Success response
Status: 200 OK
{
"data": {
"checklist": {
"persona": {
"status": "ok",
"message": "Persona is set up with a job title and a location.",
"job_titles_set": true,
"locations_set": true
},
"accounts": {
"status": "ok",
"message": "12 account(s) on your customer and prospect lists.",
"count": 12
},
"signal_setups": {
"status": "warning",
"message": "2 signal setup(s); the recommended minimum is 3. Call POST /v3/signal-setups to add more.",
"recommended_next_route": "POST /v3/signal-setups",
"count": 2,
"missing_priority_types": ["mentioned-keywords-on-linkedin"]
},
"contents": {
"status": "warning",
"message": "The contents feature is enabled but nothing has been generated yet. Call GET /v3/requests-status to check whether account mapping or content generation is still in progress.",
"recommended_next_route": "GET /v3/requests-status",
"has_contents": false
}
}
}
}Response fields
| Field | Type | Description |
|---|---|---|
| data.checklist.persona | object | The persona step. |
| data.checklist.persona.status | string | ok, warning or blocked. |
| data.checklist.persona.message | string | What to do, in plain language. |
| data.checklist.persona.recommended_next_route | string | POST /v3/personas or PATCH /v3/personas/{persona_id}. Left out when the step is ok. |
| data.checklist.persona.job_titles_set | boolean | Whether the persona has at least one job title. |
| data.checklist.persona.locations_set | boolean | Whether the persona has at least one location. |
| data.checklist.accounts | object | The accounts step. |
| data.checklist.accounts.status | string | ok once at least one account is on a customer or prospect list, blocked before that. |
| data.checklist.accounts.message | string | What to do, in plain language. |
| data.checklist.accounts.recommended_next_route | string | POST /v3/lists while there is no account. Left out when the step is ok. |
| data.checklist.accounts.count | integer | How many accounts sit on your customer and prospect lists. |
| data.checklist.signal_setups | object | The signal setups step. |
| data.checklist.signal_setups.status | string | ok, warning or blocked. |
| data.checklist.signal_setups.message | string | What to do, in plain language. |
| data.checklist.signal_setups.recommended_next_route | string | POST /v3/signal-setups. Left out when the step is ok. |
| data.checklist.signal_setups.count | integer | The number of signal setups of your workspace. |
| data.checklist.signal_setups.missing_priority_types | array of string | The key of each signal template still worth setting up, in priority order. Informational only. |
| data.checklist.contents | object | The contents step. |
| data.checklist.contents.status | string | ok, warning or blocked. |
| data.checklist.contents.message | string | What to do, in plain language. |
| data.checklist.contents.recommended_next_route | string | GET /v3/requests-status. Left out when nothing more is recommended. |
| data.checklist.contents.has_contents | boolean | Whether content has been generated. |
Errors
| Status | Meaning |
|---|---|
| 401 | The API key is missing or invalid. |
| 422 | A query parameter is sent: this route takes none, and errors names the parameter. |
| 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.