API ReferenceapilivePOST /v1/sessions

POST /v1/sessions

Service: live · operationId: (none)

Create a live session

Required scopes

(no scope declared — review service config)

Request body

{
  "type": "object",
  "properties": {
    "host_id": {
      "type": "string",
      "minLength": 1
    },
    "brand_id": {
      "type": "string",
      "minLength": 1
    },
    "title": {
      "type": "string",
      "minLength": 1
    },
    "scheduled_at": {
      "type": "string",
      "format": "date-time"
    },
    "max_participants": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "kind": {
      "type": "string",
      "enum": [
        "live",
        "office_hours"
      ],
      "default": "live"
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {},
      "default": {}
    }
  },
  "required": [
    "host_id",
    "brand_id",
    "title",
    "scheduled_at",
    "max_participants"
  ]
}

Responses

201 Session created

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "host_id": {
      "type": "string"
    },
    "brand_id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "live",
        "office_hours"
      ]
    },
    "category": {
      "type": [
        "string",
        "null"
      ]
    },
    "scheduled_at": {
      "type": "string",
      "format": "date-time"
    },
    "started_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "ended_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "status": {
      "type": "string",
      "enum": [
        "scheduled",
        "live",
        "ended",
        "cancelled"
      ]
    },
    "stream_call_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "max_participants": {
      "type": "integer"
    },
    "duration_minutes": {
      "type": [
        "integer",
        "null"
      ]
    },
    "recording_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {}
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "registered_count": {
      "type": "integer"
    },
    "is_registered": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "host_id",
    "brand_id",
    "title",
    "kind",
    "category",
    "scheduled_at",
    "started_at",
    "ended_at",
    "status",
    "stream_call_id",
    "max_participants",
    "duration_minutes",
    "recording_url",
    "metadata",
    "created_at",
    "updated_at",
    "registered_count",
    "is_registered"
  ]
}

400 Validation error

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "error",
    "message"
  ]
}

Example

curl -X POST https://live.platform.loop.health/v1/sessions \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'