---
title: "Complete catalog in one response"
method: GET
path: "/api/feed-index"
---

# Complete catalog in one response

`GET /api/feed-index`

## Request

- Base URL: `https://bidclub.ai`
- URL: `https://bidclub.ai/api/feed-index`
- Auth: none declared

Every published episode as compact metadata. Complete at the current scale, with no pagination. Clients MUST tolerate a future `pagination` object and `Link` headers appearing in this response. Intended for occasional discovery or mirroring; conditional-response validators are not guaranteed. Query filters are not accepted; use the show/person paths or filter returned metadata locally.

## Response `200`

The whole catalog.

- FeedIndexResponse
  - `count` integer, required
  - `episodes` FeedIndexItem[], required
    - `slug` string, required: Stable public identifier.
    - `show_id` string, required: Foreign key into /api/v1/shows.
    - `show` string, required: Show display name, flattened.
    - `title` string, required: Complete canonical publisher title.
    - `display_title` string, nullable: Feed-only compression of an overlength title; null when unneeded.
    - `title_alt` string, nullable: Title in the alternate language (lang_alt).
    - `display_title_alt` string, nullable
    - `title_orig` string, nullable: Source-platform title when it differs.
    - `dek` string, nullable: One-line editorial standfirst.
    - `dek_alt` string, nullable
    - `chips` string[]: Participant tags, each prefixed "person:" (e.g. "person:Jensen Huang").
    - `lang` 'EN' | 'ZH' | 'null', nullable: Language of the primary editorial fields.
    - `date` string, nullable: Publication calendar date, YYYY-MM-DD.
    - `published_at` string, nullable: Exact publication timestamp (RFC 3339); null for date-only archives.
    - `duration_min` number, nullable: Episode length in minutes.
    - `youtube_id` string, nullable
    - `thumbnail_url` string, nullable
    - `source_url` string, nullable
    - `source_label` string, nullable
    - `tag_assets` string[]: Zero to two closed asset taxonomy ids, primary first. Empty is valid even after classification.
    - `tag_sectors` string[]: Zero to two closed sector taxonomy ids, primary first. Empty is valid even after classification.
    - `tag_focus` string[]: Zero to two closed editorial-focus taxonomy ids, primary first. Empty is valid even after classification.
    - `tagging_status` 'pending' | 'classified' | 'failed' | 'skipped': Classification state. Non-classified episodes have empty tag arrays; classified does not require a tag in every facet.
    - `tagging_version` string, nullable: Taxonomy version used for classification; nonblank when tagging_status is classified, otherwise it may be null.

## Other responses

- `502`: Upstream database unavailable. Body: {"error": "upstream unavailable"}.

---

[API](https://skmtc.dev/bidclub/apis/bidclub-open-podcast-transcript-api.md) · [All operations](https://skmtc.dev/bidclub/apis/bidclub-open-podcast-transcript-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bidclub/apis/bidclub-open-podcast-transcript-api/revisions/a097c20ae335?raw)
