{"openapi":"3.1.0","info":{"title":"Wowza Video (BYOK) API","version":"0.1.0","description":"Wowza Video (BYOK) lets an AI assistant read your own Wowza Video data through the Wowza Video API with a key you supply (Access token (JWT)). Read-only: 12 tools (list_live_streams, get_live_stream, get_live_stream_state, list_transcoders, get_transcoder_state, list_recordings, list_stream_targets, list_players, list_schedules, get_peak_recording_storage, get_transcoder_network_usage,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-wowza.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-wowza/docs"},"termsOfService":"https://connectorbay.com/byok-wowza/terms"},"servers":[{"url":"https://byok-wowza.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-wowza/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_live_streams":{"post":{"operationId":"list_live_streams","summary":"List your live streams with name, type, location, delivery method, encoder, latency mode, hosted page and playback URL. ","description":"List your live streams with name, type, location, delivery method, encoder, latency mode, hosted page and playback URL. Use for \"Which live streams do I have in Wowza Video\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records per page (1 to 1000).","title":"Per Page"}},"title":"list_live_streamsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_live_stream":{"post":{"operationId":"get_live_stream","summary":"Get one live stream by id: configuration, locations, delivery and playback details. Use for \"Show details of my Wowza li","description":"Get one live stream by id: configuration, locations, delivery and playback details. Use for \"Show details of my Wowza live stream kNdKw3Zq\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"live_stream_id":{"description":"Live stream id (from list_live_streams).","maxLength":200,"title":"Live Stream Id","type":"string"}},"required":["live_stream_id"],"title":"get_live_streamArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_live_stream_state":{"post":{"operationId":"get_live_stream_state","summary":"Get the current state of a live stream (started, stopped, starting, stopping or resetting). Use for \"Is my Wowza live st","description":"Get the current state of a live stream (started, stopped, starting, stopping or resetting). Use for \"Is my Wowza live stream running right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"live_stream_id":{"description":"Live stream id (from list_live_streams).","maxLength":200,"title":"Live Stream Id","type":"string"}},"required":["live_stream_id"],"title":"get_live_stream_stateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_transcoders":{"post":{"operationId":"list_transcoders","summary":"List your transcoders with name, type, location, protocol, latency mode, recording flag and timeouts. Use for \"Which Wow","description":"List your transcoders with name, type, location, protocol, latency mode, recording flag and timeouts. Use for \"Which Wowza transcoders do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records per page (1 to 1000).","title":"Per Page"}},"title":"list_transcodersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_transcoder_state":{"post":{"operationId":"get_transcoder_state","summary":"Get the current state of a transcoder and its current uptime id. Use for \"Is my Wowza transcoder started\".","description":"Get the current state of a transcoder and its current uptime id. Use for \"Is my Wowza transcoder started\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"transcoder_id":{"description":"Transcoder id (from list_transcoders).","maxLength":200,"title":"Transcoder Id","type":"string"}},"required":["transcoder_id"],"title":"get_transcoder_stateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_recordings":{"post":{"operationId":"list_recordings","summary":"List your recordings with file name, size, duration, state, transcoder and start time. Use for \"What recordings are stor","description":"List your recordings with file name, size, duration, state, transcoder and start time. Use for \"What recordings are stored in Wowza Video\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records per page (1 to 1000).","title":"Per Page"}},"title":"list_recordingsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_stream_targets":{"post":{"operationId":"list_stream_targets","summary":"List your stream targets (outputs such as CDN or social destinations) with name, provider, type, location and playback U","description":"List your stream targets (outputs such as CDN or social destinations) with name, provider, type, location and playback URLs. Use for \"Which stream targets are configured in Wowza Video\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records per page (1 to 1000).","title":"Per Page"}},"title":"list_stream_targetsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_players":{"post":{"operationId":"list_players","summary":"List your players with type, size, hosted page URL and playback URLs. Use for \"Which Wowza players do I have and what ar","description":"List your players with type, size, hosted page URL and playback URLs. Use for \"Which Wowza players do I have and what are their hosted pages\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records per page (1 to 1000).","title":"Per Page"}},"title":"list_playersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_schedules":{"post":{"operationId":"list_schedules","summary":"List transcoder schedules (timed start and stop actions) with recurrence, state and target transcoder. Use for \"What sch","description":"List transcoder schedules (timed start and stop actions) with recurrence, state and target transcoder. Use for \"What scheduled starts and stops are set up in Wowza Video\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records per page (1 to 1000).","title":"Per Page"}},"title":"list_schedulesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_peak_recording_storage":{"post":{"operationId":"get_peak_recording_storage","summary":"Get the peak recording storage in bytes used in a time range (default: since the last billing date). Use for \"How much r","description":"Get the peak recording storage in bytes used in a time range (default: since the last billing date). Use for \"How much recording storage am I using in Wowza Video\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, YYYY-MM-DD HH:MM:SS (24-hour clock, UTC). Defaults to the last billing date.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, YYYY-MM-DD HH:MM:SS (24-hour clock, UTC). Defaults to the end of today.","title":"To Time"}},"title":"get_peak_recording_storageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_transcoder_network_usage":{"post":{"operationId":"get_transcoder_network_usage","summary":"Get network bytes used and billed per transcoder in a time range. Use for \"How much data did each Wowza transcoder deliv","description":"Get network bytes used and billed per transcoder in a time range. Use for \"How much data did each Wowza transcoder deliver this period\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, YYYY-MM-DD HH:MM:SS (24-hour clock, UTC). Defaults to the last billing date.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, YYYY-MM-DD HH:MM:SS (24-hour clock, UTC). Defaults to the end of today.","title":"To Time"}},"title":"get_transcoder_network_usageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_transcoder_time_usage":{"post":{"operationId":"get_transcoder_time_usage","summary":"Get stream processing seconds used and billed per transcoder in a time range. Use for \"How many streaming hours did each","description":"Get stream processing seconds used and billed per transcoder in a time range. Use for \"How many streaming hours did each Wowza transcoder use this period\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, YYYY-MM-DD HH:MM:SS (24-hour clock, UTC). Defaults to the last billing date.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, YYYY-MM-DD HH:MM:SS (24-hour clock, UTC). Defaults to the end of today.","title":"To Time"}},"title":"get_transcoder_time_usageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}