GET /api/v1/search is the default discovery route. Use it when the question is
a topic (“what are writers saying about AI capex?”) rather than a ticker,
person, or named publication.
Free, no auth. Results are candidates — ranked post cards with
priceCents. The synthesizedSummary still comes from the
paid publication-post route.
MCP: search_posts.
Request
q is required (minimum 2 characters). Default limit is 10.
Do not combine a
platform that conflicts with source (for example
platform=podcast with source=newsletter) — that returns 400.
Response
matchConfidence is strong, weak, or none. Present each item as
{title} ({publicationSlug}, YYYY-MM-DD) — $X.XX when priceCents is known.
Keep publicationSlug + slug for the paid fetch.
isPodcast is true for episodes — the paid post response then includes a
transcript when ready.
Invalid params return 400. Unexpected failures return 500 with
{ "error": "Search failed. Please retry." }.

