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

FieldTypeDescription
typeenumImmutable. One of competitor, partner, customer (company) or influencer, champion (profile).
titlestringDisplay title. Required, non-empty.
descriptionstringOptional 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

FieldTypeDescription
data.idintegerIdentifier of the watchlist.
data.kindstringcompany or profile, derived from type.
data.typestringThe immutable list type.
data.titlestringDisplay title.
data.descriptionstringDescription, or null.
data.entity_countintegerNumber of members.
data.bound_agent_countintegerNumber of agents bound to this list.

Errors

StatusDescription
401The API key is missing or invalid.
422Invalid body — unknown type or empty title.
429Too many requests.

On this page