---
title: "Vimond Play Service API — compact index for LLMs"
description: "Compact index for viewer-facing playout (stream URLs, DRM, player session template)."
---

<!-- /openapi/play-service.llms.md — generated from /openapi/play-service.yaml; do not edit by hand -->

# Vimond Play Service API — compact index for LLMs

> Hub-maintained spec enriched from guides; runtime Swagger in `vimond-play-service` until export is automated.

- **Per-tag slices:** `/openapi/play-service/tags/<slug>.openapi.yml`
- Canonical YAML: `/openapi/play-service.yaml`
- Scalar: `/reference/play-service/`
- Guides: [video-playback](/docs/video-playback/), [video-playback-1-1](/docs/video-playback-1-1/)

## API basics

- **Base URL:** `https://{tenant}.play-service.cf.{environment}.vmnd.tv`
- **Auth:** Bearer JWT + `X-Vimond-Subprofile` (v2). Forward `User-Agent`.
- **Primary op:** `POST /api/v2/asset/{assetId}/play` — prefer over deprecated v1.
- **Upstream:** Asset ids from [content-discovery.llms.md](/openapi/content-discovery.llms.md); events to [player session API](/docs/player-session-api/).

## Tags overview

| Tag | Operations | Per-tag slice | Description |
|-----|------------|---------------|-------------|
| Playout | 1 | [`openapi/play-service/tags/playout.openapi.yml`](/openapi/play-service/tags/playout.openapi.yml) | Stream URL retrieval for a published asset (v2 recommended). |
| Deprecated | 1 | [`openapi/play-service/tags/deprecated.openapi.yml`](/openapi/play-service/tags/deprecated.openapi.yml) | Legacy v1 playout path. |

## Operations

### Tag: Playout (1)

**Per-tag slice:** [`/openapi/play-service/tags/playout.openapi.yml`](/openapi/play-service/tags/playout.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

Stream URL retrieval for a published asset (v2 recommended).

#### POST /api/v2/asset/{assetId}/play — `playAssetV2`
**Tag:** Playout • **Auth:** VimondAuth • **Responses:** 200, 400, 401, 403, 404, 503
path: assetId • query: platform, profile, provider, appName, contentType, streamId, excludeStreams, extraFields, versions, orderVersionsByPriority • headers: User-Agent, Accept-Language, X-Vimond-Subprofile
**Get play URLs for an asset (v2)**
Primary playback endpoint. Validates entitlements, geo, device rules, and selects the best stream for the client user agent and query filters.

### Tag: Deprecated (1)

**Per-tag slice:** [`/openapi/play-service/tags/deprecated.openapi.yml`](/openapi/play-service/tags/deprecated.openapi.yml) — self-contained OpenAPI for just this tag's operations and the schemas they reference.

Legacy v1 playout path. Use v2 instead.

#### POST /api/v1/asset/{assetId}/play — `playAssetV1`
**Tag:** Deprecated • **Auth:** VimondAuth • **Responses:** 200, 204, 400, 403, 404, 503 • **deprecated**
path: assetId • query: platform, profile, provider, appName, contentType, streamId, excludeStreams, fields, versions, orderVersionsByPriority • headers: User-Agent, Accept-Language, X-Vimond-Subprofile, X-Vimond-Tenant
**Get play URLs for an asset (v1, deprecated)**
Legacy playout endpoint. Prefer **v2**. Differences: uses query param `fields` instead of `extraFields`; may return **204** when no stream matches; future transmission-time assets behave differently.

---

_Generated from `/openapi/play-service.yaml` — 2 operations across 2 tags. Re-run `npm run openapi-derivatives` to refresh._
