Bold VideoDocs

Auth Sessions

Revoke all of the authenticated viewer's sessions except the current one

POST
/api/v1/auth/sessions/revoke-others

Authorization

upstream_jwt
AuthorizationBearer <token>

Customer IdP JWT used by session-management client endpoints. Must match the tenant policy's issuer/audience/JWKS settings.

In: header

Header Parameters

X-Bold-Tenant-Slug*string

Tenant slug for the BOLD account, for example hrtu.

x-bold-session-id*string

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

POST
/api/v1/auth/sessions/{id}/revoke

Authorization

upstream_jwt
AuthorizationBearer <token>

Customer IdP JWT used by session-management client endpoints. Must match the tenant policy's issuer/audience/JWKS settings.

In: header

Path Parameters

id*string

Session UUID

Header Parameters

X-Bold-Tenant-Slug*string

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

GET
/api/v1/auth/sessions/{id}/verify

Authorization

upstream_jwt
AuthorizationBearer <token>

Customer IdP JWT used by session-management client endpoints. Must match the tenant policy's issuer/audience/JWKS settings.

In: header

Path Parameters

id*string

Session UUID

Header Parameters

X-Bold-Tenant-Slug*string

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

GET
/api/v1/auth/sessions

Authorization

upstream_jwt
AuthorizationBearer <token>

Customer IdP JWT used by session-management client endpoints. Must match the tenant policy's issuer/audience/JWKS settings.

In: header

Header Parameters

X-Bold-Tenant-Slug*string

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

POST
/api/v1/auth/sessions

Authorization

upstream_jwt
AuthorizationBearer <token>

Customer IdP JWT used by session-management client endpoints. Must match the tenant policy's issuer/audience/JWKS settings.

In: header

Header Parameters

X-Bold-Tenant-Slug*string

Tenant slug for the BOLD account, for example hrtu.

Request Body

application/json

Create-session payload

client_ip?string|null

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.

device_id*string
device_label?string|null

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).

platform*string
Value in"web" | "ios" | "android"
user_agent?string|null

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"
}