# ZDF — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and browse German TV content, live streams, and episode details from ZDF Mediathek, or discover what's currently airing and trending on their homepage. Explore shows by category, find specific programs by name, and check the full TV schedule all in one place.

**Category:** Streaming Video | **Website:** [zdf.de/](https://zdf.de/) | **Docs:** [parse.bot/marketplace/c05b8871-b1f5-487d-9ed0-2fe8484fc726/zdf-de-api](https://parse.bot/marketplace/c05b8871-b1f5-487d-9ed0-2fe8484fc726/zdf-de-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-zdf-de-api-c05b8871/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_episode_details

Get detailed metadata for a specific episode or video by its canonical slug. Returns title, tracking data, streaming info, episode info, smart collection context, and optionally parsed guests/cast/crew from the episode page HTML.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `canonical` | string | Yes | The canonical slug of the episode (e.g. auslandsjournal-vom-10-juni-2026-100). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-zdf-de-api-c05b8871/get_episode_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"canonical":"<string>"}'
```

### get_homepage_highlights

Get featured content clusters from the ZDF homepage. Returns curated content sections (clusters) with show/collection recommendations based on popularity and editorial curation.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-zdf-de-api-c05b8871/get_homepage_highlights \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_live_streams

List all currently active live streams on ZDF Mediathek. Returns an array of live stream video objects with canonical slugs, media type, teaser title, and scheduling information.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-zdf-de-api-c05b8871/get_live_streams \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_show_details

Get metadata for a show including its title, internal collection ID, and recent episodes. Attempts to find the show page across multiple ZDF URL paths (serien, talk, filme, show) and fetches episode recommendations for the show's collection.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `canonical` | string | Yes | The canonical slug of the show (e.g. markus-lanz-114). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-zdf-de-api-c05b8871/get_show_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"canonical":"<string>"}'
```

### get_tv_program

Get the TV broadcast schedule (EPG) for a specific date across ZDF, ZDFinfo, ZDFneo, 3sat, KI.KA, PHOENIX, and arte. Returns broadcaster blocks with now/next broadcasts and the full daily broadcast list.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `date` | string | No | The date in YYYY-MM-DD format. Omitting defaults to today's date. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-zdf-de-api-c05b8871/get_tv_program \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"<string>"}'
```

### list_category_content

List content within a specific category or collection (meta collection). Returns paginated show listings for a given publication form or meta collection with genre filter tabs.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `after` | string | No | Pagination cursor from previous response's pageInfo.endCursor. |
| `collection_id` | string | Yes | The collection ID for a content category. |
| `limit` | integer | No | Number of items per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-zdf-de-api-c05b8871/list_category_content \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"after":"<string>","collection_id":"<string>","limit":"<integer>"}'
```

### list_shows_az

List shows in the A-Z catalogue. Returns paginated catalogue entries organized by alphabetical tabs, with show metadata including title, canonical, genre, and content owner.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `end_cursor` | string | No | Pagination cursor from previous response's content.pageInfo.endCursor. |
| `limit` | integer | No | Number of items per page. |
| `offset` | integer | No | Pagination offset for the static grid cluster. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-zdf-de-api-c05b8871/list_shows_az \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"end_cursor":"<string>","limit":"<integer>","offset":"<integer>"}'
```

### search_content

Full-text search over ZDF Mediathek content. Returns paginated search results including video items with metadata such as title, canonical slug, editorial date, and teaser info. Paginates via cursor (endCursor from pageInfo).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `after` | string | No | Pagination cursor for next page, obtained from previous response's pageInfo.endCursor. |
| `limit` | integer | No | Number of results to return per page. |
| `query` | string | Yes | Search query string. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-zdf-de-api-c05b8871/search_content \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"after":"<string>","limit":"<integer>","query":"<string>"}'
```
