canonical: https://jentic.com/apis/dacast.com/dacast

# Dacast API

Dacast is a video streaming platform aimed at broadcasters, sports rights holders, and businesses that need monetised live and on-demand video. The v2 API exposes 14 endpoints covering live streams, video on demand assets, and channels, all behind an X-API-Key header. It supports the workflows needed to schedule a live event, upload a VOD asset, manage scheduled channels, and clean up content after broadcast.

## For AI agents

Manage Dacast live streams, video on demand assets, and channels for end-to-end video publishing workflows.

## Scope

Does not handle player embedding, viewer analytics, or paywall configuration - use for live stream, VOD, and channel content management only.

## Capabilities

- Create a live stream and configure ingest settings via POST /live
- Upload a video on demand asset and store its metadata via POST /vod
- Update VOD or live stream details such as title, description, and access settings
- Create a 24/7 channel for scheduled looping or simulated-live programming
- List existing live streams, VOD assets, or channels for a portfolio audit
- Delete content after broadcast or rights expiry to keep the catalogue clean

## Use cases

### Live Event Provisioning

Production teams running a series of live events use POST /live to provision a fresh stream for each event, capturing the stream key and ingest URL for the encoder. The agent pre-creates streams the night before, attaches the right access settings, and writes the credentials into the production runbook so the broadcast team can connect directly.

Example prompt: POST to /live with title 'Q3 Earnings Call' and the desired access settings, then return the ingest URL and stream key.

### VOD Catalogue Management

Content teams managing a library of recorded videos use POST /vod to add new assets and PUT `/vod/{contentId}` to keep titles, descriptions, and pricing settings consistent. Periodically the agent calls GET /vod to audit the catalogue, identify orphaned or expired assets, and call DELETE `/vod/{contentId}` to remove them.

Example prompt: Call GET /vod, filter for assets last updated more than 18 months ago, and DELETE `/vod/{contentId}` for each match.

### 24/7 Channel Programming

Broadcasters running always-on channels for highlights, training content, or marketing loops use POST /channel to create the channel and PUT to update its programming. The API surfaces the playlist and access settings so an agent can rotate content through a virtual channel without manual editing in the dashboard.

Example prompt: POST to /channel with title 'Customer Stories Loop' and a playlist of contentIds, then return the new channel ID.

### Agent-Driven Content Cleanup

An AI agent running a weekly housekeeping job lists every live stream and VOD asset, cross-references them with an internal rights database, and removes content that has aged out. The combination of GET /live, GET /vod, and the matching DELETE endpoints lets the agent enforce retention policy without a human reviewing every asset.

Example prompt: For each contentId in the rights database with status='expired', call DELETE `/vod/{contentId}` or DELETE `/live/{contentId}` and log the outcome.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/live` | Create a live stream |
| GET | `/live` | List live streams |
| POST | `/vod` | Create VOD content |
| GET | `/vod` | List VOD content |
| PUT | `/vod/{contentId}` | Update VOD content |
| DELETE | `/vod/{contentId}` | Delete VOD content |
| POST | `/channel` | Create a channel |
| GET | `/channel` | List channels |

## Key resources

- **VOD** — On-demand video assets and their metadata
- **Live Streams** — Live broadcast streams with ingest settings
- **Channels** — Scheduled or always-on linear channels

## Why Jentic

- **Setup:** Wiring Dacast by hand means learning its X-API-Key header auth against developer.dacast.com/v2 and handling upload, listing, and retry plumbing for live streams and VOD yourself. Through Jentic you install once, import the Dacast API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Dacast puts the content id in the URL path (`/vod/{contentId}`), so a rule can pin your agent to one VOD asset for reads and updates. You choose the operations it may call, so destructive ones like deleting a VOD asset are not included unless you add them.
- **Credential handling:** Your Dacast X-API-Key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a Dacast live stream' or 'upload a video to Dacast', and Jentic returns the matching Dacast operation with its input schema so the agent calls the right endpoint without browsing the developer.dacast.com docs.

## Related APIs

- **Vimeo API** — Video hosting platform with stronger creator-tooling and richer player customisation than Dacast.
- **Mux Video API** — Developer-first video infrastructure with API-driven live and on-demand workflows.
- **Cloudflare API** — Cloudflare Stream and CDN sit alongside Dacast for delivery and edge caching.

## FAQ

### What authentication does the Dacast API use?

The Dacast API uses an API key passed in the X-API-Key header. You generate the key in the Dacast account settings and include it on every request to developer.dacast.com/v2. Through Jentic the key is stored encrypted in the vault and the agent receives a scoped runtime credential, so the raw key never enters the model context.

### Can I create a live stream with the Dacast API?

Yes. POST /live creates a new live stream and returns the ingest URL and stream key needed by the encoder. You can then GET `/live/{contentId}` to fetch the stream's playback details and PUT `/live/{contentId}` to update settings such as title or access controls.

### What are the rate limits for the Dacast API?

The OpenAPI spec does not document explicit rate limits. Dacast's developer guidance recommends keeping API traffic below a few requests per second per key for management workflows; bulk operations such as catalogue audits should be paced rather than fired in parallel.

### How do I upload a VOD asset through Jentic?

Install pip install jentic and run an agent with the search query 'upload a video to Dacast'. Jentic returns the POST /vod operation with its input schema; the agent provides the asset metadata and follows up with the upload step described in the spec.

### Can I delete expired VOD content through the API?

Yes. DELETE `/vod/{contentId}` removes a VOD asset by ID. A typical pattern is to call GET /vod, filter for assets that have aged out, and loop the matching contentIds through DELETE `/vod/{contentId}` as part of a housekeeping job.

### Does the Dacast API expose viewer analytics?

The 14 endpoints in this spec cover content management for live streams, VOD, and channels. Detailed viewer analytics are surfaced in the Dacast dashboard rather than through these REST endpoints; use the platform's analytics view or contact Dacast for analytics data export options.

### Can I limit what my agent is allowed to do with the Dacast API?

Yes. Because Jentic One is self-hosted, your own rules decide which Dacast operations and credentials the agent may use. Since Dacast puts the content id in the URL path, such as `/vod/{contentId}`, you can pin the agent to a single VOD asset for reads and updates. You also pick the exact operations it may call, so destructive ones like DELETE `/vod/{contentId}` or DELETE `/live/{contentId}` are excluded unless you add them.
