Create Watchlist
Create a reusable company or profile watchlist.
Creates a workspace-scoped watchlist. Set the immutable type — the list kind (company or people) is derived from it server-side, you never declare it. A new list starts empty; add members with Add entities.
Create watchlist
POST/api/v2/watchlists
Request body
| Field | Type | Description |
|---|---|---|
| type | enum | Immutable. One of competitor, partner, customer (company) or influencer, champion (profile). |
| title | string | Display title. Required, non-empty. |
| description | string | Optional free-text description. |
Example request
curl -X POST "https://api.getsillage.com/api/v2/watchlists" \
-H "Authorization: Bearer $SILLAGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "competitor",
"title": "Key competitors",
"description": "Companies we track for competitive signals"
}'const response = await fetch('https://api.getsillage.com/api/v2/watchlists', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SILLAGE_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
type: 'competitor',
title: 'Key competitors',
description: 'Companies we track for competitive signals',
}),
})
const result = await response.json()import { request } from 'node:https'
const body = JSON.stringify({
type: 'competitor',
title: 'Key competitors',
description: 'Companies we track for competitive signals',
})
const req = request(
new URL('https://api.getsillage.com/api/v2/watchlists'),
{
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SILLAGE_API_KEY}`,
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(body),
},
},
(res) => {
let data = ''
res.on('data', (chunk) => {
data += chunk
})
res.on('end', () => {
console.log(JSON.parse(data))
})
},
)
req.write(body)
req.end()import os
import requests
response = requests.post(
"https://api.getsillage.com/api/v2/watchlists",
json={
"type": "competitor",
"title": "Key competitors",
"description": "Companies we track for competitive signals",
},
headers={"Authorization": f"Bearer {os.environ['SILLAGE_API_KEY']}"},
timeout=30,
)
response.raise_for_status()
result = response.json()Example response
201 Created
{
"data": {
"id": 128,
"kind": "company",
"type": "competitor",
"title": "Key competitors",
"description": "Companies we track for competitive signals",
"entity_count": 0,
"bound_agent_count": 0
}
}Response fields
| Field | Type | Description |
|---|---|---|
| data.id | integer | Identifier of the watchlist. |
| data.kind | string | company or profile, derived from type. |
| data.type | string | The immutable list type. |
| data.title | string | Display title. |
| data.description | string | Description, or null. |
| data.entity_count | integer | Number of members. |
| data.bound_agent_count | integer | Number of agents bound to this list. |
Errors
| Status | Description |
|---|---|
| 401 | The API key is missing or invalid. |
| 422 | Invalid body — unknown type or empty title. |
| 429 | Too many requests. |