Skip to main content
GET
cURL

Authorizations

Authorization
string
header
required

Paste your API key as the CMS showed it: fsk_<site>_<key id>_<secret> (issued under API Keys). ApiKey in front of it works too. Leave it empty to read as the public.

Scopes

content:videos:read

Path Parameters

_id
string
required

The document’s _id: a full id names its own locale and mode (the draft’s …:en:draft, the published one’s …:en:published; no aposMode needed), a bare aposDocId takes the request’s (aposLocale, aposMode).

Query Parameters

aposMode
enum<string>
default:published

published (the default) or draft. Drafts need a credential that may see them: an API key with the type’s write scope (content:<type>:write), or a signed-in editor. The public and a key with only the read scope get 403.

Available options:
draft,
published
aposLocale
string

The locale to read or write, e.g. en (default: the site’s default locale).

Example:

"fr"

render-areas
boolean
default:false

true: each area’s widgets come back rendered as HTML (_rendered), beside their data.

Response

Success

Video content type

title
string
default:""
required

Its title: the name it goes by in every list, and the heading of its page where it has one.

video
Video file · object
required

mp4 or webm. For background loops keep it short, muted, and ideally under ~10 MB.

slug
string
default:""
required

The URL name: lowercase words joined by hyphens (letters outside a–z, even emoji, are kept).

visibility
enum<string>
default:public
required

Select whether this content is public or private

Available options:
public,
loginRequired
_id
string
required
read-only

The document’s id. On a type with drafts it ends in its locale and mode (…:en:published, …:en:draft): the part before the first colon is its aposDocId, shared by both copies. The {_id} the type’s routes take.

type
string
required
read-only

The document type’s name: always this type’s.

createdAt
string<date-time>
required
read-only

When it was created (ISO 8601).

updatedAt
string<date-time>
required
read-only

When it last changed (ISO 8601).

poster
Poster / fallback image · object

Shown while the video loads, and instead of it for reduced-motion visitors. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.

Example:
_folder
Folder · object[] | null

Optional. File this item in a media folder — the stored file physically moves to the matching location in storage. The related video-folder documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out.

Maximum array length: 1
scheduledPublish
string | null

An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.

scheduledUnpublish
string | null

An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.

archived
boolean | null
default:false

In the archive: kept, but out of every list and off the site until it is restored. false (or null) for a live document.

aposShareKey
string | null
read-only

The draft’s preview share key, while its share link is on: the link is the draft’s _url with aposShareKey and aposShareId (the draft’s _id) in its query. Absent otherwise, and on published documents.

Example:

"k3v9x2m7q1z8w4p6"