---
title: "Paginated published pitches"
method: GET
path: "/api/pitch/feed"
---

# Paginated published pitches

`GET /api/pitch/feed`

## Request

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

Public Tweetroom pitches using opaque keyset cursors. Follow nextCursor until it is null. Cursor identity includes the sort, asset filter, and normalized bilingual search query; a cursor cannot be reused with different filters.

## Query parameters

- `sort` 'date' | 'quality'
- `asset` 'all' | 'stock' | 'token'
- `query` string
- `cursor` string
- `limit` integer

## Response `200`

One ready page, which may legitimately be empty.

- PitchPage
  - `posts` Pitch[], required
    - `id` string, required
    - `handle` string, required
    - `date` string, date-time, required
    - `asset` 'stock' | 'token', required
    - `tickers` string[], required
    - `title` string, required
    - `quality` number, required
    - `bullets` string[], required
    - `sourceUrl` string, uri, required
    - `wordCount` integer, required
    - `chinese` object, nullable, required
      - `title` string, required
      - `bullets` string[], required
  - `nextCursor` string, nullable, required
  - `status` 'ready' | 'unavailable', required

## Other responses

- `400`: Malformed, duplicate, unknown, or mismatched input. Body: {"error":"invalid_request"}.
- `503`: The database or validated public projection is unavailable. The response has an empty posts array, a null cursor, and unavailable status.

---

[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)
