{"openapi":"3.1.0","info":{"title":"Livestage API","version":"0.1.0","description":"A fully local, platform-agnostic livestreaming setup and troubleshooting reference: a computed bitrate-by-upload-speed recommender, a resolution/fps/bitrate table, encoder-settings guidance, a searchable troubleshooting guide, a computed required-upload-speed calculator, a computed pre-stream checklist builder, audio setup tips, and a glossary.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://livestage.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/livestage/docs"},"termsOfService":"https://connectorbay.com/livestage/terms"},"servers":[{"url":"https://livestage.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/livestage/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/bitrate_recommendation":{"post":{"operationId":"bitrate_recommendation","summary":"Real computed math: from your tested upload speed and a safety-margin percentage, computes a safe total/","description":"Real computed math: from your tested upload speed and a safety-margin percentage, computes a safe total/\n    video bitrate and recommends the best achievable resolution/fps tier. Use for \"what bitrate should I stream at\n    with 20 Mbps upload\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"upload_mbps":{"description":"Your tested upload speed in Mbps.","examples":[20],"exclusiveMinimum":0,"maximum":10000,"title":"Upload Mbps","type":"number"},"headroom_pct":{"default":30.0,"description":"Safety margin to leave below your tested upload speed.","exclusiveMaximum":100,"minimum":0,"title":"Headroom Pct","type":"number"}},"required":["upload_mbps"],"title":"bitrate_recommendationArguments","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/resolution_fps_bitrate_table":{"post":{"operationId":"resolution_fps_bitrate_table","summary":"The full platform-agnostic video bitrate table (480p30 through 1440p60) plus audio bitrate/sample-rate","description":"The full platform-agnostic video bitrate table (480p30 through 1440p60) plus audio bitrate/sample-rate\n    guidance. Use for \"what bitrate should 1080p60 streaming use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"resolution_fps_bitrate_tableArguments","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/encoder_settings_guide":{"post":{"operationId":"encoder_settings_guide","summary":"Rate-control mode, keyframe interval, preset, and B-frame guidance for a software or hardware encoder. Use","description":"Rate-control mode, keyframe interval, preset, and B-frame guidance for a software or hardware encoder. Use\n    for \"should I use CBR or VBR for streaming\", \"NVENC vs x264 settings\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"encoder":{"description":"x264_software | nvenc_hardware | amd_hardware | quicksync_hardware","title":"Encoder","type":"string"}},"required":["encoder"],"title":"encoder_settings_guideArguments","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/troubleshoot":{"post":{"operationId":"troubleshoot","summary":"Keyword-matches a livestreaming symptom (dropped frames, audio/video sync, encoder overload, high latency,","description":"Keyword-matches a livestreaming symptom (dropped frames, audio/video sync, encoder overload, high latency,\n    pixelation) to likely causes and fixes. Use for \"why am I dropping frames\", \"why is my stream pixelated\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symptom":{"description":"A symptom in plain language.","examples":["dropped frames","audio out of sync","pixelation during fast motion"],"minLength":1,"title":"Symptom","type":"string"}},"required":["symptom"],"title":"troubleshootArguments","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/audio_sync_troubleshooting":{"post":{"operationId":"audio_sync_troubleshooting","summary":"A dedicated, deeper breakdown of audio/video sync-drift causes specifically: variable frame rate sources,","description":"A dedicated, deeper breakdown of audio/video sync-drift causes specifically: variable frame rate sources,\n    USB/Bluetooth audio latency, and stacked buffering delays. Use for \"why does my audio drift out of sync over a\n    long stream\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"audio_sync_troubleshootingArguments","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/network_requirements_calculator":{"post":{"operationId":"network_requirements_calculator","summary":"Real computed math, the inverse of bitrate_recommendation: from a target bitrate and a safety-margin","description":"Real computed math, the inverse of bitrate_recommendation: from a target bitrate and a safety-margin\n    percentage, computes the upload speed you actually need. Use for \"what upload speed do I need for a 6000kbps\n    stream\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bitrate_kbps":{"description":"Target streaming bitrate in kbps.","examples":[6000],"exclusiveMinimum":0,"maximum":1000000,"title":"Bitrate Kbps","type":"number"},"safety_margin_pct":{"default":30.0,"description":"Safety margin to add on top of the raw bitrate.","exclusiveMaximum":100,"minimum":0,"title":"Safety Margin Pct","type":"number"}},"required":["bitrate_kbps"],"title":"network_requirements_calculatorArguments","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/pre_stream_checklist":{"post":{"operationId":"pre_stream_checklist","summary":"Assembles an ordered pre-stream checklist for a solo, multi-guest, or mobile setup. Use for \"pre-stream","description":"Assembles an ordered pre-stream checklist for a solo, multi-guest, or mobile setup. Use for \"pre-stream\n    checklist for a multi-guest show\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"setup_type":{"default":"solo","description":"solo | multi_guest | mobile","title":"Setup Type","type":"string"}},"title":"pre_stream_checklistArguments","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/audio_setup_tips":{"post":{"operationId":"audio_setup_tips","summary":"Live-specific audio tips: gain staging (no re-recording chance), headphone monitoring, feedback","description":"Live-specific audio tips: gain staging (no re-recording chance), headphone monitoring, feedback\n    prevention, and noise gating. Use for \"how do I avoid audio feedback on a livestream\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"audio_setup_tipsArguments","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/livestream_glossary":{"post":{"operationId":"livestream_glossary","summary":"Defines livestreaming terms: bitrate, keyframe/GOP, CBR vs VBR, transcoding, ingest, dropped frames, jitter,","description":"Defines livestreaming terms: bitrate, keyframe/GOP, CBR vs VBR, transcoding, ingest, dropped frames, jitter,\n    buffering, latency, simulcasting. Use for \"what's a keyframe interval\", \"what's glass-to-glass latency\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"livestream_glossaryArguments","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}}}}