> For clean Markdown of any page, append .md to the page URL. For a complete documentation index, see https://docs.sonicalpha.ai/llms.txt. For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sonicalpha.ai/_mcp/server. For SDK generation or contract validation, use the authoritative OpenAPI spec at https://api.sonicalpha.ai/openapi.json — this docs domain's /openapi.json is a regenerated copy that can differ in auth modeling and strictness annotations.

# The Data Model

SonicAlpha has three core objects. A **podcast** is a show. An
**episode** is one conversation from that show. An **insight** is one
investment-relevant claim extracted from that conversation.

```text
Podcast
  │
  ├── Episode
  │     ├── Insight
  │     ├── Insight
  │     └── Insight
  │
  └── Episode
        ├── Insight
        └── Insight
```

Every insight points back to its episode and podcast, so you can start
with a claim and trace it to the conversation it came from.

Most integrations start with **insights** — they are the objects you
search, filter, cite, and use in research — so this page starts there
and works up to episodes and podcasts.

## Insight

An insight is one investment-relevant claim, with the context needed to
understand where it came from. Each insight object is self-contained:
the claim, the speaker, the companies, and the pointer back to the
source audio are all on it — displaying, citing, or playing an insight
never requires a follow-up call.

```json
{
  "id": "in-o29a68ad",
  "title": "NVIDIA's Western AI Revenue Growing Faster Than Broadcom's Despite ASIC Share Loss Narrative",
  "body": "The narrative that NVIDIA is losing share to custom ASICs (TPUs via Broadcom) is misleading. When stripping out China revenue to create an apples-to-apples comparison of Western data center AI spend, NVIDIA's growth rate in hyperscaler plus AI cloud segments exceeds Broadcom's guided 143% YoY AI semiconductor growth.",
  "type": "thesis",
  "speaker_name": "Gavin Baker",
  "speaker_title": "Founder/CIO of Atreides Management",
  "speaker_role": "investor",
  "mentions": [
    {"company": "NVIDIA", "ticker": "NVDA", "sentiment": "bullish"},
    {"company": "Broadcom", "ticker": "AVGO", "sentiment": "neutral"}
  ],
  "published_at": "2026-05-22T22:46:00Z",
  "quote": "Within the Western AI world... NVIDIA's AI business is growing faster than Broadcom's. And faster than a lot of other companies that are seen as part of this ASIC share gain story.",
  "start_seconds": 4538.6,
  "end_seconds": 4698.94,
  "episode_audio_url": "https://...mp3",
  "episode_id": "jl4p6rj6",
  "podcast_id": "gupo2c0w"
}
```

### Key fields

**`body`** — SonicAlpha's extracted paraphrase of the claim.

**`quote`** — the verbatim source passage. Cite `body`, ground with
`quote`.

**`type`** — what kind of claim it is: `thesis` = a forward-looking
argument, `observation` = a qualitative read on the present,
`data_point` = a concrete number. The `types` search filter takes the
same values.

**`speaker_name` / `speaker_role`** — who made the claim and what they
do professionally. Roles:

* `operator` — runs or operates a business
* `investor` — deploys capital
* `researcher` — produces research
* `commentator` — journalist, host, or commentator
* `government`
* `unknown`

A CEO of a VC firm is an `investor`, not an `operator` — the role is
what the speaker does professionally, not their job title.

**`mentions`** — the companies referenced in the insight. One insight
can mention multiple companies, and each company carries its own
sentiment.

**`published_at`** — when the underlying episode was published.

**`start_seconds` / `end_seconds`** — where the claim sits in
`episode_audio_url`. Pass them to a player to hear the claim at the
moment it was said.

**`episode_id` / `podcast_id`** — the episode and podcast the insight
came from.

Full insight fields are documented in the
[API reference](/api-reference/insights/search-insights).

## Episode

An episode is one conversation from a podcast. It connects a set of
insights back to the conversation they were extracted from.

```json
{
  "id": "jl4p6rj6",
  "title": "SpaceX's $2T Case, Nvidia's Shock Selloff, America Turns on AI, Trump Pulls AI Order, Bond Crisis?",
  "published_at": "2026-05-22T22:46:00Z",
  "duration_seconds": 6120,
  "insight_count": 24,
  "episode_audio_url": "https://...mp3",
  "episode_url": "https://...",
  "episode_image_url": "https://...",
  "podcast_id": "gupo2c0w",
  "podcast_name": "All-In with Chamath, Jason, Sacks & Friedberg",
  "podcast_image_url": "https://..."
}
```

Full episode fields are documented in the
[API reference](/api-reference/episodes/get-episode).

Use `episode_id` when you want to retrieve the episode behind an
insight, search within a single conversation, or group insights from
the same episode.

`insight_count` is the number of searchable insights extracted from the
episode.

## Podcast

A podcast is the show that episodes belong to. Use it to scope research
to a particular show or speaker:

> Find everything this podcast has said about NVIDIA.

```json
{
  "id": "idl2iow9",
  "name": "The Real Eisman Playbook",
  "description": "...",
  "insight_count": 478,
  "episode_count": 34,
  "latest_episode_at": "2026-08-17T16:06:00Z"
}
```

A podcast appears in the API only if it has searchable insights —
absence means *not covered*, not "not found."

`insight_count` and `episode_count` show how much searchable content
SonicAlpha has from the show. `latest_episode_at` shows how recently it
last produced searchable content.

## Naming convention

An object's own fields use simple names: `id` · `title` · `name` ·
`body`. Fields that reference another object are prefixed:
`episode_id` · `podcast_id` · `podcast_name`. This convention is
consistent across the API.