> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dripstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Publications

> Browse or search the curated catalog, then list recent posts for one source.

Use these routes when the user names a **newsletter, author, podcast, or
URL**, or asks what publications are available. Do not load the full catalog
for a topic question — use [Topic Search](/search) instead.

Free, no auth.

MCP: `list_publications`, `search_publications`, `get_publication`,
`list_podcasts`, `get_podcast`.

## Find a publication by name

`GET /api/v1/publications/search?q=...` — `q` is required (minimum 2
characters). Returns up to 3 matches.

```bash theme={null}
curl "https://dripstack.com/api/v1/publications/search?q=Unchained"
```

```json theme={null}
{
  "query": "Unchained",
  "count": 1,
  "items": [
    {
      "publicationSlug": "unchainedcrypto.beehiiv.com",
      "title": "Unchained Daily Newsletter",
      "author": "Unchained",
      "siteUrl": "https://unchainedcrypto.beehiiv.com"
    }
  ]
}
```

## One publication and its recent posts

`GET /api/v1/publications/{publicationSlug}` works for any indexed slug, not
only the curated list. Optional `limit` is 1-100.

```bash theme={null}
curl "https://dripstack.com/api/v1/publications/unchainedcrypto.beehiiv.com?limit=20"
```

The response includes publication metadata plus `posts[]` with `slug`,
`title`, `subtitle`, `publishedAt`, `priceCents`, and `isPodcast`. Unknown
slugs return `404`.

Unlock a selected post with
`GET /api/v1/publications/{publicationSlug}/{postSlug}` after confirming
`$X.XX` from `priceCents`. See [Payment Flow](/concepts/payment-flow).

## Browse the curated catalog

`GET /api/v1/publications` lists curated newsletters, podcasts, and
publications (`slug`, `title`, `description`, `siteUrl`, `lastSyncedAt`).
Use this only when the user explicitly wants to browse what is available.

```bash theme={null}
curl "https://dripstack.com/api/v1/publications"
```

## Podcasts

Same JSON envelope as publications (`{ "publications": [...] }`).

```bash theme={null}
curl "https://dripstack.com/api/v1/podcasts"
curl "https://dripstack.com/api/v1/podcasts/{publicationSlug}?limit=20"
```

`GET /api/v1/podcasts/{publicationSlug}` returns `404` unless the slug is a
podcast. Unlock episodes with the same paid publication-post route as
newsletters.
