Auth Sessions
Revoke all of the authenticated viewer's sessions except the current one
Authorization
upstream_jwt Customer IdP JWT used by session-management client endpoints. Must match the tenant policy's issuer/audience/JWKS settings.
In: header
Header Parameters
Tenant slug for the BOLD account, for example hrtu.
ID of the session to keep
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://app.boldvideo.io/api/v1/auth/sessions/revoke-others" \ -H "X-Bold-Tenant-Slug: string" \ -H "x-bold-session-id: string"{
"ok": true,
"revoked_count": 0
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"error": "self_management_disabled"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}Self-revoke one of the authenticated viewer's sessions
Authorization
upstream_jwt Customer IdP JWT used by session-management client endpoints. Must match the tenant policy's issuer/audience/JWKS settings.
In: header
Path Parameters
Session UUID
Header Parameters
Tenant slug for the BOLD account, for example hrtu.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://app.boldvideo.io/api/v1/auth/sessions/string/revoke" \ -H "X-Bold-Tenant-Slug: string"{
"ok": true,
"session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}Verify a session is still valid
Authorization
upstream_jwt Customer IdP JWT used by session-management client endpoints. Must match the tenant policy's issuer/audience/JWKS settings.
In: header
Path Parameters
Session UUID
Header Parameters
Tenant slug for the BOLD account, for example hrtu.
Response Body
application/json
application/json
application/json
curl -X GET "https://app.boldvideo.io/api/v1/auth/sessions/string/verify" \ -H "X-Bold-Tenant-Slug: string"{
"reason": "session_not_found",
"valid": true
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}List active sessions for the authenticated viewer
Authorization
upstream_jwt Customer IdP JWT used by session-management client endpoints. Must match the tenant policy's issuer/audience/JWKS settings.
In: header
Header Parameters
Tenant slug for the BOLD account, for example hrtu.
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://app.boldvideo.io/api/v1/auth/sessions" \ -H "X-Bold-Tenant-Slug: string"{
"data": [
{
"device_id": "string",
"device_label": "string",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"inserted_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"platform": "string"
}
]
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"error": "self_management_disabled"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}Create a session for the authenticated viewer's device
Authorization
upstream_jwt Customer IdP JWT used by session-management client endpoints. Must match the tenant policy's issuer/audience/JWKS settings.
In: header
Header Parameters
Tenant slug for the BOLD account, for example hrtu.
Request Body
application/json
Create-session payload
Optional end-user IP address used only for the session's coarse geo-location (city/country); the raw IP is never returned. Intended for trusted server-side integrators whose connecting IP is a datacenter egress (e.g. a Next.js app on Vercel): forward the real viewer IP here so the stored location reflects the viewer, not your server. When omitted, the server uses the proxy-aware connecting IP. Accepts IPv4 or IPv6; an unparseable value is ignored and the connecting IP is used.
Optional human-readable device label. When omitted (the usual case), the server derives one from user_agent (e.g. "Chrome · macOS"). A non-blank value supplied here takes precedence and is stored as-is (max 255 chars).
"web" | "ios" | "android"Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://app.boldvideo.io/api/v1/auth/sessions" \ -H "X-Bold-Tenant-Slug: string" \ -H "Content-Type: application/json" \ -d '{ "device_id": "string", "platform": "web" }'{
"bypassed": true,
"expires_at": "2019-08-24T14:15:22Z",
"session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82"
}{
"challenge_id": "331c5928-fdd1-4016-9993-1395c38cce7b",
"challenge_required": true,
"email_hint": "string"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"active_sessions": [
{
"device_id": "string",
"device_label": "string",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"inserted_at": "2019-08-24T14:15:22Z",
"last_seen_at": "2019-08-24T14:15:22Z",
"platform": "string"
}
],
"error": "device_limit_exceeded"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}