{"openapi":"3.1.0","info":{"title":"Codecwise API","version":"0.1.0","description":"A fully local video codec/container reference & compression calculator: H.264/H.265/ProRes/AV1 and MP4/MOV/MKV/WebM/AVI tradeoffs, direct file-size calculation, YouTube's published bitrate table, platform export-setting recommendations, and a frame-rate choice guide.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://codecwise.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/codecwise/docs"},"termsOfService":"https://connectorbay.com/codecwise/terms"},"servers":[{"url":"https://codecwise.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/codecwise/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/codec_info":{"post":{"operationId":"codec_info","summary":"One codec's compression efficiency, hardware support, licensing, typical use, and pros/cons. Use for","description":"One codec's compression efficiency, hardware support, licensing, typical use, and pros/cons. Use for\n    \"what's the difference between H.264 and H.265\", \"when should I use AV1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"codec":{"description":"A codec name.","examples":["H.264","H.265","AV1","ProRes"],"minLength":1,"title":"Codec","type":"string"}},"required":["codec"],"title":"codec_infoArguments","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_codecs":{"post":{"operationId":"list_codecs","summary":"Every codec Codecwise covers: H.264/AVC, H.265/HEVC, Apple ProRes, AV1. Use for \"what codecs do you","description":"Every codec Codecwise covers: H.264/AVC, H.265/HEVC, Apple ProRes, AV1. Use for \"what codecs do you\n    cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_codecsArguments","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/container_info":{"post":{"operationId":"container_info","summary":"One container format's compatibility, streaming support and typical codecs. Use for \"MP4 vs MOV for","description":"One container format's compatibility, streaming support and typical codecs. Use for \"MP4 vs MOV for\n    delivery\", \"what's WebM used for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"container":{"description":"A container format name.","examples":["MP4","MOV","MKV","WebM"],"minLength":1,"title":"Container","type":"string"}},"required":["container"],"title":"container_infoArguments","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_containers":{"post":{"operationId":"list_containers","summary":"Every container format Codecwise covers: MP4, MOV, MKV, WebM, AVI. Use for \"what container formats do you","description":"Every container format Codecwise covers: MP4, MOV, MKV, WebM, AVI. Use for \"what container formats do you\n    cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_containersArguments","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/file_size_calculator":{"post":{"operationId":"file_size_calculator","summary":"Computes file size directly from a bitrate and duration (bitrate x time), independent of any codec-","description":"Computes file size directly from a bitrate and duration (bitrate x time), independent of any codec-\n    specific lookup table. Use for \"file size of a 50 Mbps 10-minute video\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bitrate_mbps":{"description":"Bitrate in Mbps.","examples":[50],"exclusiveMinimum":0,"title":"Bitrate Mbps","type":"number"},"duration_seconds":{"description":"Duration in seconds.","examples":[600],"exclusiveMinimum":0,"title":"Duration Seconds","type":"number"}},"required":["bitrate_mbps","duration_seconds"],"title":"file_size_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/bitrate_recommendation":{"post":{"operationId":"bitrate_recommendation","summary":"YouTube's own published recommended upload-bitrate range for a resolution, frame rate and SDR/HDR. Use","description":"YouTube's own published recommended upload-bitrate range for a resolution, frame rate and SDR/HDR. Use\n    for \"YouTube's recommended bitrate for 4K60\", \"bitrate for 1080p30 HDR\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resolution":{"description":"'2160p'/'4k', '1440p', '1080p', '720p', or '480p'.","examples":["2160p"],"title":"Resolution","type":"string"},"frame_rate":{"description":"Frame rate.","examples":[60],"exclusiveMinimum":0,"maximum":1000,"title":"Frame Rate","type":"number"},"dynamic_range":{"default":"sdr","description":"'sdr' or 'hdr'.","title":"Dynamic Range","type":"string"}},"required":["resolution","frame_rate"],"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/platform_export_settings":{"post":{"operationId":"platform_export_settings","summary":"Recommended container/codec/audio/bitrate export settings for a named platform, or every platform if","description":"Recommended container/codec/audio/bitrate export settings for a named platform, or every platform if\n    none given. Use for \"export settings for Vimeo\", \"what codec should I use for TikTok\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"platform":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A platform name; omit to list all.","examples":["YouTube","Vimeo","Instagram"],"title":"Platform"}},"title":"platform_export_settingsArguments","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/frame_rate_guide":{"post":{"operationId":"frame_rate_guide","summary":"Which frame rate suits a stated content type, or the full reference if none given. Use for \"what frame","description":"Which frame rate suits a stated content type, or the full reference if none given. Use for \"what frame\n    rate should I shoot sports at\", \"frame rate for a cinematic look\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A content type, in plain language; omit to list the full reference.","examples":["sports","cinematic drama","slow motion"],"title":"Content Type"}},"title":"frame_rate_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/codecwise_glossary":{"post":{"operationId":"codecwise_glossary","summary":"Definitions of core codec/compression terms: codec, container, bitrate, CBR/VBR, keyframe/GOP, chroma","description":"Definitions of core codec/compression terms: codec, container, bitrate, CBR/VBR, keyframe/GOP, chroma\n    subsampling, hardware encoding, lossy vs lossless, transcoding, CRF. Use for \"what does CRF mean\", \"what's\n    chroma subsampling\".","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":"codecwise_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}}}}