Market news your terminal
can act on.
Omni converts 50+ active market-news sources into deduplicated, clustered, AI-enriched events with normalized tickers, sentiment, impact, and versioned lineage. Integrate once over REST and WebSocket.
Raw news is infrastructure. Omni is a product-ready intelligence layer.
A raw feed leaves every terminal team to rebuild source adapters, duplicate detection, entity resolution, and live-delivery reliability. Omni delivers the market event your product needs, with the analysis lineage required to reprocess history as models evolve.
Raw news feeds
- Source-by-source parsers and reconnect logic
- Repeated headlines for the same developing event
- Missing or ambiguous tradable instruments
- Unbounded text and inconsistent payload shapes
Omni AI News
- One stable, versioned event contract
- Deduplicated and clustered developing stories
- Normalized instruments, sentiment, and impact
- Cursor REST history plus ticketed live WSS
From API key to live events.
Create a named key in API settings and keep it on your server. The public contract is read-only, versioned, and separate from the collection path.
- 01Create a `news_api:read` key and save it when shown.
- 02Request `news_event.v1` history and persist the returned cursor.
- 03Exchange the key for a single-use 60-second WebSocket ticket.
- 04Send JSON pings and request a fresh ticket on every reconnect.
`400` means the request or object version is unsupported. `401` means the key or ticket is invalid, expired, or already used. `403` means the News API entitlement or scope is missing. On `429`, wait until `X-RateLimit-Reset`, add jitter, and retry without dropping your last stored cursor.
Open the complete News API reference Read versioning, lifecycle, and changelog guidancecurl "https://api.omniterminal.app/api/v1/news?market=tradfi&limit=50&object_version=news_event.v1" \
-H "x-api-key: YOUR_API_KEY"{
"object": "list",
"api_version": "2026-07-14",
"tier": "pro",
"data": [{
"object": "news_event.v1",
"id": "analysis-revision-id",
"event_id": "logical-event-id",
"headline": "Market event headline",
"tickers": ["BTC"],
"analysis": { "model": "model-id", "schema_version": "schema-id" },
"revision": { "kind": "original" }
}],
"pagination": {
"next_before_timestamp": 1784548800000,
"has_more": true
}
}curl "https://api.omniterminal.app/api/v1/news?limit=50&before_timestamp=1784548800000&object_version=news_event.v1" \
-H "x-api-key: YOUR_API_KEY"const ticketResponse = await fetch(
"https://api.omniterminal.app/api/v1/news/ws-ticket",
{ method: "POST", headers: { "x-api-key": process.env.OMNI_NEWS_API_KEY } }
);
if (!ticketResponse.ok) throw new Error(`ticket: ${ticketResponse.status}`);
const { ticket, recommended_ping_interval_seconds } = await ticketResponse.json();
const ws = new WebSocket(
`wss://api.omniterminal.app/ws/v1/news?ticket=${ticket}`
);
const keepalive = setInterval(
() => ws.send(JSON.stringify({ type: "ping", ts: Date.now() })),
recommended_ping_interval_seconds * 1000
);
ws.onmessage = ({ data }) => console.log(JSON.parse(data));
ws.onclose = () => {
clearInterval(keepalive);
// Fetch a new single-use ticket before reconnecting with capped backoff.
};One event stream, many product surfaces.
News surfaces
Power searchable feeds, event pages, watchlists, and market briefings without exposing raw-source noise.
Alerts and automation
Trigger user-defined workflows from symbols, topics, direction, sentiment, impact, and importance.
Portfolio and chart context
Place relevant events beside prices, positions, orders, liquidations, and risk analysis.
Start with the feed. Expand into the terminal.
API access is authenticated per customer and designed to share the same identity and subscription system as Omni Terminal Pro and Enterprise.
Pro
Up to 500 items per request, seven-day lookback, 60 REST requests/minute, and live WebSocket access.
Enterprise
Up to 2,000 items per request, 30-day lookback, 600 REST requests/minute, and higher-volume integration support.