Discover/Europa API
live

Europa APIaudiovisual.ec.europa.eu

Retrieve the European Broadcasting Service daily schedule with livestream URLs, program metadata, video/audio tracks, and subtitles for any date via one API endpoint.

This API takes change requests — .
Endpoint health
verified 3d ago
get_schedule
1/1 passing latest checkself-healing
Endpoints
1
Updated
17d ago

What is the Europa API?

The audiovisual.ec.europa.eu API provides access to the European Broadcasting Service (EBS) broadcast schedule through a single get_schedule endpoint that returns over a dozen metadata fields per program, including titles, summaries, HLS and DASH livestream URLs, video and audio tracks, subtitle availability, broadcast status, and institutional affiliation. It covers both EBS and EBS+ channels and accepts a date parameter for any historical or future schedule date.

This call costs2 credits / call— charged only on success
Try it
Date in YYYYMMDD format (e.g. 20260728). Defaults to today (UTC) when omitted.
Which channel(s) to include in results.
api.parse.bot/scraper/08282d92-624e-478c-9995-8611da4e2c45/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/08282d92-624e-478c-9995-8611da4e2c45/get_schedule?date=20260814&channel=both' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace audiovisual-ec-europa-eu-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: EU EBS Schedule SDK — bounded, re-runnable; every call capped."""
from parse_apis.audiovisual_ec_europa_eu_api import EBS, Channel, InvalidInput

client = EBS()

# Fetch today's schedule for both channels, capped at 3 programs.
for program in client.schedules.get(channel=Channel.BOTH, limit=3):
    print(program.title, program.channel, program.broadcast_status)
    for tx in program.transmissions[:2]:
        print("  ", tx.summary, tx.stream_url)

# Fetch schedule for a specific date and single channel.
item = client.schedules.get(date="20260728", channel=Channel.EBS, limit=1).first()
if item:
    tx = item.transmissions[0]
    print(tx.title, tx.place, tx.reference)
    for video in tx.videos[:2]:
        print("  video:", video.height, video.codec, video.url)

# Handle invalid input gracefully.
try:
    client.schedules.get(date="bad-date", limit=1).first()
except InvalidInput as e:
    print("invalid input:", e)

print("exercised: schedules.get")
All endpoints · 1 totalmissing one? ·

Retrieve the EBS broadcast schedule for a given date. Returns all programs across EBS and/or EBS+ channels with full metadata including titles, summaries, livestream/VOD URLs (HLS and DASH), video/audio tracks, subtitles, broadcast status, locations, and institutional affiliations. Each program contains one or more transmissions (segments) with individual media assets. Results are single-page (one date per request).

Input
ParamTypeDescription
datestringDate in YYYYMMDD format (e.g. 20260728). Defaults to today (UTC) when omitted.
channelstringWhich channel(s) to include in results.
Response
{
  "type": "object",
  "fields": {
    "date": "string — the queried date in YYYYMMDD format",
    "items": "array of program objects with full broadcast metadata and transmission segments"
  },
  "sample": {
    "data": {
      "date": "20260728",
      "items": [
        {
          "id": "6a5dda6fcbacfcbf6269db16",
          "date": "20260728",
          "title": "EC Midday press briefing of 28/07/2026",
          "status": "PUBLISHED",
          "channel": "EBS",
          "languages": [
            "INT",
            "EN",
            "FR"
          ],
          "transmissions": [
            {
              "id": "6a688f05aca94a2e42f488b5",
              "place": "Berlaymont press room, Brussels",
              "title": "EC Midday press briefing of 28/07/2026",
              "audios": [
                {
                  "url": "https://vod.prd.commavservices.eu/12/293272/019fa86e-b405-7457-82dd-75af6151663b/qaa.mp4",
                  "codec": "aac",
                  "layout": "mono",
                  "bitrate": 68.63,
                  "language": "INT"
                }
              ],
              "videos": [
                {
                  "url": "https://vod.prd.commavservices.eu/12/293272/019fa86e-b405-7457-82dd-75af6151663b/1080p-qaa.mp4",
                  "codec": "h264",
                  "width": 1920,
                  "height": 1080,
                  "bitrate": 9776.93,
                  "language": "INT"
                }
              ],
              "summary": "ANNOUNCEMENT - Media arrangements",
              "dash_url": "https://vod.prd.commavservices.eu/12/293272/019fa86e-b405-7457-82dd-75af6151663b/manifest.mpd",
              "languages": [
                "INT"
              ],
              "reference": "I-293272",
              "subtitles": [],
              "media_type": "VIDEO",
              "stream_url": "https://vod.prd.commavservices.eu/12/293272/019fa86e-b405-7457-82dd-75af6151663b/master.m3u8",
              "display_type": "SUMMARY",
              "institutions": [
                "European Commission"
              ],
              "thumbnail_url": "https://api.prd.commavservices.eu/thumbnail/I-293272/019fa86e-b405-7457-82dd-75af6151663b/%{SIZE}.jpg?t=1785238267",
              "start_datetime": "2026-07-28T10:10:51.400Z",
              "duration_seconds": 3786.48
            }
          ],
          "start_datetime": "2026-07-28T10:10:51.400Z",
          "broadcast_status": "LIVE",
          "duration_seconds": 3786.48
        }
      ]
    },
    "status": "success"
  }
}

