Documentation Index
Fetch the complete documentation index at: https://docs.ivory.finance/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Connect to a WebSocket to receive enriched financial news in real time — typically within seconds of publication. Optionally send a filter to narrow the stream to specific tickers, categories, countries, or sentiment.No backfill — the stream delivers live messages only. For historical articles use
GET /v1/news.
Endpoint
X-API-Key header or as a query param ?apikey=.
Connection flow
- Connect to the WebSocket.
- Receive a
connectedwelcome message. - Optionally send a filter JSON to scope the stream.
- Receive
articlemessages matching your filter as they arrive.
Filter message
Send this JSON any time after connecting. Sending a new filter replaces the previous one. An empty filter (or no filter) delivers all financial news.| Field | Type | Description |
|---|---|---|
tickers | string[] | Only articles mentioning these tickers (OR match) |
categories | string[] | Only articles in these categories (OR match) |
countries | string[] | Only articles referencing these ISO-2 countries (OR match) |
sentiment | string | bullish · bearish · neutral |
min_impact | float | Minimum impact score 0.0–1.0 |
source_types | string[] | rss · gdelt · reddit · twitter |
Message types
connected
Sent immediately on connect.
filter_applied
Sent after your filter is accepted.
article
Emitted for each enriched article matching your filter.
Array fields (
categories, country_codes, company_tickers, company_names) are
JSON-encoded strings in the stream payload. Parse them with JSON.parse().error
Sent if your filter JSON is malformed.
Code examples
Capacity limits
| Limit | Value |
|---|---|
| Queue per connection | 200 messages |
| Slow client handling | Dropped messages (no disconnect) |
| Stream buffer | Last 10,000 enriched articles retained in Valkey |

