API referenceProjects
Update the project's player customization
Update the project's player customization
PATCH
/v1/projects/{id}/player-settingsThis operation supports dashboard session-cookie authentication. Call it only from trusted server code; browsers must not manufacture or expose the session cookie.
Partial update: send only the fields that change; controls patches
per-key. The stored document is always the full effective object
(defaults merged, playbackSpeeds normalized to include 1.0), and the
response returns it. Session-cookie auth only. Rate limit: 60 requests
per 60 s per session.
Error codes: unauthorized (401), not_found (404),
invalid_player_settings (400), invalid_custom_css (400 — the
response error.details.violations lists the rejected rules).
Authentication
- sessionCookie — Dashboard session cookie set by
POST /v1/auth/login. Video and playback endpoints additionally require theprojectIdquery parameter under cookie auth.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (Ulid) | Yes | — |
Request body
required
Content type: application/json
Schema: PlayerSettingsPatch
{
"uiLanguage": "en",
"primaryColor": "#14e6b3",
"controls": {
"pip": true
},
"playbackSpeeds": [
0.5,
1,
1.5,
2,
3
]
}Responses
| Status | Meaning |
|---|---|
200 | The full effective player settings after the patch. |
400 | The request body or query failed validation. The per-operation description lists the exact error.code values. |
401 | No valid credential was presented. |
404 | The resource does not exist or is not visible to this caller. |
429 | Rate limit exceeded. |
Example request
{
"uiLanguage": "en",
"primaryColor": "#14e6b3",
"controls": {
"pip": true
},
"playbackSpeeds": [
0.5,
1,
1.5,
2,
3
]
}