For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
API StudioContact Support
GuidesAPI ReferenceChangelog
GuidesAPI ReferenceChangelog
  • API Reference
          • GETEvent Feed
          • GETEvent by ID
          • GETPublication Feed
          • GETArticle by ID
          • POSTSubscribe to webhook alerts
          • POSTCreate subscription
          • GETList subscriptions
          • GETGet subscription
          • PATCHUpdate subscription
          • DELUnsubscribe
LogoLogo
API StudioContact Support
API ReferenceDatasetsOdysseyFeed

Event Feed

GET
https://api.runcaptain.com/v2/datasets/odyssey/feed
GET
/v2/datasets/odyssey/feed
1import requests
2import json
3
4BASE_URL = "https://api.runcaptain.com"
5API_KEY = "your_api_key"
6
7headers = {
8 "Authorization": f"Bearer {API_KEY}",
9}
10
11# Stream the latest company events, newest first
12response = requests.get(
13 f"{BASE_URL}/v2/datasets/odyssey/feed",
14 headers=headers,
15 timeout=30.0
16)
17
18data = response.json()
19print(json.dumps(data, indent=2))
1{
2 "events": [
3 {
4 "id": "evt_abc123",
5 "type": "funding",
6 "title": "Acme Robotics raises $200M Series C led by Sequoia",
7 "company": {
8 "role": "primary_subject",
9 "name": "Acme Robotics",
10 "domain": "acmerobotics.com",
11 "entity_id": "ody_1k3m7qr5s2t4v6wac",
12 "industry": "robotics",
13 "location": "San Francisco, CA"
14 },
15 "published_at": "2026-05-25T14:30:00Z",
16 "subhead": "San Francisco-based robotics company to scale manufacturing",
17 "event_data": {
18 "amount": 200000000,
19 "round": "Series C",
20 "lead_investor": "Sequoia",
21 "investors": [
22 "Sequoia",
23 "a16z",
24 "Founders Fund"
25 ],
26 "valuation": 1200000000
27 },
28 "sector": "robotics",
29 "confidence": 0.97
30 }
31 ],
32 "has_more": true,
33 "next_cursor": "eyJkYXkiOiAiMjAyNi0wNS0yNSIsICJsZWsiOiB7Li4ufX0=",
34 "page_size": 40
35}
Global, reverse-chronological firehose of every material company event Odyssey tracks: funding rounds, acquisitions, IPOs, executive changes, layoffs, partnerships, shutdowns, and product launches. Each item carries a resolved `company.entity_id`, so you can go straight from an event to the full company profile. **Paging:** read the first page with `since` (and optionally `until`), then pass `next_cursor` back as `cursor` until `has_more` is `false`. **Filtering:** `types`, `sector`, and `min_amount` narrow the stream. `sector` is matched exactly against the item's sector label. **Polling:** request `fields=ids` for a small title-only page, then fetch full detail for the events you care about. **Responses:** a read with no matches returns `200` with an empty `events` list. If the upstream source is briefly unavailable the call returns `503`; retry after a short pause.
Was this page helpful?
Previous

Event by ID

Next
Built with

Global, reverse-chronological firehose of every material company event Odyssey tracks: funding rounds, acquisitions, IPOs, executive changes, layoffs, partnerships, shutdowns, and product launches. Each item carries a resolved company.entity_id, so you can go straight from an event to the full company profile.

Paging: read the first page with since (and optionally until), then pass next_cursor back as cursor until has_more is false.

Filtering: types, sector, and min_amount narrow the stream. sector is matched exactly against the item’s sector label.

Polling: request fields=ids for a small title-only page, then fetch full detail for the events you care about.

Responses: a read with no matches returns 200 with an empty events list. If the upstream source is briefly unavailable the call returns 503; retry after a short pause.

Authentication

AuthorizationBearer
Bearer token authentication using API key

Headers

X-Organization-IDstringOptional

Query parameters

min_amountdoubleOptional

USD floor on event_data.amount. Drops events below the threshold.

sincestringOptionalformat: "date-time"

Only return items published at or after this ISO-8601 UTC timestamp (e.g. 2026-05-25T00:00:00Z). Sets the start boundary of the feed window. Ignored when cursor is supplied, the cursor already encodes the position.

untilstringOptionalformat: "date-time"

Only return items published strictly before this ISO-8601 UTC timestamp. Combine with since to backfill a fixed historical window.

cursorstringOptional

Opaque pagination cursor returned as next_cursor by the previous page. Pass it back verbatim to fetch the next (older) page. The feed walks UTC-day partitions backward automatically, so a single cursor is enough to drain the entire window, do not parse or construct it yourself.

page_sizeintegerOptional1-500Defaults to 40

Maximum items to return per page (1 to 500, default 40).

fieldsenumOptionalDefaults to full

full (default) returns complete items. ids returns title-only items (id, title, published_at) for cheap polling.

Allowed values:

Response

A page of events, newest first.
eventslist of objects
has_moreboolean
True if more items remain in the requested window.
next_cursorstring or null

Cursor for the next (older) page. null when the feed window is fully drained.

page_sizeinteger
Page size that was applied.

Errors

401
Unauthorized Error