Get Publication Feed
Chronological, cursor-paginated stream of articles.
Always live: every read builds the feed at request time — articles are gathered from publisher sources, merged, de-duplicated, and sorted by recency. The aggregated listing itself is never cached; only per-article enrichment work is. fields=ids is the cheap title-only mode. fields=full returns entity-linked articles; articles not yet enriched come back with enrichment_status="pending" — the list never enriches a whole page inline. Hydrate individual articles via GET /v2/datasets/odyssey/publications/articles/{article_id}, which enriches on demand. since/until window by time; page via next_cursor.
Filters: publications= is a cheap publisher allowlist applied before enrichment. sector= and has_entities= depend on enrichment, so they hydrate the page on demand — the page size is clamped low and each request carries an enrichment budget and wall-clock deadline; when a bound is hit you receive a partial page plus a cursor to continue.
Query parameters
Start boundary: items at/after this ISO-8601 UTC timestamp
End boundary: items strictly before this ISO-8601 UTC timestamp
Opaque next_cursor from a prior page; supersedes until
Pre-enrichment allowlist: only articles from these publishers (registrable domain, canonical slug, or catalog name)
Singular alias of publications (accepted for compatibility; merged with publications)
Filter to articles whose enriched sector matches (hydrates the page on demand; page is clamped + budgeted). Tolerant of case, separators, and shorthand (e.g. fintech matches Financial Services)
Filter to articles that did/didn't resolve any entity (hydrates the page on demand; page is clamped + budgeted)
'ids' = titles and ids only (no entity-linking); 'full' = entity-linked articles
Alias for fields=ids: titles + ids only, no entity-linking
Response
Successful Response
Changes
No recorded changes to this endpoint across all 1 revision of this API.