{ "opencollection": "1.0.0", "info": { "name": "Castr API", "version": "1.0", "description": "Documented, self-serve REST API for Castr live streaming, sub-second streams, video hosting/VOD, analytics, and webhooks. Base https://api.castr.com/v2. Token auth via the authorization header. Request/response bodies are honestly modeled from the published reference." }, "request": { "auth": { "type": "apikey", "apikey": { "key": "authorization", "value": "{{apiToken}}", "in": "header" } }, "baseUrl": "https://api.castr.com/v2" }, "items": [ { "info": { "name": "Live Streams", "type": "folder" }, "items": [ { "info": { "name": "List live streams", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/live_streams" }, "docs": "Lists the live streams in your account." }, { "info": { "name": "Create a new live stream", "type": "http" }, "http": { "method": "POST", "url": "https://api.castr.com/v2/live_streams", "body": { "type": "json", "data": "{\"name\":\"My Stream\",\"enabled\":true}" } }, "docs": "Creates a live stream that ingests RTMP/SRT and can multistream to destinations." }, { "info": { "name": "Get a live stream", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/live_streams/:stream_id" }, "docs": "Retrieves a single live stream." }, { "info": { "name": "Update a live stream", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.castr.com/v2/live_streams/:stream_id", "body": { "type": "json", "data": "{}" } }, "docs": "Updates a live stream." }, { "info": { "name": "Delete a live stream", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.castr.com/v2/live_streams/:stream_id" }, "docs": "Deletes a live stream." }, { "info": { "name": "Get stream stats", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/live_streams/:stream_id/stats" }, "docs": "Returns online status, duration, bitrate, codec, resolution, and viewers." }, { "info": { "name": "Get live EPG", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/live_streams/:stream_id/epg" }, "docs": "Returns the electronic program guide for a stream." }, { "info": { "name": "Add platform destination", "type": "http" }, "http": { "method": "POST", "url": "https://api.castr.com/v2/live_streams/:stream_id/platforms", "body": { "type": "json", "data": "{\"type\":\"custom_rtmp\"}" } }, "docs": "Adds a multistream destination." }, { "info": { "name": "Update platform destination", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.castr.com/v2/live_streams/:stream_id/platforms/:platform_id", "body": { "type": "json", "data": "{}" } }, "docs": "Updates a multistream destination." }, { "info": { "name": "Delete platform destination", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.castr.com/v2/live_streams/:stream_id/platforms/:platform_id" }, "docs": "Deletes a multistream destination." } ] }, { "info": { "name": "Sub-Second Streams", "type": "folder" }, "items": [ { "info": { "name": "List sub-second streams", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/sub_second_streams" }, "docs": "Lists ultra-low-latency (WebRTC) streams." }, { "info": { "name": "Create a sub-second stream", "type": "http" }, "http": { "method": "POST", "url": "https://api.castr.com/v2/sub_second_streams", "body": { "type": "json", "data": "{\"name\":\"Low latency\"}" } }, "docs": "Creates an ultra-low-latency stream." }, { "info": { "name": "Get a sub-second stream", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/sub_second_streams/:stream_id" }, "docs": "Retrieves a sub-second stream." }, { "info": { "name": "Update a sub-second stream", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.castr.com/v2/sub_second_streams/:stream_id", "body": { "type": "json", "data": "{}" } }, "docs": "Updates a sub-second stream." }, { "info": { "name": "Delete a sub-second stream", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.castr.com/v2/sub_second_streams/:stream_id" }, "docs": "Deletes a sub-second stream." } ] }, { "info": { "name": "Video Hosting and VOD", "type": "folder" }, "items": [ { "info": { "name": "List folders", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/videos" }, "docs": "Lists video hosting folders." }, { "info": { "name": "Create a folder", "type": "http" }, "http": { "method": "POST", "url": "https://api.castr.com/v2/videos", "body": { "type": "json", "data": "{\"name\":\"My Folder\"}" } }, "docs": "Creates a video hosting folder." }, { "info": { "name": "Update a folder", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.castr.com/v2/videos/:folder_id", "body": { "type": "json", "data": "{}" } }, "docs": "Updates a folder." }, { "info": { "name": "Delete a folder", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.castr.com/v2/videos/:folder_id" }, "docs": "Deletes a folder." }, { "info": { "name": "List contents in folder", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/videos/:folder_id/contents" }, "docs": "Lists videos in a folder." }, { "info": { "name": "Delete content in folder", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.castr.com/v2/videos/:folder_id/contents/:content_id" }, "docs": "Deletes a video in a folder." }, { "info": { "name": "Create direct upload URL", "type": "http" }, "http": { "method": "POST", "url": "https://api.castr.com/v2/videos/:folder_id/uploads", "body": { "type": "json", "data": "{}" } }, "docs": "Creates a direct upload URL for a VOD video." }, { "info": { "name": "Get temporary recordings", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/live_streams/:stream_id/temporary_recordings" }, "docs": "Lists temporary cloud recordings of a stream." }, { "info": { "name": "Convert live to VOD", "type": "http" }, "http": { "method": "POST", "url": "https://api.castr.com/v2/live_streams/:stream_id/temporary_recordings/:recording_id" }, "docs": "Converts a temporary recording to a permanent VOD asset." }, { "info": { "name": "Get live-to-VOD recordings", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/live_streams/:stream_id/recordings" }, "docs": "Lists permanent VOD recordings from a stream." } ] }, { "info": { "name": "Analytics and Activity", "type": "folder" }, "items": [ { "info": { "name": "Get stream activity logs", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/activity_logs/stream/:stream_id" }, "docs": "Retrieves activity logs for a stream." }, { "info": { "name": "Get stream activity events", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/activity_events/stream/:stream_id" }, "docs": "Retrieves activity events for a stream." } ] }, { "info": { "name": "Webhooks", "type": "folder" }, "items": [ { "info": { "name": "Get webhook endpoints", "type": "http" }, "http": { "method": "GET", "url": "https://api.castr.com/v2/webhook_endpoints" }, "docs": "Lists webhook endpoints." }, { "info": { "name": "Create webhook endpoint", "type": "http" }, "http": { "method": "POST", "url": "https://api.castr.com/v2/webhook_endpoints", "body": { "type": "json", "data": "{\"url\":\"https://example.com/hook\"}" } }, "docs": "Creates a webhook endpoint." }, { "info": { "name": "Update webhook endpoint", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.castr.com/v2/webhook_endpoints/:webhook_id", "body": { "type": "json", "data": "{}" } }, "docs": "Updates a webhook endpoint." }, { "info": { "name": "Delete webhook endpoint", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.castr.com/v2/webhook_endpoints/:webhook_id" }, "docs": "Deletes a webhook endpoint." } ] } ] }