openapi: 3.0.3 info: title: Castr Analytics API description: 'Castr is a live video streaming, multistreaming, and video-hosting (VOD) platform. This OpenAPI describes Castr''s documented, self-serve REST API at https://api.castr.com/v2 for managing live streams and their multistream platform destinations, sub-second (WebRTC) streams, video hosting folders and uploads, live-to-VOD recordings, activity logs/events and stream stats, and webhook endpoints. Requests are authenticated with an API token issued from the account settings API section and sent in an authorization header. Endpoint paths, methods, and resource groupings are taken from Castr''s published developer reference and its machine index (developers.castr.com, including llms.txt). The request/response schemas here are honestly modeled from the documentation rather than copied from a Castr-published OpenAPI file; verify property-level detail against the live reference.' version: '1.0' contact: name: Castr url: https://castr.com x-modeled: true servers: - url: https://api.castr.com/v2 description: Castr production API security: - apiToken: [] tags: - name: Analytics description: Activity logs, activity events, and stream stats. paths: /live_streams/{stream_id}/stats: parameters: - $ref: '#/components/parameters/StreamId' get: operationId: getLiveStreamStats tags: - Analytics summary: Get stream stats description: Returns online status, duration, bitrate, codec, resolution, and viewer stats for a stream. responses: '200': description: Stream stats. content: application/json: schema: $ref: '#/components/schemas/StreamStats' '404': $ref: '#/components/responses/NotFound' /activity_logs/stream/{stream_id}: parameters: - $ref: '#/components/parameters/StreamId' get: operationId: getStreamLogs tags: - Analytics summary: Get stream activity logs responses: '200': description: A list of activity log entries for the stream. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ActivityEntry' '404': $ref: '#/components/responses/NotFound' /activity_events/stream/{stream_id}: parameters: - $ref: '#/components/parameters/StreamId' get: operationId: getStreamEvents tags: - Analytics summary: Get stream activity events responses: '200': description: A list of activity events for the stream. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ActivityEntry' '404': $ref: '#/components/responses/NotFound' components: responses: NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: ActivityEntry: type: object properties: id: type: string type: type: string message: type: string timestamp: type: string format: date-time StreamStats: type: object properties: online: type: boolean duration: type: integer description: Current session duration in seconds. bitrate: type: integer codec: type: string resolution: type: string viewers: type: integer Error: type: object properties: error: type: string message: type: string parameters: StreamId: name: stream_id in: path required: true description: The unique identifier of the stream. schema: type: string securitySchemes: apiToken: type: apiKey in: header name: authorization description: API token issued from the Castr account settings API section (https://castr.com/app/manage/api), sent in the authorization header.