zdf.de APIzdf.de ↗
Access ZDF Mediathek content via API: search episodes, get show metadata, live streams, TV schedules for ZDF, ZDFneo, 3sat, arte, and more.
curl -X GET 'https://api.parse.bot/scraper/932501ef-d2bf-467c-8114-dfaf39646c29/search_content?limit=24&query=Tatort' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for content on ZDF Mediathek by query string. Returns paginated search results including video items with metadata.
| Param | Type | Description |
|---|---|---|
| after | string | Pagination cursor for next page, obtained from previous response's pageInfo.endCursor. |
| limit | integer | Number of results to return. |
| queryrequired | string | Search query string. |
{
"type": "object",
"fields": {
"results": "array of search result items with video metadata",
"pageInfo": "pagination info with hasNextPage and endCursor"
},
"sample": {
"data": {
"results": [
{
"item": {
"title": "Markus Lanz vom 6. Mai 2026",
"canonical": "markus-lanz-vom-6-mai-2026-100",
"__typename": "Video"
}
}
],
"pageInfo": {
"endCursor": "abc123",
"hasNextPage": true
}
},
"status": "success"
}
}About the zdf.de API
The ZDF Mediathek API exposes 8 endpoints covering content search, episode and show metadata, live streams, and broadcast schedules across seven German-language TV channels. The get_tv_program endpoint returns full EPG data for ZDF, ZDFinfo, ZDFneo, 3sat, KI.KA, PHOENIX, and arte for any given date, while search_content lets you query the entire Mediathek catalogue with cursor-based pagination.
Content Search and Discovery
The search_content endpoint accepts a query string and returns an array of video items with metadata alongside a pageInfo object containing hasNextPage and endCursor for paginated traversal. Pass the endCursor value back as the after parameter to retrieve subsequent pages. The get_homepage_highlights endpoint requires no inputs and returns curated clusters — named content sections with their constituent items — reflecting what ZDF is currently featuring.
Show and Episode Metadata
get_show_details takes a canonical slug (e.g. die-chefin-114) and returns the show title, a collectionId that identifies the episode collection, and an episodes object with individual episode items. That collectionId can then be passed to list_category_content as a collection_id to paginate through episodes or related content. get_episode_details returns richer per-episode data: cast and crew arrays for fiction titles, a guests array for talk-show formats, the parent smartCollection reference, and a currentMediaType field indicating whether the item is an EPISODE or another type.
Live Streams and TV Schedule
get_live_streams returns a nodes array of currently active streams, each with a canonical slug, currentMediaType, and teaser title — no inputs required. The get_tv_program endpoint accepts an optional date parameter in YYYY-MM-DD format (defaults to today) and returns an epg array structured per broadcaster, with now/next entries and full broadcast lists for each channel.
Catalogue Browsing
list_shows_az returns the full A-Z catalogue with alphabetical tabs (each including item counts) and a paginated content node list. Use the offset or end_cursor parameters to page through results. list_category_content accepts a collection_id such as pub-form-10010 (Serien) or pub-form-10006 (Nachrichten) and returns smartCollections with show metadata, genre tabs for filtering, and pageInfo for pagination.
- Build a German-language TV guide app using
get_tv_programEPG data across ZDF, ZDFneo, 3sat, and arte - Index the ZDF Mediathek catalogue for a search interface using
search_contentwith cursor pagination - Populate a show database with cast, crew, and guest metadata from
get_episode_details - Track currently airing content by polling
get_live_streamsfor active stream objects - Generate an A-Z directory of ZDF shows using
list_shows_azalphabetical tabs and paginated nodes - Classify content by genre or publication form using
list_category_contentwith known collection IDs - Surface trending ZDF content by reading
clustersfromget_homepage_highlights
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ZDF offer an official developer API?+
What does `get_tv_program` return, and which channels does it cover?+
epg array where each element corresponds to one broadcaster. Covered channels are ZDF, ZDFinfo, ZDFneo, 3sat, KI.KA, PHOENIX, and arte. Each broadcaster block includes now/next broadcast metadata and a full broadcast list for the requested date. Pass a date string in YYYY-MM-DD format to query a specific day; omitting the parameter defaults to the current date.Can I retrieve streaming URLs or video playback links from these endpoints?+
How does pagination work across the different endpoints?+
search_content and list_category_content use cursor-based pagination: pass the endCursor value from a response's pageInfo into the after parameter of the next request. list_shows_az supports both offset-based pagination via offset and cursor-based pagination via end_cursor. The hasNextPage boolean in pageInfo indicates whether additional results exist.