About the Europa API

What the API returns

The get_schedule endpoint returns the full daily broadcast schedule for the EBS and EBS+ channels operated by the European Commission's Audiovisual Service. Each response contains a date field confirming the queried day (in YYYYMMDD format) and an items array where every element represents one scheduled program. Program objects carry titles, summaries, broadcast status, geographic location of the originating event, and the institutional body associated with the content.

Streaming and media fields

Each program object exposes both HLS and DASH URLs for live and on-demand playback, so applications can integrate directly with standard video players without additional URL construction. The response also includes discrete video and audio track descriptors and subtitle metadata, making it straightforward to surface multilingual options — relevant for EU institutional broadcasts that routinely include multiple language feeds.

Filtering by channel and date

The date input parameter accepts an optional YYYYMMDD string; omitting it defaults to the current UTC date, which is useful for real-time schedule displays. The channel parameter lets you narrow results to EBS, EBS+, or both. Combining the two parameters is the primary way to scope responses for a specific channel on a specific day, since the endpoint returns all matching items in a single flat array with no pagination.

Reliability & maintenanceVerified

The Europa API is a managed, monitored endpoint for audiovisual.ec.europa.eu — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when audiovisual.ec.europa.eu changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official audiovisual.ec.europa.eu API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Display today's EU institutional broadcast schedule in a media monitoring dashboard using the default-date behavior of get_schedule.
  • Build a schedule archive by querying get_schedule with historical date values to collect program titles, summaries, and institutional affiliations over time.
  • Integrate HLS or DASH stream URLs into a custom video player for automated playout of live EU parliamentary or commission proceedings.
  • Alert subscribers when a specific institution's programs are scheduled by filtering items on the institutional affiliation field.
  • Surface multilingual audio tracks and subtitle options to end users by parsing the track and subtitle metadata returned per program object.
  • Generate a program guide for EBS+ only by passing the channel parameter to restrict results to a single channel.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does audiovisual.ec.europa.eu have an official developer API?+
The European Commission's Audiovisual Service does not publish a documented public developer API for the EBS schedule. The data is exposed through the schedule grid at audiovisual.ec.europa.eu, and this Parse API surfaces it in a structured JSON format.
What does the `get_schedule` endpoint return for each program, and how do the stream URLs work?+
Each program object in the items array includes a title, summary, broadcast status, originating location, institutional affiliation, HLS and DASH URLs for live or on-demand playback, individual video and audio track descriptors, and subtitle metadata. The stream URLs are returned ready to pass to any HLS- or DASH-compatible video player.
Does the API return schedule data for channels other than EBS and EBS+?+
Currently the API covers EBS and EBS+ channels accessible via the audiovisual.ec.europa.eu schedule grid. Other European Commission audiovisual channels or on-demand archives are not included. You can fork this API on Parse and revise it to add endpoints targeting those additional content areas.
Is historical schedule data available, or is the API limited to today?+
The date parameter accepts any YYYYMMDD string, so you can query past and future dates supported by the EBS schedule grid. The endpoint defaults to the current UTC date when date is omitted. Note that whether content for a very distant past or future date is populated depends on what the EBS schedule grid itself holds for that date.
Does the API expose per-language stream URLs or just a single stream per program?+
The response includes discrete video and audio track fields and subtitle metadata per program, reflecting the multilingual track structure common in EU institutional broadcasts. Selecting a specific language track from that metadata is handled at the player or application layer. Individual per-language direct stream URLs beyond the HLS/DASH manifest are not currently broken out as separate top-level fields. You can fork the API on Parse and revise it to extract and expose individual language track URLs if your use case requires them.
Page content last updated . Spec covers 1 endpoint from audiovisual.ec.europa.eu.
Related APIs in Streaming VideoSee all →
civicstream.tv API
Watch live government proceedings from state legislatures, city councils, and national feeds directly through Civic Stream. Check the schedule to plan when you want to tune into your elected representatives at work.
c-span.org API
Find C-SPAN TV schedules by channel and date, and look up detailed information about specific events and programs. Plan your viewing by browsing what's on air and discovering full details about any broadcast that interests you.
nts.live API
Access data from nts.live.
zdf.de API
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.
sg001-harmony.sliq.net API
Check the upcoming livestream schedule for Colorado General Assembly sessions and committee meetings directly from their Harmony video system. Find event details like dates, times, and session information to plan when to watch legislative proceedings live.
espa.gr API
Discover and browse EU funding programs available in Greece, view detailed information about each initiative, and stay updated with the latest news from the ESPA portal. Search across the database and explore program planning details to find opportunities relevant to your interests.
house.texas.gov API
Watch live legislative events from the Texas House of Representatives by accessing the broadcast schedule for committee hearings and other proceedings. Plan your viewing by retrieving detailed information about upcoming livestreams and their scheduled times.
thetvdb.com API
Search and discover TV shows from TheTVDB's database, view trending series, and access detailed episode information. Browse complete show listings or find specific titles to retrieve comprehensive data about seasons, episodes, and air dates.