Skip to main content

Two scopes: curated topics and custom watchlists

Every analytical endpoint runs against a scope. There are two kinds.
ScopeWhatMaintained byTier
Curated topicA named, stable slice (e.g. global, cyber, finance, disinfo)ExordeAvailable on every tier, topic scope per key
Custom watchlistYour own keyword, phrase, entity, or domain scopeYouSee and Know
Both expose the same analytics surface: trending, volume, volume-by-keyword, narrative, entities, platforms, posts, alerts. Clusters analytics on watchlists require Know tier.

Curated topics

The four public curated topics:
TopicWhat it tracks
globalTop storylines across the global conversation — geopolitics, macro events, mainstream news
cyberCybersecurity incidents, threat actors, vulnerabilities, ransomware, breaches
financeMarkets, central banks, crypto, earnings, macro indicators
disinfoCoordinated narrative operations, bot activity, deepfake claims, information-warfare signals
Topic access is scoped per key. GET /v1/me returns your topics array. A Watch-tier trial key is scoped to global only. Call any topic analytics endpoint with the topic slug:
curl https://intel-v1.exorde.io/v1/topics/cyber/trending \
  -H "X-API-Key: $EXORDE_API_KEY"
If you hit a topic your key isn’t scoped for, you get 403 topic_denied.

Custom watchlists

Watchlists are your private scopes. You define the terms, the API runs the same analytics against the matching post stream.

Term types

TypeMatchesExample
keywordSubstring match against entity names and cluster themesransomware
phraseSame mechanism as keyword; may contain spaceszero day exploit
entityExact lowercase match on cluster entitieslockbit
domainExact match on cluster top domainsbleepingcomputer.com

Create a watchlist

curl -X POST https://intel-v1.exorde.io/v1/watchlists \
  -H "X-API-Key: $EXORDE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-brand",
    "base_topic": "global",
    "terms": [
      {"type": "keyword", "value": "acme"},
      {"type": "domain",  "value": "acme.com"}
    ]
  }'
Response:
{
  "id": "wl_01HXYZ...",
  "client_id": "see_...",
  "name": "my-brand",
  "base_topic": "global",
  "terms": [
    {"type": "keyword", "value": "acme"},
    {"type": "domain",  "value": "acme.com"}
  ],
  "created_at": "2026-04-20T15:00:00Z"
}

Query a watchlist

The full analytics surface mirrors topic endpoints.
curl https://intel-v1.exorde.io/v1/watchlists/wl_01HXYZ.../trending \
  -H "X-API-Key: $EXORDE_API_KEY"

curl https://intel-v1.exorde.io/v1/watchlists/wl_01HXYZ.../volume \
  -H "X-API-Key: $EXORDE_API_KEY"

curl https://intel-v1.exorde.io/v1/watchlists/wl_01HXYZ.../entities \
  -H "X-API-Key: $EXORDE_API_KEY"

curl https://intel-v1.exorde.io/v1/watchlists/wl_01HXYZ.../posts \
  -H "X-API-Key: $EXORDE_API_KEY"

Update or delete

curl -X PATCH https://intel-v1.exorde.io/v1/watchlists/wl_01HXYZ... \
  -H "X-API-Key: $EXORDE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "acme-monitoring"}'

curl -X DELETE https://intel-v1.exorde.io/v1/watchlists/wl_01HXYZ... \
  -H "X-API-Key: $EXORDE_API_KEY"

Limits

QuotaWatchSeeKnow
Custom watchlists420
Terms per watchlist1050
Hitting either cap returns 429 watchlist_limit_reached or 422 watchlist_term_limit_reached. Full limits and error codes: Tiers and Quotas, Errors.

When to use which

  • Use a curated topic when your use case aligns with one of the four public slices. Less setup, same analytics, global baselines already learned.
  • Use a watchlist when you need to track a specific brand, actor, campaign, domain, or niche — anything outside the curated slices. Know-tier customers can also request private curated topics via [email protected].