register_event_subscription
Save a realtime-event filter server-side and get a subscription_id whose
stream resumes where the last read stopped (POST /register-subscription).
For a live-streaming ask, the default is a dashboard (in Claude, an Artifact) that
loops stream_events itself — see stream_events. Register a subscription when the
user wants a saved filter that resumes across sessions.
Returns {subscription_id, filter, cursor, created_at}. `filter` echoes the
normalised filter (topics lower-cased, symbols upper-cased, duplicates dropped);
`cursor` is the position the subscription starts from — only events published
AFTER registration are ever delivered. KEEP the subscription_id: there is no list
endpoint yet, and it is what stream_event_subscription and
delete_event_subscription take.
`topics` / `symbols` as in stream_events: event types and families from
list_options("event_types") plus the stream-only `report_plan` topic; an empty
body listens to everything. Same vocabulary rules — `report_plan` for "stream
full research as it is minted", a family for "everything earnings-related",
symbols for a watchlist. 30 registrations/hour per user; delete what you no
longer need. The stream keeps ~2,000 entries (several days at current volume): a
subscription idle longer than that resumes at the oldest entry and may have
missed events.
Requires auth (your MCP client attaches the OAuth bearer automatically).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| topics | No | Event types or families from list_options("event_types") (e.g. "eps_update", "earnings"), plus the stream-only "report_plan"; case-insensitive. Omit for every topic. | |
| symbols | No | Tickers to listen for (13f_* filer events carry the filer's CIK in the symbol slot). Omit for every symbol. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Stream position the subscription starts from (events after registration). | |
| filter | Yes | The normalised filter that was saved. | |
| created_at | No | ||
| subscription_id | Yes | Keep it: stream_event_subscription and delete_event_subscription take it. |