{"openapi":"3.0.3","info":{"title":"Audio & Video API","version":"1.0.0","description":"Transcode, compress, trim and take thumbnails from media files.\n\nFFmpeg behind a plain HTTP call. Convert to MP4 or WebM, pull the audio track out, cut a clip, build a GIF, or just read the stream metadata.","contact":{"url":"https://173-249-18-142.sslip.io"}},"servers":[{"url":"https://173-249-18-142.sslip.io"}],"tags":[{"name":"Audio & Video API","description":"Transcode, compress, trim and take thumbnails from media files."}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your Smallapis key. Omit it to use the demo quota."}}},"security":[{"apiKey":[]}],"paths":{"/v1/media/info":{"post":{"tags":["Audio & Video API"],"summary":"Read container, codecs, duration and bitrate","description":"Read container, codecs, duration and bitrate","operationId":"v1_media_info","responses":{"200":{"description":"Result payload","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Payload larger than the plan allows"},"429":{"description":"Plan quota exhausted"}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"Audio or video file.","format":"binary"},"url":{"type":"string","description":"Public URL instead of an upload."}}}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public URL instead of an upload."}}}}}}}},"/v1/media/convert":{"post":{"tags":["Audio & Video API"],"summary":"Transcode a video to MP4, WebM or MKV","description":"Transcode a video to MP4, WebM or MKV","operationId":"v1_media_convert","responses":{"200":{"description":"The produced file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Payload larger than the plan allows"},"429":{"description":"Plan quota exhausted"}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"Source video.","format":"binary"},"format":{"type":"string","description":"mp4, webm or mkv.","default":"mp4"},"crf":{"type":"integer","description":"Quality, 14 (best) to 45 (smallest).","default":26},"height":{"type":"integer","description":"Scale to this height, keeping the aspect ratio."},"fps":{"type":"integer","description":"Force a frame rate."},"mute":{"type":"boolean","description":"Drop the audio track.","default":false}}}},"application/json":{"schema":{"type":"object","properties":{"format":{"type":"string","description":"mp4, webm or mkv.","default":"mp4"},"crf":{"type":"integer","description":"Quality, 14 (best) to 45 (smallest).","default":26},"height":{"type":"integer","description":"Scale to this height, keeping the aspect ratio."},"fps":{"type":"integer","description":"Force a frame rate."},"mute":{"type":"boolean","description":"Drop the audio track.","default":false}}}}}}}},"/v1/media/compress":{"post":{"tags":["Audio & Video API"],"summary":"Shrink a video with one quality knob","description":"Shrink a video with one quality knob","operationId":"v1_media_compress","responses":{"200":{"description":"The produced file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Payload larger than the plan allows"},"429":{"description":"Plan quota exhausted"}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"Source video.","format":"binary"},"quality":{"type":"string","description":"high, balanced or small.","default":"balanced"}}}},"application/json":{"schema":{"type":"object","properties":{"quality":{"type":"string","description":"high, balanced or small.","default":"balanced"}}}}}}}},"/v1/media/audio":{"post":{"tags":["Audio & Video API"],"summary":"Extract or convert the audio track","description":"Extract or convert the audio track","operationId":"v1_media_audio","responses":{"200":{"description":"The produced file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Payload larger than the plan allows"},"429":{"description":"Plan quota exhausted"}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"Source media.","format":"binary"},"format":{"type":"string","description":"mp3, aac, opus, wav or flac.","default":"mp3"},"bitrate":{"type":"integer","description":"Target bitrate in kbps for lossy formats.","default":192},"mono":{"type":"boolean","description":"Downmix to a single channel.","default":false}}}},"application/json":{"schema":{"type":"object","properties":{"format":{"type":"string","description":"mp3, aac, opus, wav or flac.","default":"mp3"},"bitrate":{"type":"integer","description":"Target bitrate in kbps for lossy formats.","default":192},"mono":{"type":"boolean","description":"Downmix to a single channel.","default":false}}}}}}}},"/v1/media/thumbnail":{"post":{"tags":["Audio & Video API"],"summary":"Grab a frame as a JPEG","description":"Grab a frame as a JPEG","operationId":"v1_media_thumbnail","responses":{"200":{"description":"The produced file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Payload larger than the plan allows"},"429":{"description":"Plan quota exhausted"}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"Source video.","format":"binary"},"time":{"type":"number","description":"Timestamp in seconds."},"width":{"type":"integer","description":"Output width in pixels.","default":640}}}},"application/json":{"schema":{"type":"object","properties":{"time":{"type":"number","description":"Timestamp in seconds."},"width":{"type":"integer","description":"Output width in pixels.","default":640}}}}}}}},"/v1/media/trim":{"post":{"tags":["Audio & Video API"],"summary":"Cut a clip out of a file","description":"Stream-copies by default, so a cut is near-instant and lossless.","operationId":"v1_media_trim","responses":{"200":{"description":"The produced file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Payload larger than the plan allows"},"429":{"description":"Plan quota exhausted"}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"Source media.","format":"binary"},"start":{"type":"number","description":"Start offset in seconds.","default":0},"duration":{"type":"number","description":"Clip length in seconds. Pass this or `end`."},"end":{"type":"number","description":"End offset in seconds."},"reencode":{"type":"boolean","description":"Re-encode for a frame-accurate cut.","default":false}}}},"application/json":{"schema":{"type":"object","properties":{"start":{"type":"number","description":"Start offset in seconds.","default":0},"duration":{"type":"number","description":"Clip length in seconds. Pass this or `end`."},"end":{"type":"number","description":"End offset in seconds."},"reencode":{"type":"boolean","description":"Re-encode for a frame-accurate cut.","default":false}}}}}}}},"/v1/media/gif":{"post":{"tags":["Audio & Video API"],"summary":"Turn a clip into a GIF or animated WebP","description":"Turn a clip into a GIF or animated WebP","operationId":"v1_media_gif","responses":{"200":{"description":"The produced file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Payload larger than the plan allows"},"429":{"description":"Plan quota exhausted"}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"Source video.","format":"binary"},"start":{"type":"number","description":"Start offset in seconds.","default":0},"duration":{"type":"number","description":"Clip length in seconds, max 30.","default":5},"width":{"type":"integer","description":"Output width in pixels.","default":480},"fps":{"type":"integer","description":"Frames per second, 5-30.","default":12},"format":{"type":"string","description":"gif or webp.","default":"gif"}}}},"application/json":{"schema":{"type":"object","properties":{"start":{"type":"number","description":"Start offset in seconds.","default":0},"duration":{"type":"number","description":"Clip length in seconds, max 30.","default":5},"width":{"type":"integer","description":"Output width in pixels.","default":480},"fps":{"type":"integer","description":"Frames per second, 5-30.","default":12},"format":{"type":"string","description":"gif or webp.","default":"gif"}}}}}}}}}}