Search the whole library

Full-text search across titles, deks, TL;DRs, digests, and transcripts, newest first, capped at 20 results. When full-text finds nothing the query re-runs as a substring (ilike) sweep of title, title_orig, dek, and transcript_md — the path that matches CJK, which the 'simple' text search configuration cannot segment. That sweep is always bounded to the 300 newest episodes matching the other filters, and whenever it produces the returned results the response carries partial: true and searched_recent: 300. The same two fields appear when the full-text query itself times out and is retried inside that window. searched_recent is the window ceiling, not the number of rows actually scanned. A zero-result substring fallback may omit partial; an empty response therefore does not establish that no older substring matches exist.

get/api/v1/search

Request

  • Base URL: https://bidclub.ai
  • URL: https://bidclub.ai/api/v1/search
  • Auth: none declared

Query parameters

qstring required

2–100 code points, no control characters.

time'24h' | '7d' | '30d'

Publication window, measured on published_at with a calendar-date fallback for archives that expose no exact timestamp.

personstring

Exact participant name without the "person:" prefix; matched against the episode's chips. Up to 120 code points.

string
OR
'__untracked__'

Exact show id, or the literal untracked for every episode whose show is not part of the tracked roster.

lang'EN' | 'ZH'

Source language. Input is uppercased before matching.

len'lt30' | '30to60' | '60to120' | 'gt120'

Duration bucket; min inclusive, max exclusive.

assetstring

Comma-separated asset ids. Values are ORed within this facet; supplied facets are ANDed. Omitting the facet or selecting every id leaves it unfiltered, including untagged episodes; none returns no episodes.

sectorstring

Comma-separated sector ids. Values are ORed within this facet; supplied facets are ANDed. Omitting the facet or selecting every id leaves it unfiltered, including untagged episodes; none returns no episodes.

focusstring

Comma-separated focus ids. Values are ORed within this facet; supplied facets are ANDed. Omitting the facet or selecting every id leaves it unfiltered, including untagged episodes; none returns no episodes.

Response

Matches, newest first.

qstring required

The trimmed query as executed.

countinteger required

Number of results returned (at most 20).

partialtrue

Present only when the results came from a windowed query rather than the whole library.

searched_recent300

Window ceiling in newest episodes matching the other filters, not the actual number scanned. Appears with partial.

Changes

No recorded changes to this operation across all 1 revision of this API.