> For a complete page index of the Captain API documentation, fetch https://docs.filesearch.dev/llms.txt?excludeSpec=true

# Get Event Feed

GET https://api.filesearch.dev/v2/datasets/odyssey/feed

Global, chronological, cursor-paginated stream of structured company events.

Always live: every read builds the stream at request time — items are gathered from publisher sources, merged, de-duplicated, sorted by recency, and enriched per page. There is no stored-backlog mode and no `live` flag. `since`/`until` window by time; pass `next_cursor` back until `has_more` is false. Each page pays a live fetch plus enrichment, so keep `page_size` small and paginate via `next_cursor`.

Reference: https://docs.filesearch.dev/reference/datasets/odyssey/feed/event-feed

## Request

### Query parameters

- `types` (list of string, optional, nullable) — Restrict to event kinds; omit = all 8
- `sector` (string, optional, nullable)
- `min_amount` (double, optional, nullable) — USD floor on event_data.amount
- `since` (string, optional, nullable) — Start boundary: items at/after this ISO-8601 UTC timestamp
- `until` (string, optional, nullable) — End boundary: items strictly before this ISO-8601 UTC timestamp
- `cursor` (string, optional, nullable) — Opaque next_cursor from a prior page; supersedes until
- `page_size` (integer, optional, default: 100)
- `fields` (string, optional, default: full)

## Response

### 200

Successful Response

- `events` (list of AppApiRoutesV2OdysseyEventsFeedResponseEventsItems, optional)
- `has_more` (boolean, optional, default: false)
- `next_cursor` (string, optional, nullable)
- `page_size` (integer, optional, nullable)

## Types

### AppApiRoutesV2OdysseyEventsFeedResponseEventsItems

## Examples

**Response**

```json
{
  "events": [
    {
      "id": "art_WyJFVlQjMjAyNi0wNy0wMyIsIjIwMjYtMDctMDNUMjE6MTk6MDBaI2EwMTQ2ODdjNTgzYWQyOWUiXQ",
      "event_id": "evt_6eeb547d646d",
      "type": "product_launch",
      "title": "Tesla Launches Summer Gear: Model Y Fridge, Canopy & More",
      "subhead": null,
      "company": {
        "name": "Tesla",
        "domain": "tesla.com",
        "entity_id": "ody_2rbjx6o2hri2g4bxuujbucccaerlun7w2xcf34c4fenxhbtc4og5ng6slw4apoir56n7am3q",
        "industry": "automotive",
        "location": "austin, texas, united states",
        "role": "primary_subject"
      },
      "event_data": {
        "amount": null,
        "round": null,
        "lead_investor": null,
        "investors": [],
        "valuation": null
      },
      "sector": "Automotive",
      "published_at": "2026-07-03T21:19:00Z",
      "confidence": 0.95,
      "url": "https://www.notateslaapp.com/news/4395/tesla-launches-summer-gear-model-y-fridge-canopy-more",
      "publication": "notateslaapp.com",
      "publisher_domain": "notateslaapp.com",
      "sources": [
        {
          "url": "https://www.notateslaapp.com/news/4395/tesla-launches-summer-gear-model-y-fridge-canopy-more",
          "publication": "notateslaapp.com",
          "published_at": "2026-07-03T21:19:00Z"
        }
      ],
      "dup_count": 1
    }
  ],
  "has_more": true,
  "next_cursor": "eyJvZmZzZXQiOiAxfQ",
  "page_size": 1
}
```

**SDK Code**

```python Python REST
import requests

BASE_URL = "https://api.filesearch.dev"
API_KEY = "your_api_key"

headers = {"Authorization": f"Bearer {API_KEY}"}

response = requests.get(
    f"{BASE_URL}/v2/datasets/odyssey/feed",
    headers=headers,
    params={"types": "product_launch", "page_size": 1},
    timeout=60.0
)
print(response.json())
```

```typescript TypeScript REST
const BASE_URL = "https://api.filesearch.dev";
const API_KEY = "your_api_key";

const response = await fetch(`${BASE_URL}/v2/datasets/odyssey/feed?types=product_launch&page_size=1`, {
    method: "GET",
    headers: { "Authorization": `Bearer ${API_KEY}` }
});
console.log(await response.json());
```