{"openapi":"3.1.0","info":{"title":"Audo API","version":"1.0.0","description":"Audio tools for people and agents: remove noise, enhance voices, transcribe, align a script, cut, remove silence, set loudness, convert, join, swap a video's audio, change speed and pitch, reverse, mute a video, convert/compress/crop/resize/reverse/loop video, find the key and BPM, and media info.\n\nFree API: POST /api/try/<tool> with a file runs the tool on the first part of it, free, a few times a day, with no account or key. For example: `curl -F file=@interview.wav https://audo.ai/api/try/remove-noise -D response.headers -o response.body`.\n\nREST API: /api/v1 runs whole files with credits (1 credit is 1 US cent). Send an API key as a bearer token (Authorization: Bearer audo_sk_…); people create keys at https://audo.ai/keys?utm_source=openapi&utm_medium=agent. Upload a file (POST /api/v1/files), start a job (POST /api/v1/jobs), wait for it (GET /api/v1/jobs/{id}?wait=30), then download the output (GET /api/v1/files/{id}/download). Files are deleted after 24 hours.\n\nEvery response carries RateLimit-Policy and RateLimit headers. Every error has the same shape: a code, a message that says what went wrong, whether to retry, and nextAction, what to do about it."},"servers":[{"url":"https://audo.ai"}],"tags":[{"name":"Free API","description":"One request per tool, free for the first part of a file, without an account"},{"name":"Tools"},{"name":"Files"},{"name":"Jobs"},{"name":"Account"},{"name":"Upload page","description":"What the upload page uses, with the token in its link, so a person can upload without signing in"},{"name":"File links","description":"Signed links to a file's bytes, on the site's own origin. The token in the link is the only credential"}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"An API key (audo_sk_…), or an OAuth access token for the REST API"},"session":{"type":"apiKey","in":"cookie","name":"__Secure-audo.session_token","description":"The website's session"}}},"paths":{"/api/v1/workflow-runs":{"post":{"operationId":"post_v1_workflow_runs","tags":["Workflows"],"summary":"Run or quote an editor export","description":"Pass editor_export (the editor's Export, which Audo runs in its own order; file_id is its first source's), file_id, and idempotency_key. dry_run returns a bounded maximum quote. Successful child steps are charged separately on their measured inputs; a kept cut bills its kept range.","security":[{"apiKey":[]},{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"editor_export":{"type":"object","properties":{"version":{"type":"number","const":1},"sources":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["file_id"],"additionalProperties":false}},"keep":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2}},"sequence":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"ranges":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2}}},"required":["ranges"],"additionalProperties":false}},"video_mode":{"type":"string","enum":["fit","fill"]},"join":{"type":"object","properties":{"match_loudness":{"type":"boolean"}},"additionalProperties":false},"sound":{"type":"object","properties":{"fixes":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"source":{"type":"integer","minimum":0,"maximum":19},"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"},"strength":{"type":"number","minimum":0.1,"maximum":1},"part_seconds":{"type":"number","exclusiveMinimum":0,"maximum":36000}},"required":["source","file_id","strength"],"additionalProperties":false}},"level":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"source":{"type":"integer","minimum":0,"maximum":19},"gain":{"minItems":1,"maxItems":20000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":-120,"maximum":24}],"items":false,"minItems":2,"maxItems":2}}},"required":["source","gain"],"additionalProperties":false}},"main_volume_db":{"type":"number","minimum":-120,"maximum":24},"tracks":{"maxItems":32,"type":"array","items":{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"},"from":{"type":"number","minimum":0,"maximum":36000},"to":{"type":"number","minimum":0,"maximum":36000},"at":{"type":"number","minimum":0,"maximum":36000},"volume_db":{"type":"number","minimum":-60,"maximum":24},"linked":{"type":"boolean"}},"required":["file_id","from","to","at","volume_db","linked"],"additionalProperties":false}},"music":{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"},"volume_db":{"type":"number","minimum":-60,"maximum":24},"duck":{"type":"boolean"}},"required":["file_id","volume_db","duck"],"additionalProperties":false},"loudness":{"type":"string","enum":["podcast","streaming","broadcast"]}},"additionalProperties":false},"frame":{"anyOf":[{"type":"object","properties":{"reframe":{"type":"object","properties":{"plan":{"type":"object","properties":{"version":{"type":"number","const":1},"source":{"type":"object","properties":{"width":{"type":"integer","minimum":2,"maximum":16384},"height":{"type":"integer","minimum":2,"maximum":16384},"fps":{"type":"number","exclusiveMinimum":0,"maximum":240},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000}},"required":["width","height","fps","duration_ms"],"additionalProperties":false},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"settings":{"type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"scenes":{"minItems":1,"maxItems":10000,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"},"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"layout":{"type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"panels":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["crop_path","placement"],"additionalProperties":false}},"background":{"type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["crop_path","placement","start_ms","end_ms","layout","panels","background"],"additionalProperties":false}},"speakers":{"maxItems":40000,"type":"array","items":{"type":"object","properties":{"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["speaker","subject_id"],"additionalProperties":false}}},"required":["version","source","duration_ms","output","settings","scenes","speakers"],"additionalProperties":false},"plan_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"additionalProperties":false}},"required":["reframe"],"additionalProperties":false},{"type":"object","properties":{"crop":{"type":"object","properties":{"rect":{"default":{"x":0,"y":0,"w":1,"h":1},"description":"Crop before rotation: x,y,w,h are fractions of the displayed picture, from 0 to 1; x+w and y+h cannot exceed 1.","type":"object","properties":{"x":{"default":0,"type":"number","minimum":0,"maximum":1},"y":{"default":0,"type":"number","minimum":0,"maximum":1},"w":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1}},"additionalProperties":false},"rotate":{"default":0,"description":"Clockwise rotation in degrees after cropping. Default 0.","type":"number","enum":[0,90,180,270]},"flip_horizontal":{"default":false,"description":"Flip left to right after rotation.","type":"boolean"},"flip_vertical":{"default":false,"description":"Flip top to bottom after rotation.","type":"boolean"}},"additionalProperties":false}},"required":["crop"],"additionalProperties":false},{"type":"object","properties":{"resize":{"type":"object","properties":{"ratio":{"default":"9:16","description":"Output aspect ratio. Default 9:16; custom needs width and height.","type":"string","enum":["9:16","1:1","4:5","16:9","4:3","custom"]},"width":{"description":"Custom width in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":7680,"multipleOf":2},"height":{"description":"Custom height in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":4320,"multipleOf":2},"mode":{"default":"fit","description":"fit shows the whole picture with padding; fill crops to cover the frame.","type":"string","enum":["fit","fill"]},"zoom":{"default":1,"description":"Enlarge the picture within the frame, 1 to 10. Default 1.","type":"number","minimum":1,"maximum":10},"position_x":{"default":0.5,"description":"Horizontal alignment in the frame, 0 left to 1 right. Default 0.5.","type":"number","minimum":0,"maximum":1},"position_y":{"default":0.5,"description":"Vertical alignment in the frame, 0 top to 1 bottom. Default 0.5.","type":"number","minimum":0,"maximum":1},"background":{"default":"color","description":"Padding background: solid color or a blurred copy of the video.","type":"string","enum":["color","blur"]},"color":{"default":"#000000","description":"Background color in six-digit hex, such as #ffffff.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"description":"Background blur amount, 1 to 100. Default 20.","type":"number","minimum":1,"maximum":100}},"additionalProperties":false}},"required":["resize"],"additionalProperties":false}]},"audiogram":{"type":"object","properties":{"document":{"type":"object","properties":{"version":{"type":"number","const":1},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["1:1","9:16","16:9","4:5"]},"width":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"height":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"fps":{"type":"integer","minimum":1,"maximum":60}},"required":["ratio","width","height","fps"],"additionalProperties":false},"background":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"color"},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["type","color"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"gradient"},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"angle":{"type":"number","minimum":-360,"maximum":360}},"required":["type","colors","angle"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"fit":{"type":"string","enum":["fit","fill"]},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"blur":{"type":"number","minimum":0,"maximum":0.1}},"required":["type","fit","color","blur"],"additionalProperties":false}]},"waveform":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"style":{"type":"string","enum":["bars","line","mirror","circle","dots"]},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"thickness":{"type":"number","minimum":0.001,"maximum":0.1},"gap":{"type":"number","minimum":0.001,"maximum":0.1},"smoothing":{"type":"number","minimum":0,"maximum":1},"sensitivity":{"type":"number","minimum":0,"maximum":5}},"required":["x","y","width","height","style","colors","thickness","gap","smoothing","sensitivity"],"additionalProperties":false},"cover":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"radius":{"type":"number","minimum":0,"maximum":0.5},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false}},"required":["x","y","width","height","radius","shadow"],"additionalProperties":false},{"type":"null"}]},"title":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"subtitle":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"progress":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"background":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"radius":{"type":"number","minimum":0,"maximum":0.5}},"required":["x","y","width","height","color","background","radius"],"additionalProperties":false},{"type":"null"}]},"captions":{"type":"object","properties":{"version":{"type":"number","const":1},"words":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","breakOnPauseMs","breakOnSentence","combineWithinMs","minDurationMs","maxDurationMs","lingerMs","offsetMs","uppercase","hidePunctuation"],"additionalProperties":false},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}}},"required":["version","words","layout","style"],"additionalProperties":false}},"required":["version","output","background","waveform","cover","title","subtitle","progress"],"additionalProperties":false},"cover_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["document"],"additionalProperties":false},"captions":{"type":"object","properties":{"request":{"type":"object","properties":{"version":{"default":1,"type":"number","const":1},"preset":{"type":"string","enum":["bold_keywords","big_bounce","yellow_keyword","green_word","pop","one_word","one_word_yellow","comic","arcade","retro","karaoke","karaoke_blue","fill_in","box","green_box","highlighter","glow","neon","slide_up","soft_lowercase","sunset","ocean","gold","clean","subtitles","yellow_subtitles","minimal","quiet_caps","cinematic","soft_fade","bubble","black_pill","speaker_colors","lower_third","news","two_lines"]},"style_id":{"description":"Your saved caption style ID from list_caption_presets or /api/v1/caption-styles. Its look replaces the preset's look; explicit style/layout overrides still win.","type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"words":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}},"text":{"description":"Edited script. Aligns against words when supplied, otherwise against a new transcript. Omit to keep the supplied word times.","type":"string","minLength":1,"maxLength":2097152},"language":{"type":"string","pattern":"^[a-z]{2,3}$"},"auto_keywords":{"description":"Pick emphasis words automatically. Explicit style.keywords wins.","type":"boolean"},"max_per_caption":{"description":"Automatic emphasis words per caption, default 1.","type":"integer","minimum":1,"maximum":3},"auto_emoji":{"description":"Add a few supported Noto emoji, avoiding sensitive topics.","type":"boolean"},"density":{"description":"Automatic emoji per minute: up to 2, 4 (default), or 6.","type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string","maxLength":35,"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"},"bilingual":{"description":"Keep the original line above the translation. Requires translate_to.","type":"boolean"},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"outputs":{"default":["video","srt","vtt","txt"],"minItems":1,"maxItems":7,"type":"array","items":{"type":"string","enum":["video","overlay_webm","overlay_prores","srt","vtt","ass","txt"]}}},"additionalProperties":false},"transcript_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"},"outputs":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["video","overlay_webm","overlay_prores","srt","vtt","ass"]}}},"required":["request"],"additionalProperties":false},"overlay":{"type":"object","properties":{"document":{"type":"object","properties":{"version":{"type":"number","const":1},"items":{"minItems":1,"maxItems":100,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"margin":{"type":"number","minimum":0,"maximum":0.4},"stroke":{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"width":{"type":"number","minimum":0,"maximum":0.03}},"required":["color","width"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"background":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.1},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","text","font","weight","size","color","start_ms","end_ms","position","margin","stroke","shadow","background","animation"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"logo"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"scale":{"type":"number","minimum":0.01,"maximum":1},"opacity":{"type":"number","minimum":0,"maximum":1},"margin":{"type":"number","minimum":0,"maximum":0.4},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","start_ms","end_ms","position","scale","opacity","margin"],"additionalProperties":false}]}}},"required":["version","items"],"additionalProperties":false},"logo_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["document"],"additionalProperties":false},"output":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"video"},"container":{"type":"string","enum":["mp4","mov","webm"]},"max_height":{"type":"integer","minimum":2,"maximum":4320},"compress":{"type":"object","properties":{"target":{"description":"Size preset: 20, 50, 16, or 25 decimal MB, or size_mb. Leave out for quality mode; without either, discord_free.","type":"string","enum":["discord_free","discord_nitro_basic","whatsapp","email","size_mb"]},"size_mb":{"description":"Custom size in decimal MB. Needs target size_mb.","type":"number","minimum":0.1,"maximum":10000},"quality":{"description":"Constant quality instead of a size target: 0 to 51, lower is clearer. Leave target and size_mb out.","type":"integer","minimum":0,"maximum":51},"max_height":{"description":"Maximum output height in pixels; never enlarges the input.","type":"integer","minimum":2,"maximum":4320},"mute":{"default":false,"description":"Remove the soundtrack. Default false.","type":"boolean"},"fps":{"description":"Frame rate cap; never raises the input frame rate.","type":"number","minimum":1,"maximum":120}},"additionalProperties":false}},"required":["kind","container"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"audio"},"format":{"type":"string","enum":["mp3","wav","m4a","flac","ogg","opus"]},"parts":{"type":"string","enum":["one","each"]}},"required":["kind","format"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"gif"},"start_seconds":{"type":"number","minimum":0,"maximum":36000},"end_seconds":{"type":"number","minimum":0,"maximum":36000},"fps":{"type":"integer","minimum":5,"maximum":30},"width":{"type":"integer","minimum":120,"maximum":1280},"format":{"type":"string","enum":["gif","webp"]},"loop":{"type":"integer","minimum":0,"maximum":65535}},"required":["kind","start_seconds","end_seconds","fps","width","format"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"frame"},"time_seconds":{"type":"number","minimum":0,"maximum":36000},"format":{"type":"string","enum":["png","jpg"]}},"required":["kind","time_seconds","format"],"additionalProperties":false}]}},"required":["version","sources","output"],"additionalProperties":false,"description":"The editor's Export (EditorExportV1), which Audo runs in its own order. file_id is its first source's."},"file_id":{"type":"string","pattern":"^file_[a-zA-Z0-9]+$"},"idempotency_key":{"type":"string","minLength":1,"maxLength":200},"dry_run":{"default":false,"type":"boolean"},"free":{"type":"boolean"},"max_credits":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["editor_export","file_id","idempotency_key"],"additionalProperties":false}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":["string","null"]},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"free":{"type":"boolean"},"processed_seconds":{"type":"number"},"progress":{"type":"number"},"quoted_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"charged_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"quote":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"archive":{"anyOf":[{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string","format":"uri"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["filename","url","expiresAt"],"additionalProperties":false},{"type":"null"}]},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"jobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]},"branch":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","branch"],"additionalProperties":false}}},"required":["id","tool","jobs"],"additionalProperties":false}},"output_file_ids":{"type":"array","items":{"type":"string"}},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["fileId","filename","url","expiresAt"],"additionalProperties":false}},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"status_url":{"type":"string"},"finished_by":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"progress":{"type":"number"},"status_url":{"type":"string"}},"required":["id","status","progress","status_url"],"additionalProperties":false},{"type":"null"}]},"finish_request":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"finish_url":{"type":"string"},"finish_price_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","workflow_id","status","free","processed_seconds","progress","quoted_credits","charged_credits","quote","steps","output_file_ids","outputs","error"],"additionalProperties":false},{"type":"object","properties":{"credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"upper_bound":{"type":"boolean","const":true},"source_seconds":{"type":"number"},"output_seconds":{"type":"number"},"steps":{"type":"array","items":{"type":"object","properties":{"step_id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"branches":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seconds":{"type":"number"},"credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"input_seconds":{"type":"number"}},"required":["step_id","tool","branches","seconds","credits"],"additionalProperties":false}},"free":{"type":"object","properties":{"seconds":{"type":"number"},"uses_left":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"available":{"type":"boolean"}},"required":["seconds","uses_left","available"],"additionalProperties":false}},"required":["credits","upper_bound","source_seconds","steps","free"],"additionalProperties":false}]}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/workflow-runs/{id}":{"get":{"operationId":"get_v1_workflow_runs_id","tags":["Workflows"],"summary":"Read steps, progress and downloads","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"wait","in":"query","required":false,"description":"Wait up to this many seconds (at most 40) for a change before answering","schema":{"type":"number","minimum":0,"maximum":40}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":["string","null"]},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"free":{"type":"boolean"},"processed_seconds":{"type":"number"},"progress":{"type":"number"},"quoted_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"charged_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"quote":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"archive":{"anyOf":[{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string","format":"uri"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["filename","url","expiresAt"],"additionalProperties":false},{"type":"null"}]},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"jobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]},"branch":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","branch"],"additionalProperties":false}}},"required":["id","tool","jobs"],"additionalProperties":false}},"output_file_ids":{"type":"array","items":{"type":"string"}},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["fileId","filename","url","expiresAt"],"additionalProperties":false}},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"status_url":{"type":"string"},"finished_by":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"progress":{"type":"number"},"status_url":{"type":"string"}},"required":["id","status","progress","status_url"],"additionalProperties":false},{"type":"null"}]},"finish_request":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"finish_url":{"type":"string"},"finish_price_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","workflow_id","status","free","processed_seconds","progress","quoted_credits","charged_credits","quote","steps","output_file_ids","outputs","error"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/workflow-runs/{id}/archive":{"get":{"operationId":"get_v1_workflow_runs_id_archive","tags":["Workflows"],"summary":"Stream all run outputs as a ZIP archive","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The file","content":{"application/zip":{"schema":{"type":"string","contentMediaType":"application/zip"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/workflow-runs/{id}/cancel":{"post":{"operationId":"post_v1_workflow_runs_id_cancel","tags":["Workflows"],"summary":"Cancel unfinished steps; successful steps remain charged","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":["string","null"]},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"free":{"type":"boolean"},"processed_seconds":{"type":"number"},"progress":{"type":"number"},"quoted_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"charged_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"quote":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"archive":{"anyOf":[{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string","format":"uri"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["filename","url","expiresAt"],"additionalProperties":false},{"type":"null"}]},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"jobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]},"branch":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","branch"],"additionalProperties":false}}},"required":["id","tool","jobs"],"additionalProperties":false}},"output_file_ids":{"type":"array","items":{"type":"string"}},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["fileId","filename","url","expiresAt"],"additionalProperties":false}},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"status_url":{"type":"string"},"finished_by":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"progress":{"type":"number"},"status_url":{"type":"string"}},"required":["id","status","progress","status_url"],"additionalProperties":false},{"type":"null"}]},"finish_request":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"finish_url":{"type":"string"},"finish_price_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","workflow_id","status","free","processed_seconds","progress","quoted_credits","charged_credits","quote","steps","output_file_ids","outputs","error"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/audiogram-presets":{"get":{"operationId":"get_v1_audiogram_presets","tags":["Tools"],"summary":"List audiogram presets with complete v1 documents","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"document":{"type":"object","properties":{"version":{"type":"number","const":1},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["1:1","9:16","16:9","4:5"]},"width":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"height":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"fps":{"type":"integer","minimum":1,"maximum":60}},"required":["ratio","width","height","fps"],"additionalProperties":false},"background":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"color"},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["type","color"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"gradient"},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"angle":{"type":"number","minimum":-360,"maximum":360}},"required":["type","colors","angle"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"fit":{"type":"string","enum":["fit","fill"]},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"blur":{"type":"number","minimum":0,"maximum":0.1}},"required":["type","fit","color","blur"],"additionalProperties":false}]},"waveform":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"style":{"type":"string","enum":["bars","line","mirror","circle","dots"]},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"thickness":{"type":"number","minimum":0.001,"maximum":0.1},"gap":{"type":"number","minimum":0.001,"maximum":0.1},"smoothing":{"type":"number","minimum":0,"maximum":1},"sensitivity":{"type":"number","minimum":0,"maximum":5}},"required":["x","y","width","height","style","colors","thickness","gap","smoothing","sensitivity"],"additionalProperties":false},"cover":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"radius":{"type":"number","minimum":0,"maximum":0.5},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false}},"required":["x","y","width","height","radius","shadow"],"additionalProperties":false},{"type":"null"}]},"title":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"subtitle":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"progress":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"background":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"radius":{"type":"number","minimum":0,"maximum":0.5}},"required":["x","y","width","height","color","background","radius"],"additionalProperties":false},{"type":"null"}]},"captions":{"type":"object","properties":{"version":{"type":"number","const":1},"words":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"],"additionalProperties":false}},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","breakOnPauseMs","breakOnSentence","combineWithinMs","minDurationMs","maxDurationMs","lingerMs","offsetMs","uppercase","hidePunctuation"],"additionalProperties":false},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}}},"required":["version","words","layout","style"],"additionalProperties":false}},"required":["version","output","background","waveform","cover","title","subtitle","progress"],"additionalProperties":false}},"required":["id","name","document"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/caption-presets":{"get":{"operationId":"get_v1_caption_presets","tags":["Tools"],"summary":"List caption presets with their v1 documents","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["bold_keywords","big_bounce","yellow_keyword","green_word","pop","one_word","one_word_yellow","comic","arcade","retro","karaoke","karaoke_blue","fill_in","box","green_box","highlighter","glow","neon","slide_up","soft_lowercase","sunset","ocean","gold","clean","subtitles","yellow_subtitles","minimal","quiet_caps","cinematic","soft_fade","bubble","black_pill","speaker_colors","lower_third","news","two_lines"]},"name":{"type":"string","minLength":1,"maxLength":60},"document":{"type":"object","properties":{"version":{"type":"number","const":1},"words":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"],"additionalProperties":false}},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","breakOnPauseMs","breakOnSentence","combineWithinMs","minDurationMs","maxDurationMs","lingerMs","offsetMs","uppercase","hidePunctuation"],"additionalProperties":false},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}}},"required":["version","words","layout","style"],"additionalProperties":false}},"required":["id","name","document"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/caption-styles":{"get":{"operationId":"get_v1_caption_styles","tags":["Caption styles"],"summary":"List the account's saved caption styles (up to 100)","security":[{"apiKey":[]},{"session":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"uppercase":{"type":"boolean"},"lowercase":{"default":false,"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","uppercase","lowercase","hidePunctuation"],"additionalProperties":false},"id":{"type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"saved":{"type":"boolean","const":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["name","style","layout","id","saved","created_at","updated_at"],"additionalProperties":false}},"limit":{"type":"number","const":100}},"required":["data","limit"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"post":{"operationId":"post_v1_caption_styles","tags":["Caption styles"],"summary":"Save a caption style and its visual layout","security":[{"apiKey":[]},{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","stroke","shadow","lineBox","activeBox","position","animation"],"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"uppercase":{"type":"boolean"},"lowercase":{"default":false,"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","uppercase","hidePunctuation"],"additionalProperties":false}},"required":["name","style","layout"],"additionalProperties":false}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"uppercase":{"type":"boolean"},"lowercase":{"default":false,"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","uppercase","lowercase","hidePunctuation"],"additionalProperties":false},"id":{"type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"saved":{"type":"boolean","const":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["name","style","layout","id","saved","created_at","updated_at"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/caption-styles/{id}":{"get":{"operationId":"get_v1_caption_styles_id","tags":["Caption styles"],"summary":"Read one of the account's saved caption styles","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"uppercase":{"type":"boolean"},"lowercase":{"default":false,"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","uppercase","lowercase","hidePunctuation"],"additionalProperties":false},"id":{"type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"saved":{"type":"boolean","const":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["name","style","layout","id","saved","created_at","updated_at"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"patch":{"operationId":"patch_v1_caption_styles_id","tags":["Caption styles"],"summary":"Rename a saved style or replace its style or layout","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","stroke","shadow","lineBox","activeBox","position","animation"],"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"uppercase":{"type":"boolean"},"lowercase":{"default":false,"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","uppercase","hidePunctuation"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"uppercase":{"type":"boolean"},"lowercase":{"default":false,"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","uppercase","lowercase","hidePunctuation"],"additionalProperties":false},"id":{"type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"saved":{"type":"boolean","const":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["name","style","layout","id","saved","created_at","updated_at"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"delete":{"operationId":"delete_v1_caption_styles_id","tags":["Caption styles"],"summary":"Delete a saved caption style","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Done"},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/caption-styles/import":{"post":{"operationId":"post_v1_caption_styles_import","tags":["Caption styles"],"summary":"Import browser caption styles, skipping duplicate looks","description":"Import is atomic, up to 100 styles per request and account. Names, browser IDs and dates do not affect content deduplication. Returns the account's styles and browser-to-account ID mappings. Keep browser styles until this succeeds.","security":[{"apiKey":[]},{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"styles":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","stroke","shadow","lineBox","activeBox","position","animation"],"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"uppercase":{"type":"boolean"},"lowercase":{"default":false,"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","uppercase","hidePunctuation"],"additionalProperties":false},"id":{"description":"The browser style ID, returned in mappings.","type":"string","minLength":1,"maxLength":100},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["name","style","layout"],"additionalProperties":false}}},"required":["styles"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"default":[],"maxItems":0,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"uppercase":{"type":"boolean"},"lowercase":{"default":false,"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","uppercase","lowercase","hidePunctuation"],"additionalProperties":false},"id":{"type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"saved":{"type":"boolean","const":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["name","style","layout","id","saved","created_at","updated_at"],"additionalProperties":false}},"limit":{"type":"number","const":100},"imported":{"type":"integer","minimum":0,"maximum":9007199254740991},"skipped":{"type":"integer","minimum":0,"maximum":9007199254740991},"mappings":{"type":"array","items":{"type":"object","properties":{"source_id":{"type":["string","null"]},"style_id":{"type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"}},"required":["source_id","style_id"],"additionalProperties":false}}},"required":["data","limit","imported","skipped","mappings"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/tools":{"get":{"operationId":"get_v1_tools","tags":["Tools"],"summary":"List the tools with prices, free limits, and input schemas","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"title":{"type":"string"},"slug":{"type":"string","description":"The free API's path: /api/try/<slug>"},"description":{"type":"string"},"price":{"oneOf":[{"type":"object","properties":{"perOption":{"type":"object","properties":{"option":{"type":"string"},"default":{"type":"string"},"prices":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number","minimum":0}}},"required":["option","default","prices"],"additionalProperties":false},"unit":{"type":"string","const":"minute"},"measure":{"type":"string","enum":["main_input","all_inputs","video_input","mix_output","loop_output","selected_range"]},"credits":{"type":"number","minimum":0},"creditsWithTranscript":{"type":"number","minimum":0},"creditsWithWords":{"type":"number","minimum":0},"creditsWithPlan":{"type":"number","minimum":0},"captionLanguageCredits":{"type":"number","minimum":0}},"required":["unit","measure","credits"],"additionalProperties":false},{"type":"object","properties":{"perOption":{"type":"object","properties":{"option":{"type":"string"},"default":{"type":"string"},"prices":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number","minimum":0}}},"required":["option","default","prices"],"additionalProperties":false},"unit":{"type":"string","const":"per_1k_chars"},"credits":{"type":"number","minimum":0},"minimumCredits":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["unit","credits","minimumCredits"],"additionalProperties":false},{"type":"object","properties":{"perOption":{"type":"object","properties":{"option":{"type":"string"},"default":{"type":"string"},"prices":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number","minimum":0}}},"required":["option","default","prices"],"additionalProperties":false},"unit":{"type":"string","const":"per_image"},"credits":{"type":"number","minimum":0},"minimumCredits":{"type":"integer","minimum":1,"maximum":9007199254740991},"countOption":{"type":"string"}},"required":["unit","credits","minimumCredits"],"additionalProperties":false},{"type":"object","properties":{"perOption":{"type":"object","properties":{"option":{"type":"string"},"default":{"type":"string"},"prices":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number","minimum":0}}},"required":["option","default","prices"],"additionalProperties":false},"unit":{"type":"string","const":"per_output_second"},"credits":{"type":"number","minimum":0},"minimumCredits":{"type":"integer","minimum":1,"maximum":9007199254740991},"secondsOption":{"type":"string"}},"required":["unit","credits","minimumCredits","secondsOption"],"additionalProperties":false},{"type":"object","properties":{"perOption":{"type":"object","properties":{"option":{"type":"string"},"default":{"type":"string"},"prices":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number","minimum":0}}},"required":["option","default","prices"],"additionalProperties":false},"unit":{"type":"string","const":"flat"},"credits":{"type":"number","minimum":0},"minimumCredits":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["unit","credits","minimumCredits"],"additionalProperties":false}]},"creditsPerMinute":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"free":{"type":"object","properties":{"enabled":{"type":"boolean"},"mode":{"type":"string","enum":["limited","none"]},"wholeResultOnly":{"description":"A free run is refused when the complete result exceeds the free seconds","type":"boolean"},"seconds":{"description":"How much of a file a free run processes, or null for the whole file","type":["number","null"]},"dailyUses":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Free uses a day per person. They reset at midnight UTC"}},"required":["enabled","seconds","dailyUses"],"additionalProperties":false},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"The tool's input as JSON Schema, as POST /api/v1/jobs takes it"}},"required":["id","title","slug","description","creditsPerMinute","free","input"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/quote":{"post":{"operationId":"post_v1_quote","tags":["Tools"],"summary":"Price a tool on some files, and what a free run would cover","security":[{"apiKey":[]},{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"options":{"description":"The job options, including model, track starts, transcript_file_id, or requested output length/count","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"fileIds":{"minItems":0,"maxItems":20,"type":"array","items":{"type":"string","maxLength":100},"description":"For inline main text, pass [] and options.text. Otherwise the inputs in the job's order: the main input first, every file for join and for mix tracks, the video then the audio for swap audio, each track to level speakers by tracks"}},"required":["tool","fileIds"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"compression":{"description":"Compression size/bitrate estimate before encoding; infeasible targets are refused.","type":"object","properties":{"target_bytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"estimated_bytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"video_bitrate":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"audio_bitrate":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"minimum_video_bitrate":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"width":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"height":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fps":{"type":"number"}},"required":["target_bytes","estimated_bytes","video_bitrate","audio_bitrate","minimum_video_bitrate","width","height","fps"],"additionalProperties":false},"estimated_output_bytes":{"description":"Approximate animation size before encoding; content and a size target can change the actual size","type":"integer","minimum":0,"maximum":9007199254740991},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"unit":{"description":"The measured quantity: seconds for minute prices, characters, images, generated seconds, or jobs","type":"string","enum":["second","character","image","output_second","job"]},"units":{"type":"number","minimum":0},"seconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The billed length, rounded to the nearest second; 0 for non-minute tools"},"credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The price to process all of it"},"free":{"type":"object","properties":{"seconds":{"type":"number","description":"How much a free run processes"},"usesLeftToday":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["seconds","usesLeftToday"],"additionalProperties":false}},"required":["tool","seconds","credits","free"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/files":{"post":{"operationId":"post_v1_files","tags":["Files"],"summary":"Create a file: an upload link, or parts for larger files, plus an upload page for a person","description":"The response has an upload link for one PUT of up to 100 MB (upload), or, when sizeBytes is over 16 MB, parts (multipart): PUT part n to multipart.partUrl with {n} replaced by n, then POST multipart.completeUrl. One token covers every part. Or give uploadPageUrl to a person.","security":[{"apiKey":[]},{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"filename":{"description":"Needed, with sizeBytes, to get a signed upload link now","type":"string","minLength":1,"maxLength":255},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"contentType":{"type":"string","maxLength":100},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200},"tool":{"description":"The tool the file is for. Only a browser paying without signing in needs it: its uploads are counted like free ones, and a tool that takes several files may have that many waiting","type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]}}}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"file":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false},"upload":{"anyOf":[{"type":"object","properties":{"method":{"type":"string","const":"PUT"},"url":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["method","url","headers","expiresAt"],"additionalProperties":false},{"type":"null"}],"description":"One PUT, up to 100 MB"},"multipart":{"anyOf":[{"type":"object","properties":{"partSizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Every part is this size, except the last"},"partCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"partUrl":{"type":"string","description":"Where part n goes (PUT), with {n} in place of the part number, counting from 1"},"completeUrl":{"type":"string","description":"POST here once every part is in. It joins them, or lists the parts that haven't arrived (details.missingParts)"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["partSizeBytes","partCount","partUrl","completeUrl","expiresAt"],"additionalProperties":false},{"type":"null"}],"description":"Upload in parts instead, for larger files"},"uploadPageUrl":{"type":"string","description":"A web page where the person can upload this file"}},"required":["file","upload","multipart","uploadPageUrl"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"get":{"operationId":"get_v1_files","tags":["Files"],"summary":"List files, newest first","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"description":"nextCursor from the previous page","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1 to 100. Default 20","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"kind","in":"query","required":false,"description":"original (uploads) or output (results)","schema":{"type":"string","enum":["original","output"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/files/import":{"post":{"operationId":"post_v1_files_import","tags":["Files"],"summary":"Import a file from a public HTTPS link","description":"Answers within about 20 seconds. The file is processing while it arrives and is checked; GET it with wait until it's ready. Importing the same link again within an hour gives the same file.","security":[{"apiKey":[]},{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":4000,"description":"A public HTTPS link to the file"},"filename":{"description":"Default: taken from the link","type":"string","minLength":1,"maxLength":255}},"required":["url"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/files/{id}":{"get":{"operationId":"get_v1_files_id","tags":["Files"],"summary":"Get a file: status, length, format, and each tool's price for it","description":"With wait, answers once the upload has arrived and the file is checked, or after that many seconds.","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"wait","in":"query","required":false,"description":"Wait up to this many seconds (at most 40) for a change before answering","schema":{"type":"number","minimum":0,"maximum":40}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"delete":{"operationId":"delete_v1_files_id","tags":["Files"],"summary":"Delete a file now","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Done"},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/files/{id}/upload":{"post":{"operationId":"post_v1_files_id_upload","tags":["Files"],"summary":"Name a file created without a name and size, and get how to upload it","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":255},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"contentType":{"type":"string","maxLength":100}},"required":["filename","sizeBytes"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"file":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false},"upload":{"anyOf":[{"type":"object","properties":{"method":{"type":"string","const":"PUT"},"url":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["method","url","headers","expiresAt"],"additionalProperties":false},{"type":"null"}],"description":"One PUT, up to 100 MB"},"multipart":{"anyOf":[{"type":"object","properties":{"partSizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Every part is this size, except the last"},"partCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"partUrl":{"type":"string","description":"Where part n goes (PUT), with {n} in place of the part number, counting from 1"},"completeUrl":{"type":"string","description":"POST here once every part is in. It joins them, or lists the parts that haven't arrived (details.missingParts)"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["partSizeBytes","partCount","partUrl","completeUrl","expiresAt"],"additionalProperties":false},{"type":"null"}],"description":"Upload in parts instead, for larger files"}},"required":["file","upload","multipart"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/files/{id}/abort":{"post":{"operationId":"post_v1_files_id_abort","tags":["Files"],"summary":"Stop an upload that hasn't completed","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Done"},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/files/{id}/download":{"get":{"operationId":"get_v1_files_id_download","tags":["Files"],"summary":"Get a download link that works for 15 minutes","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["fileId","filename","url","expiresAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/files/{id}/transcript":{"get":{"operationId":"get_v1_files_id_transcript","tags":["Files"],"summary":"Read part of a transcript file, with times","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"from","in":"query","required":false,"description":"Start of the window in seconds. Default 0","schema":{"type":"number","minimum":0}},{"name":"to","in":"query","required":false,"description":"End of the window in seconds. Default from + 300","schema":{"type":"number","minimum":0}},{"name":"detail","in":"query","required":false,"description":"concise (sentences) or full (sentences with every word's times)","schema":{"type":"string","enum":["concise","full"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fileId":{"type":"string"},"language":{"type":"string","description":"A language code, such as en"},"fromSeconds":{"type":"number"},"toSeconds":{"type":"number"},"durationSeconds":{"type":"number","description":"The whole transcript's length"},"speakerCount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"How many people speak in the whole transcript (0 without speech), or null when it has no speaker labels"},"detail":{"type":"string","enum":["concise","full"]},"sentences":{"type":"array","items":{"type":"object","properties":{"startSeconds":{"type":"number"},"endSeconds":{"type":"number"},"text":{"type":"string"},"speaker":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Who says it: 1, 2, and so on, in the order people first speak"},{"type":"null"}],"description":"Who says it: 1, 2, and so on, in the order people first speak, or null without speaker labels"},"words":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"startSeconds":{"type":"number"},"endSeconds":{"type":"number"},"speaker":{"description":"Who says it, when the transcript has speaker labels: 1, 2, and so on, in the order people first speak","type":"integer","minimum":1,"maximum":9007199254740991},"matched":{"description":"In an aligned script: false when the word wasn't found in the recording","type":"boolean"}},"required":["text","startSeconds","endSeconds"],"additionalProperties":false}}},"required":["startSeconds","endSeconds","text","speaker"],"additionalProperties":false}},"nextFromSeconds":{"description":"Where to read on from, or null at the end","type":["number","null"]}},"required":["fileId","language","fromSeconds","toSeconds","durationSeconds","speakerCount","detail","sentences","nextFromSeconds"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/files/{id}/peaks":{"get":{"operationId":"get_v1_files_id_peaks","tags":["Files"],"summary":"Read a file's waveform: its lowest and highest samples, at 5, 50, or 500 bins a second","description":"Made on first request, which answers with status processing; ask again with wait. Kept and deleted with the file.","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"wait","in":"query","required":false,"description":"Wait up to this many seconds (at most 40) for a change before answering","schema":{"type":"number","minimum":0,"maximum":40}},{"name":"level","in":"query","required":false,"description":"Bins a second: 5, 50, 500. Without it, only the description comes back","schema":{"type":"integer","enum":[5,50,500]}},{"name":"first","in":"query","required":false,"description":"The first bin to return. Default 0","schema":{"type":"integer","minimum":0}},{"name":"count","in":"query","required":false,"description":"How many bins, 1 to 16384. Default 4096","schema":{"type":"integer","minimum":1,"maximum":16384}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fileId":{"type":"string"},"status":{"type":"string","enum":["processing","ready","none"],"description":"processing while they're made (ask again, with wait); none when the file has no sound to draw"},"durationSeconds":{"description":"How long the decoded sound is","type":["number","null"]},"peak":{"description":"The loudest sample, 0 to 1","type":["number","null"]},"levels":{"type":"array","items":{"type":"object","properties":{"perSecond":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["perSecond","count"],"additionalProperties":false}},"bins":{"anyOf":[{"type":"object","properties":{"level":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"first":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"data":{"type":"string","description":"Base64 of count pairs of signed bytes: min, then max"}},"required":["level","first","count","data"],"additionalProperties":false},{"type":"null"}],"description":"The bins asked for with level, first, and count, once ready"}},"required":["fileId","status","durationSeconds","peak","levels","bins"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/jobs":{"post":{"operationId":"post_v1_jobs","tags":["Jobs"],"summary":"Start a tool on files","description":"The body is the tool's ID and its input in snake_case, such as {\"tool\": \"remove_noise\", \"file_id\": \"file_8Kc2QmP4\", \"idempotency_key\": \"<a new UUID>\"}. The price is reserved now and charged only if the job succeeds. Add max_credits to cap it, or \"free\": true for the free part. The Idempotency-Key header works in place of idempotency_key.","security":[{"apiKey":[]},{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The audio or video with sound."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"cover_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"Optional account-owned PNG, JPEG, or WebP for the background or cover box."},"preset":{"default":"podcast_square","description":"A built-in look; list_audiogram_presets returns complete documents. Explicit audiogram replaces it.","type":"string","enum":["podcast_square","shorts","minimal_line","sunset","ring","bold"]},"audiogram":{"description":"Complete AudiogramDocument v1. Positions and sizes are normalized. Includes optional already timed caption document.","type":"object","properties":{"version":{"type":"number","const":1},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["1:1","9:16","16:9","4:5"]},"width":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"height":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"fps":{"type":"integer","minimum":1,"maximum":60}},"required":["ratio","width","height","fps"],"additionalProperties":false},"background":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"color"},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["type","color"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"gradient"},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"angle":{"type":"number","minimum":-360,"maximum":360}},"required":["type","colors","angle"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"fit":{"type":"string","enum":["fit","fill"]},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"blur":{"type":"number","minimum":0,"maximum":0.1}},"required":["type","fit","color","blur"],"additionalProperties":false}]},"waveform":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"style":{"type":"string","enum":["bars","line","mirror","circle","dots"]},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"thickness":{"type":"number","minimum":0.001,"maximum":0.1},"gap":{"type":"number","minimum":0.001,"maximum":0.1},"smoothing":{"type":"number","minimum":0,"maximum":1},"sensitivity":{"type":"number","minimum":0,"maximum":5}},"required":["x","y","width","height","style","colors","thickness","gap","smoothing","sensitivity"],"additionalProperties":false},"cover":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"radius":{"type":"number","minimum":0,"maximum":0.5},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false}},"required":["x","y","width","height","radius","shadow"],"additionalProperties":false},{"type":"null"}]},"title":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"subtitle":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"progress":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"background":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"radius":{"type":"number","minimum":0,"maximum":0.5}},"required":["x","y","width","height","color","background","radius"],"additionalProperties":false},{"type":"null"}]},"captions":{"type":"object","properties":{"version":{"type":"number","const":1},"words":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","breakOnPauseMs","breakOnSentence","combineWithinMs","minDurationMs","maxDurationMs","lingerMs","offsetMs","uppercase","hidePunctuation"],"additionalProperties":false},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}}},"required":["version","words","layout","style"],"additionalProperties":false}},"required":["version","output","background","waveform","cover","title","subtitle","progress"],"additionalProperties":false},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"audio_to_video"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, including silent video."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"logo_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"Account-owned PNG, JPEG, or WebP used by logo items."},"overlay":{"type":"object","properties":{"version":{"type":"number","const":1},"items":{"minItems":1,"maxItems":100,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"margin":{"type":"number","minimum":0,"maximum":0.4},"stroke":{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"width":{"type":"number","minimum":0,"maximum":0.03}},"required":["color","width"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"background":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.1},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","text","font","weight","size","color","start_ms","end_ms","position","margin","stroke","shadow","background","animation"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"logo"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"scale":{"type":"number","minimum":0.01,"maximum":1},"opacity":{"type":"number","minimum":0,"maximum":1},"margin":{"type":"number","minimum":0,"maximum":0.4},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","start_ms","end_ms","position","scale","opacity","margin"],"additionalProperties":false}]}}},"required":["version","items"],"additionalProperties":false,"description":"OverlayDocument v1: timed text and logo items; end_ms is exclusive. Positions are item centers, or a nine-grid anchor with margin. Sizes use frame height; logo scale uses frame width."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"add_overlay"}},"required":["file_id","idempotency_key","overlay","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, including silent video."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"ratio":{"default":"9:16","description":"Output ratio. Default 9:16.","type":"string","enum":["9:16","1:1","4:5","16:9"]},"output":{"description":"Explicit even pixel dimensions and ratio; overrides ratio.","type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"layout":{"default":"fill","description":"Default layout for detected scenes. Every panel remains editable in the returned plan.","type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"settings":{"default":{"subject":"active_speaker","smoothing":0.7,"min_switch_ms":1500,"snap_to_center":true,"scene_detection":true,"scene_threshold":10},"description":"Tracking settings: subject, smoothing 0 to 1, min_switch_ms, snap_to_center, scene_detection and scene_threshold 0 to 100.","type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"background":{"default":{"mode":"blur","color":"#000000","blur":20},"description":"Padding behind panels: blur or solid color, hex color, and blur strength.","type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"description":"Keep this speaker when speaker turns can associate them with a face.","type":"integer","minimum":0,"maximum":9007199254740991},"speaker_turns":{"description":"Optional existing diarize turns in milliseconds. Otherwise active_speaker requests speaker labels when available.","maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["start_ms","end_ms","speaker"],"additionalProperties":false}},"tool":{"type":"string","const":"reframe_plan"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, including silent video."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"ratio":{"default":"9:16","description":"Output ratio. Default 9:16.","type":"string","enum":["9:16","1:1","4:5","16:9"]},"output":{"description":"Explicit even pixel dimensions and ratio; overrides ratio.","type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"layout":{"default":"fill","description":"Default layout for detected scenes. Every panel remains editable in the returned plan.","type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"settings":{"default":{"subject":"active_speaker","smoothing":0.7,"min_switch_ms":1500,"snap_to_center":true,"scene_detection":true,"scene_threshold":10},"description":"Tracking settings: subject, smoothing 0 to 1, min_switch_ms, snap_to_center, scene_detection and scene_threshold 0 to 100.","type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"background":{"default":{"mode":"blur","color":"#000000","blur":20},"description":"Padding behind panels: blur or solid color, hex color, and blur strength.","type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"description":"Keep this speaker when speaker turns can associate them with a face.","type":"integer","minimum":0,"maximum":9007199254740991},"speaker_turns":{"description":"Optional existing diarize turns in milliseconds. Otherwise active_speaker requests speaker labels when available.","maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["start_ms","end_ms","speaker"],"additionalProperties":false}},"plan_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"An account-owned ReframePlan JSON file, instead of inline plan; useful for large edited documents."},"plan":{"description":"Edited v1 plan: skips analysis and renders its paths, placements, backgrounds and easings exactly. Costs 1 credit/min instead of 3.","type":"object","properties":{"version":{"type":"number","const":1},"source":{"type":"object","properties":{"width":{"type":"integer","minimum":2,"maximum":16384},"height":{"type":"integer","minimum":2,"maximum":16384},"fps":{"type":"number","exclusiveMinimum":0,"maximum":240},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000}},"required":["width","height","fps","duration_ms"],"additionalProperties":false},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"settings":{"type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"scenes":{"minItems":1,"maxItems":10000,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"},"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"layout":{"type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"panels":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["crop_path","placement"],"additionalProperties":false}},"background":{"type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["crop_path","placement","start_ms","end_ms","layout","panels","background"],"additionalProperties":false}},"speakers":{"maxItems":40000,"type":"array","items":{"type":"object","properties":{"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["speaker","subject_id"],"additionalProperties":false}}},"required":["version","source","duration_ms","output","settings","scenes","speakers"],"additionalProperties":false},"tool":{"type":"string","const":"reframe_video"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video to caption."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"transcript_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The JSON transcript transcribe_audio returned for this video. Reuses its words at 1 credit a minute; captions.words overrides the words while keeping that price. The transcript must cover the part being captioned."},"captions":{"default":{"version":1,"outputs":["video","srt","vtt","txt"]},"description":"Caption document v1: preset plus style/layout overrides, language, optional timed words, edited text, and outputs. Times are milliseconds; position and font sizes are fractions of the video frame.","type":"object","properties":{"version":{"default":1,"type":"number","const":1},"preset":{"type":"string","enum":["bold_keywords","big_bounce","yellow_keyword","green_word","pop","one_word","one_word_yellow","comic","arcade","retro","karaoke","karaoke_blue","fill_in","box","green_box","highlighter","glow","neon","slide_up","soft_lowercase","sunset","ocean","gold","clean","subtitles","yellow_subtitles","minimal","quiet_caps","cinematic","soft_fade","bubble","black_pill","speaker_colors","lower_third","news","two_lines"]},"style_id":{"description":"Your saved caption style ID from list_caption_presets or /api/v1/caption-styles. Its look replaces the preset's look; explicit style/layout overrides still win.","type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"words":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}},"text":{"description":"Edited script. Aligns against words when supplied, otherwise against a new transcript. Omit to keep the supplied word times.","type":"string","minLength":1,"maxLength":2097152},"language":{"type":"string","pattern":"^[a-z]{2,3}$"},"auto_keywords":{"description":"Pick emphasis words automatically. Explicit style.keywords wins.","type":"boolean"},"max_per_caption":{"description":"Automatic emphasis words per caption, default 1.","type":"integer","minimum":1,"maximum":3},"auto_emoji":{"description":"Add a few supported Noto emoji, avoiding sensitive topics.","type":"boolean"},"density":{"description":"Automatic emoji per minute: up to 2, 4 (default), or 6.","type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string","maxLength":35,"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"},"bilingual":{"description":"Keep the original line above the translation. Requires translate_to.","type":"boolean"},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"outputs":{"default":["video","srt","vtt","txt"],"minItems":1,"maxItems":7,"type":"array","items":{"type":"string","enum":["video","overlay_webm","overlay_prores","srt","vtt","ass","txt"]}}},"additionalProperties":false},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"add_captions"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"noise_reduction":{"default":100,"description":"How much of the noise to turn down, as a percentage. 100 turns down all it can; lower values keep some of the background. Default 100.","type":"integer","minimum":10,"maximum":100},"auto_volume":{"default":true,"description":"Sets the whole file to -16 LUFS with one gain, and limits peaks to -1 dBTP. It doesn't balance loud and quiet speakers. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first minute, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first minute free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"remove_noise"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"noise_reduction":{"default":100,"description":"How much of the regenerated voice to use, as a percentage. 100 uses all of it; lower values mix back some of the original sound. Default 100.","type":"integer","minimum":10,"maximum":100},"auto_volume":{"default":true,"description":"Sets the whole file to -16 LUFS with one gain, and limits peaks to -1 dBTP. It doesn't balance loud and quiet speakers. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first minute, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first minute free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"enhance_voice"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The song or video to separate, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"stems":{"default":"vocals","description":"Which stems to separate: vocals (vocals first, then instrumental), instrumental (instrumental backing track first, then vocals), four_stems (vocals, drums, bass, and other), or dialogue (music-removed mix first, then dialogue, music, and sound effects). Default vocals.","type":"string","enum":["vocals","instrumental","four_stems","dialogue"]},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 45 seconds, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 45 seconds free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"split_audio"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"language":{"description":"The spoken language, as a code such as en or ja. Default: detected.","type":"string","pattern":"^[a-z]{2,3}$"},"verbatim":{"default":true,"description":"Keeps filler words such as um and uh, so they can be cut later. Default true.","type":"boolean"},"speaker_labels":{"default":true,"description":"Labels who speaks when: Speaker 1, Speaker 2, and so on, in the order they first speak, up to 8 people. No names. Default true.","type":"boolean"},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"transcribe_audio"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"text":{"description":"The script as plain text, SRT, or VTT, up to 2 MB, such as \"Welcome back to the show.\" Pass text or script_file_id, not both.","type":"string","minLength":1,"maxLength":2097152},"script_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"An uploaded script file (TXT, SRT, or VTT), such as file_3Jd9RtY2. Pass text or script_file_id, not both."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"align_script"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"ranges":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2},"description":"Time ranges as [start, end] pairs in seconds, such as [[0, 12.5], [300, 312]]. 1 to 5,000 ranges."},"mode":{"default":"remove","description":"remove deletes the ranges; keep keeps only the ranges. Default remove.","type":"string","enum":["remove","keep"]},"output":{"default":"joined","description":"joined makes one file; separate makes one file per range. Default joined.","type":"string","enum":["joined","separate"]},"crossfade_ms":{"default":20,"description":"A crossfade at each cut, in milliseconds (0 to 200), such as 20. Default 20.","type":"integer","minimum":0,"maximum":200},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"cut_audio"}},"required":["file_id","idempotency_key","ranges","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"min_pause_seconds":{"default":0.7,"description":"Shortens pauses at least this long, in seconds (0.3 to 5), such as 0.7. Default 0.7.","type":"number","minimum":0.3,"maximum":5},"keep_seconds":{"default":0.25,"description":"How much of each pause to keep, in seconds (0 to 1), such as 0.25. Default 0.25.","type":"number","minimum":0,"maximum":1},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"remove_silence"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"target":{"default":"podcast","description":"Where it's going: podcast (-16 LUFS), streaming (-14 LUFS), broadcast (-23 LUFS), audiobook (ACX checks), or custom (set custom_lufs). Default podcast.","type":"string","enum":["podcast","streaming","broadcast","audiobook","custom"]},"custom_lufs":{"description":"The loudness for target custom, in LUFS (-30 to -5), such as -18.","type":"number","minimum":-30,"maximum":-5},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"adjust_loudness"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The file to convert, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"format":{"default":"mp3","description":"The format to convert to: mp3, wav, m4a, flac, ogg, or opus. Default mp3.","type":"string","enum":["mp3","wav","m4a","flac","ogg","opus"]},"bitrate_kbps":{"description":"The bitrate for mp3, m4a, ogg, or opus, in kbps (16 to 320), such as 128. Default: chosen for the format.","type":"integer","minimum":16,"maximum":320},"sample_rate":{"description":"The sample rate in Hz, such as 44100. Default: the input's.","type":"number","enum":[8000,16000,22050,24000,32000,44100,48000]},"channels":{"description":"mono or stereo. Default: the input's.","type":"string","enum":["mono","stereo"]},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"convert_audio"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_ids":{"minItems":2,"maxItems":20,"type":"array","items":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"A file ID, such as file_8Kc2QmP4."},"description":"The files to join, in order, such as [\"file_8Kc2QmP4\", \"file_3Jd9RtY2\"]. 2 to 20 files."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"crossfade_ms":{"default":0,"description":"A crossfade between files, in milliseconds (0 to 5000), such as 500. Default 0.","type":"integer","minimum":0,"maximum":5000},"video_mode":{"default":"fit","description":"For video inputs: fit pads, fill crops to the first video’s frame. Default fit.","type":"string","enum":["fit","fill"]},"match_loudness":{"default":true,"description":"Matches the files' loudness before joining. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the first file), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first hour of the result, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour of the result free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"join_audio"}},"required":["file_ids","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"video_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video that gets the new soundtrack, such as file_8Kc2QmP4."},"audio_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The new soundtrack, such as file_3Jd9RtY2."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"offset_seconds":{"default":0,"description":"When the new audio starts against the picture, in seconds, such as 0.5 (later) or -0.5 (earlier). Default 0.","type":"number","minimum":-36000,"maximum":36000},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"replace_audio"}},"required":["video_file_id","audio_file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The file to inspect, audio or video, such as file_8Kc2QmP4."},"detail":{"default":"concise","description":"concise lists up to 50 silent stretches; full lists them all. Default concise.","type":"string","enum":["concise","full"]},"tool":{"type":"string","const":"analyze_audio"}},"required":["file_id","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"transcript_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"A verbatim transcript of this recording: the JSON file from transcribe_audio or an earlier remove_fillers run, such as file_3Jd9RtY2. It isn't transcribed again, so the job costs 1 credit a minute instead of 2. Needed with cut_ids."},"dry_run":{"default":false,"description":"true lists the cuts it would make, with their IDs, and makes no audio. Default false.","type":"boolean"},"cut_ids":{"description":"Makes only these cuts, by ID from a dry run of the same transcript, such as [\"c1\", \"c4\"]. Needs transcript_file_id. Default: every cut.","minItems":1,"maxItems":5000,"type":"array","items":{"type":"string","pattern":"^c[0-9]{1,5}$"}},"repeats":{"default":true,"description":"Also cuts a word or phrase of up to 3 words said twice in a row, keeping the second (\"the the\" becomes \"the\"). Default true.","type":"boolean"},"language":{"description":"The spoken language, as a code such as en or de. It picks the filler words: en, de, fr, es, it, nl, ja, or ko. Default: detected.","type":"string","pattern":"^[a-z]{2,3}$"},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"remove_fillers"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"transcript_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The JSON transcript from transcribe_audio for this recording. Skips transcription and costs 2 credits a minute."},"target_language":{"type":"string","enum":["af","ar","as","az","bg","bn","bs","ca","cs","da","de","el","en","es","et","fa","fi","fil","fr","gl","gu","he","hi","hu","hy","id","is","it","ja","kk","kn","ko","lt","lv","mk","ml","mr","ms","nb","ne","nl","or","pa","pl","pt","ro","ru","sk","sl","sv","sw","ta","te","th","tr","uk","ur","vi","yue","zh"],"description":"Translate into this language code, such as en, es, or ja."},"source_language":{"description":"The spoken language. Default: detected, or the supplied transcript's language.","type":"string","enum":["af","ar","as","az","bg","bn","bs","ca","cs","da","de","el","en","es","et","fa","fi","fil","fr","gl","gu","he","hi","hu","hy","id","is","it","ja","kk","kn","ko","lt","lv","mk","ml","mr","ms","nb","ne","nl","or","pa","pl","pt","ro","ru","sk","sl","sv","sw","ta","te","th","tr","uk","ur","vi","yue","zh"]},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"translate_transcript"}},"required":["file_id","target_language","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"transcript_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The JSON transcript from transcribe_audio for this recording. Skips transcription and costs 1 credit a minute."},"count":{"default":5,"description":"Maximum number of ranked, non-overlapping moments. Returns fewer when speech cannot fill that many.","type":"integer","minimum":1,"maximum":20},"min_seconds":{"default":15,"description":"Shortest highlight, in seconds. Default 15.","type":"number","minimum":1,"maximum":600},"max_seconds":{"default":60,"description":"Longest highlight, in seconds. Default 60.","type":"number","minimum":1,"maximum":600},"instructions":{"description":"What to look for, such as funny moments or the product demo. At most 500 characters.","type":"string","maxLength":500},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"find_highlights"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"One recording with everyone in it, audio or video, such as file_8Kc2QmP4. Pass file_id or track_file_ids, not both."},"track_file_ids":{"description":"Per-person tracks instead, one speaker each, such as [\"file_8Kc2QmP4\", \"file_3Jd9RtY2\"]. 2 to 10 tracks; each comes back leveled as its own file.","minItems":2,"maxItems":10,"type":"array","items":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"A file ID, such as file_8Kc2QmP4."}},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"target":{"default":"podcast","description":"The loudness it finishes at: podcast (-16 LUFS), streaming (-14 LUFS), broadcast (-23 LUFS), or custom (set custom_lufs). Default podcast.","type":"string","enum":["podcast","streaming","broadcast","custom"]},"custom_lufs":{"description":"The loudness for target custom, in LUFS (-30 to -5), such as -18.","type":"number","minimum":-30,"maximum":-5},"within_speaker":{"default":false,"description":"Also evens out slow changes within each speaker, such as leaning away from the mic: up to 6 dB, measured on their speech only and held through pauses. Default false.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 3 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 3 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"level_speakers"}},"required":["idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"tracks":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The track, such as file_8Kc2QmP4."},"volume_db":{"default":0,"description":"The track's volume change in dB (-60 to 24), such as -12. Default 0.","type":"number","minimum":-60,"maximum":24},"start_seconds":{"default":0,"description":"Where the track starts in the mix, in seconds, such as 4.5. Default 0. With align, only the earliest aligned track's is used.","type":"number","minimum":0,"maximum":36000},"role":{"description":"voice or music: align lines up voice tracks, and duck lowers music under voice. Default none.","type":"string","enum":["voice","music"]},"gain":{"description":"A gain over the track's own time, on top of volume_db: [seconds, dB] points in time order, such as [[0, 0], [30, -6], [31, 0]], linear in dB between points and held before the first and after the last. -120 dB is silent. Up to 20,000 points. Default none.","minItems":1,"maxItems":20000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":-120,"maximum":24}],"items":false,"minItems":2,"maxItems":2}}},"required":["file_id"],"additionalProperties":false},"description":"The tracks, such as [{\"file_id\": \"file_8Kc2QmP4\", \"role\": \"voice\"}, {\"file_id\": \"file_3Jd9RtY2\", \"role\": \"music\", \"volume_db\": -6}]. 2 to 20, or one with a gain or a loudness."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"align":{"default":false,"description":"Lines up tracks recorded at the same time (the voice tracks, or every track when none has a role) by their sound, and corrects clock drift. Default false.","type":"boolean"},"duck":{"default":false,"description":"Lowers music tracks while a voice track speaks. Needs a voice and a music track. Default false.","type":"boolean"},"duck_gap_lu":{"default":12,"description":"With duck, how far under the speech the music sits, in LU (6 to 30), such as 12. Default 12.","type":"number","minimum":6,"maximum":30},"loudness":{"default":"none","description":"A loudness for the mix: none (the tracks as set, lowered only if it would clip), podcast (-16 LUFS), streaming (-14), or broadcast (-23). Default none.","type":"string","enum":["none","podcast","streaming","broadcast"]},"output_format":{"default":"same","description":"The mix's format: same (as the first track's audio), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 3 minutes of the mix, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 3 minutes of the mix free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"mix_tracks"}},"required":["tracks","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"speed":{"default":1,"description":"How fast it plays: 1 is unchanged, 1.25 is 25% faster (shorter), 0.8 is 20% slower. 0.25 to 4. Default 1.","type":"number","minimum":0.25,"maximum":4},"pitch_semitones":{"default":0,"description":"How far to move the pitch, in semitones: 2 is up a whole step, -1 down a half step, 12 up an octave. -12 to 12, to 0.01. Default 0.","type":"number","minimum":-12,"maximum":12,"multipleOf":0.01},"keep_pitch":{"default":true,"description":"true changes the speed without changing the pitch. false changes both together, like a record played faster or slower (nightcore, slowed). pitch_semitones moves it further. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"change_speed_pitch"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The song, audio or video, such as file_8Kc2QmP4."},"tool":{"type":"string","const":"find_key_bpm"}},"required":["file_id","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The recording, audio or video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"output_format":{"default":"same","description":"The result's format: same (as the input; a video gives M4A audio), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"reverse_audio"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"mute_video"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"container":{"default":"mp4","description":"Output container. Default mp4.","type":"string","enum":["mp4","webm","mov"]},"codec":{"description":"Picture codec: h264 or h265 for MP4/MOV, vp9 for WebM. Default h264 for MP4/MOV, vp9 for WebM.","type":"string","enum":["h264","h265","vp9"]},"quality":{"default":23,"description":"Picture quality, 0 to 51: lower keeps more detail and uses more bytes. Default 23.","type":"integer","minimum":0,"maximum":51},"tool":{"type":"string","const":"convert_video"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"target":{"description":"Size preset: 20, 50, 16, or 25 decimal MB, or size_mb. Leave out for quality mode; without either, discord_free.","type":"string","enum":["discord_free","discord_nitro_basic","whatsapp","email","size_mb"]},"size_mb":{"description":"Custom size in decimal MB. Needs target size_mb.","type":"number","minimum":0.1,"maximum":10000},"quality":{"description":"Constant quality instead of a size target: 0 to 51, lower is clearer. Leave target and size_mb out.","type":"integer","minimum":0,"maximum":51},"max_height":{"description":"Maximum output height in pixels; never enlarges the input.","type":"integer","minimum":2,"maximum":4320},"mute":{"default":false,"description":"Remove the soundtrack. Default false.","type":"boolean"},"fps":{"description":"Frame rate cap; never raises the input frame rate.","type":"number","minimum":1,"maximum":120},"tool":{"type":"string","const":"compress_video"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"rect":{"default":{"x":0,"y":0,"w":1,"h":1},"description":"Crop before rotation: x,y,w,h are fractions of the displayed picture, from 0 to 1; x+w and y+h cannot exceed 1.","type":"object","properties":{"x":{"default":0,"type":"number","minimum":0,"maximum":1},"y":{"default":0,"type":"number","minimum":0,"maximum":1},"w":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1}},"additionalProperties":false},"rotate":{"default":0,"description":"Clockwise rotation in degrees after cropping. Default 0.","type":"number","enum":[0,90,180,270]},"flip_horizontal":{"default":false,"description":"Flip left to right after rotation.","type":"boolean"},"flip_vertical":{"default":false,"description":"Flip top to bottom after rotation.","type":"boolean"},"tool":{"type":"string","const":"crop_video"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"ratio":{"default":"9:16","description":"Output aspect ratio. Default 9:16; custom needs width and height.","type":"string","enum":["9:16","1:1","4:5","16:9","4:3","custom"]},"width":{"description":"Custom width in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":7680,"multipleOf":2},"height":{"description":"Custom height in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":4320,"multipleOf":2},"mode":{"default":"fit","description":"fit shows the whole picture with padding; fill crops to cover the frame.","type":"string","enum":["fit","fill"]},"zoom":{"default":1,"description":"Enlarge the picture within the frame, 1 to 10. Default 1.","type":"number","minimum":1,"maximum":10},"position_x":{"default":0.5,"description":"Horizontal alignment in the frame, 0 left to 1 right. Default 0.5.","type":"number","minimum":0,"maximum":1},"position_y":{"default":0.5,"description":"Vertical alignment in the frame, 0 top to 1 bottom. Default 0.5.","type":"number","minimum":0,"maximum":1},"background":{"default":"color","description":"Padding background: solid color or a blurred copy of the video.","type":"string","enum":["color","blur"]},"color":{"default":"#000000","description":"Background color in six-digit hex, such as #ffffff.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"description":"Background blur amount, 1 to 100. Default 20.","type":"number","minimum":1,"maximum":100},"tool":{"type":"string","const":"resize_video"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"range":{"description":"Only this range, [start,end] in seconds, with decimals for exact frames. Default the whole video.","type":"array","prefixItems":[{"type":"number","minimum":0},{"type":"number","exclusiveMinimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2},"boomerang":{"default":false,"description":"Play the range forward then backward. Default false.","type":"boolean"},"audio":{"default":"reversed","description":"Sound on the backward leg: reversed, muted, or kept playing forward. Default reversed.","type":"string","enum":["reversed","muted","kept"]},"tool":{"type":"string","const":"reverse_video"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, such as file_8Kc2QmP4."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true allows only loops whose complete output is at most 10 minutes, within the daily free quota. Longer loops need credits; set free false to pay for the whole result.","type":"boolean"},"times":{"description":"Number of repeats, 2 to 50. Default 2 when to_seconds is absent.","type":"integer","minimum":2,"maximum":50},"to_seconds":{"description":"Loop to this exact duration instead of a repeat count, up to 10 hours.","type":"number","exclusiveMinimum":0,"maximum":36000},"crossfade_ms":{"default":0,"description":"Picture and sound crossfade at each seam, in milliseconds. Must be shorter than half the input.","type":"integer","minimum":0,"maximum":5000},"tool":{"type":"string","const":"loop_video"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, including silent video."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"time_seconds":{"description":"Time of the frame in seconds. Leave out with frame_number to use the first frame.","type":"number","minimum":0,"maximum":36000},"frame_number":{"description":"Zero-based decoded frame number, instead of time_seconds.","type":"integer","minimum":0,"maximum":10000000},"format":{"default":"png","description":"The image format. Default png.","type":"string","enum":["png","jpg"]},"width":{"description":"Image width in pixels, keeping its proportions. Default original width.","type":"integer","minimum":1,"maximum":7680},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only one frame, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise one frame free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"get_frame"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false},{"type":"object","properties":{"file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"The video, including silent video."},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"A new random key for this request, such as a UUID. Reuse it only to retry the same request, so it's never charged twice."},"start_seconds":{"default":0,"description":"Start of the range in seconds. Default 0.","type":"number","minimum":0,"maximum":36000},"end_seconds":{"description":"End of the range in seconds; choose up to 5 minutes. Default end of the video, refused if that range is longer than 5 minutes.","type":"number","exclusiveMinimum":0,"maximum":36000},"fps":{"default":15,"description":"Frames per second, 5 to 30. Default 15.","type":"integer","minimum":5,"maximum":30},"width":{"default":480,"description":"Width in pixels, keeping proportions. 120 to 1280. Default 480.","type":"integer","minimum":120,"maximum":1280},"loop":{"default":0,"description":"Repeat count: 0 repeats forever. Default 0.","type":"integer","minimum":0,"maximum":65535},"format":{"default":"gif","description":"Animated GIF or animated WebP. Default gif.","type":"string","enum":["gif","webp"]},"max_mb":{"description":"Target size in decimal MB. Estimates smaller starting settings and tries at most 3 encodes, lowering fps, width, and GIF colours; a target that cannot be met fails without a charge.","type":"number","minimum":0.01,"maximum":500},"max_credits":{"description":"The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"true processes only the selected range, up to 5 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the selected range, up to 5 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"tool":{"type":"string","const":"video_to_gif"}},"required":["file_id","idempotency_key","tool"],"additionalProperties":false}]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"get":{"operationId":"get_v1_jobs","tags":["Jobs"],"summary":"List jobs, newest first","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"description":"nextCursor from the previous page","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1 to 100. Default 20","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"tool","in":"query","required":false,"description":"Only this tool's jobs, such as remove_noise","schema":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/jobs/{id}":{"get":{"operationId":"get_v1_jobs_id","tags":["Jobs"],"summary":"Get a job's status, progress, outputs, and result","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"wait","in":"query","required":false,"description":"Wait up to this many seconds (at most 40) for a change before answering","schema":{"type":"number","minimum":0,"maximum":40}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/jobs/{id}/claim":{"post":{"operationId":"post_v1_jobs_id_claim","tags":["Jobs"],"summary":"Keep a free run from before signing in: the job, the files it read, and the files it made move into the account","description":"token is the t= of the run's status link (statusUrl). Only a run that succeeded, while its files are kept; they're then kept for 24 hours. Claiming it again returns the job. Only for a person signed in on the website.","security":[{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"token":{"type":"string","minLength":1,"description":"The t= of the free API job's status link"}},"required":["token"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/jobs/{id}/cancel":{"post":{"operationId":"post_v1_jobs_id_cancel","tags":["Jobs"],"summary":"Cancel a job that hasn't finished. A cancelled job costs nothing","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/account":{"get":{"operationId":"get_v1_account","tags":["Account"],"summary":"Get the balance, prices, free uses left today, and limits","security":[{"apiKey":[]},{"session":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"email":{"type":["string","null"]},"balanceCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Credits in the account"},"reservedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Held for jobs that are still running"},"availableCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"What new jobs can spend"},"balanceCents":{"description":"The balance in US cents (equal to balanceCredits)","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"availableCents":{"description":"What new jobs can spend, in US cents (equal to availableCredits)","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"creditsPerMinute":{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"required":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"],"description":"Each tool's price per minute of input, in credits (US cents)"},"freeUsesToday":{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"object","properties":{"used":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["available","used_up","paused","off"],"description":"available; used_up: this caller's free uses are gone until midnight UTC; paused: today's free budget for everyone is spent, until midnight UTC; off: free use of the tool is switched off until we turn it back on"}},"required":["used","limit","status"],"additionalProperties":false},"required":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"],"description":"Free uses of each tool today. They reset at midnight UTC"},"limits":{"type":"object","properties":{"maxFileBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxDurationSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxRunningJobs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["maxFileBytes","maxDurationSeconds","maxRunningJobs"],"additionalProperties":false},"retentionHours":{"type":"number"},"topUpUrl":{"type":"string","description":"The Credits page, where the person buys credits on the website"},"pricingUrl":{"description":"The pricing page: each tool's price per minute","type":"string"},"useCase":{"description":"The answer to \"What will you use Audo for?\": null until answered, an empty string when skipped","type":["string","null"]},"toolsUsed":{"type":"array","items":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"description":"Tools this account has a finished, successful job for, in catalog order"},"autoRefill":{"type":"object","properties":{"enabled":{"type":"boolean"},"thresholdCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Refill when the available balance drops below this, in US cents"},"amountCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"What each refill adds to the balance, in US cents (tax, if any, is charged on top)"},"monthlyCapCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The most charged for refills in a calendar month (UTC), in US cents before tax"},"spentThisMonthCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Charged for refills this calendar month, in US cents before tax"},"card":{"anyOf":[{"type":"object","properties":{"brand":{"type":["string","null"]},"last4":{"type":["string","null"]}},"required":["brand","last4"],"additionalProperties":false},{"type":"null"}],"description":"The saved card, or null"},"disabledReason":{"anyOf":[{"type":"string","enum":["card_declined","authentication_required","payment_failed","disputed"]},{"type":"null"}],"description":"Why auto-refill turned itself off, or null: card_declined, authentication_required, payment_failed, or disputed"},"setupUrl":{"type":"string","description":"Where a person turns auto-refill on or changes it"}},"required":["enabled","thresholdCents","amountCents","monthlyCapCents","spentThisMonthCents","card","disabledReason","setupUrl"],"additionalProperties":false},"createdAt":{"type":"string","description":"ISO 8601 time"},"marketingOptIn":{"description":"Whether the person asked for emails about new tools and tips","type":"boolean"},"recordingReminders":{"description":"Whether the person gets reminders about their recordings, such as one waiting to be finished (on until they turn it off)","type":"boolean"},"heardFrom":{"description":"The answer to \"How did you hear about Audo?\", or null until answered","anyOf":[{"type":"string","enum":["google","assistant","youtube","friend","reddit","studio","other"]},{"type":"null"}]},"firstPurchaseAt":{"description":"When the account first paid (a credit pack or an auto-refill), or null","anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"anonymous":{"description":"True for a browser that paid without signing in: it shows no balance, and its credits are kept for the email it paid with until someone signs in with it","type":"boolean"},"savedFor":{"description":"For a browser that paid without signing in: the email its credits are kept for, masked (m•••@gmail.com), or null","type":["string","null"]},"savedForEmail":{"description":"For a browser that paid without signing in: that email as it typed it, to fill in its sign-in","type":["string","null"]}},"required":["id","email","balanceCredits","reservedCredits","availableCredits","creditsPerMinute","freeUsesToday","limits","retentionHours","topUpUrl","useCase","toolsUsed"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"patch":{"operationId":"patch_v1_account","tags":["Account"],"summary":"Save the sign-up answer, the email opt-in, and how the person heard about Audo","description":"Send any of the fields; the ones left out don't change. Only for a person signed in on the website.","security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"useCase":{"description":"What the person will use Audo for. null or an empty string records that they skipped the question","anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"marketingOptIn":{"description":"true to get emails about new tools and tips, false to stop them","type":"boolean"},"marketingOptInSource":{"description":"With marketingOptIn: where it was given, such as settings","type":"string","maxLength":40,"pattern":"^[a-z_:]+$"},"recordingReminders":{"description":"true to get reminders about recordings, false to stop them","type":"boolean"},"heardFrom":{"description":"The answer to \"How did you hear about Audo?\"","type":"string","enum":["google","assistant","youtube","friend","reddit","studio","other"]}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"email":{"type":["string","null"]},"balanceCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Credits in the account"},"reservedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Held for jobs that are still running"},"availableCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"What new jobs can spend"},"balanceCents":{"description":"The balance in US cents (equal to balanceCredits)","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"availableCents":{"description":"What new jobs can spend, in US cents (equal to availableCredits)","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"creditsPerMinute":{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"required":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"],"description":"Each tool's price per minute of input, in credits (US cents)"},"freeUsesToday":{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"object","properties":{"used":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["available","used_up","paused","off"],"description":"available; used_up: this caller's free uses are gone until midnight UTC; paused: today's free budget for everyone is spent, until midnight UTC; off: free use of the tool is switched off until we turn it back on"}},"required":["used","limit","status"],"additionalProperties":false},"required":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"],"description":"Free uses of each tool today. They reset at midnight UTC"},"limits":{"type":"object","properties":{"maxFileBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxDurationSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxRunningJobs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["maxFileBytes","maxDurationSeconds","maxRunningJobs"],"additionalProperties":false},"retentionHours":{"type":"number"},"topUpUrl":{"type":"string","description":"The Credits page, where the person buys credits on the website"},"pricingUrl":{"description":"The pricing page: each tool's price per minute","type":"string"},"useCase":{"description":"The answer to \"What will you use Audo for?\": null until answered, an empty string when skipped","type":["string","null"]},"toolsUsed":{"type":"array","items":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"description":"Tools this account has a finished, successful job for, in catalog order"},"autoRefill":{"type":"object","properties":{"enabled":{"type":"boolean"},"thresholdCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Refill when the available balance drops below this, in US cents"},"amountCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"What each refill adds to the balance, in US cents (tax, if any, is charged on top)"},"monthlyCapCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The most charged for refills in a calendar month (UTC), in US cents before tax"},"spentThisMonthCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Charged for refills this calendar month, in US cents before tax"},"card":{"anyOf":[{"type":"object","properties":{"brand":{"type":["string","null"]},"last4":{"type":["string","null"]}},"required":["brand","last4"],"additionalProperties":false},{"type":"null"}],"description":"The saved card, or null"},"disabledReason":{"anyOf":[{"type":"string","enum":["card_declined","authentication_required","payment_failed","disputed"]},{"type":"null"}],"description":"Why auto-refill turned itself off, or null: card_declined, authentication_required, payment_failed, or disputed"},"setupUrl":{"type":"string","description":"Where a person turns auto-refill on or changes it"}},"required":["enabled","thresholdCents","amountCents","monthlyCapCents","spentThisMonthCents","card","disabledReason","setupUrl"],"additionalProperties":false},"createdAt":{"type":"string","description":"ISO 8601 time"},"marketingOptIn":{"description":"Whether the person asked for emails about new tools and tips","type":"boolean"},"recordingReminders":{"description":"Whether the person gets reminders about their recordings, such as one waiting to be finished (on until they turn it off)","type":"boolean"},"heardFrom":{"description":"The answer to \"How did you hear about Audo?\", or null until answered","anyOf":[{"type":"string","enum":["google","assistant","youtube","friend","reddit","studio","other"]},{"type":"null"}]},"firstPurchaseAt":{"description":"When the account first paid (a credit pack or an auto-refill), or null","anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"anonymous":{"description":"True for a browser that paid without signing in: it shows no balance, and its credits are kept for the email it paid with until someone signs in with it","type":"boolean"},"savedFor":{"description":"For a browser that paid without signing in: the email its credits are kept for, masked (m•••@gmail.com), or null","type":["string","null"]},"savedForEmail":{"description":"For a browser that paid without signing in: that email as it typed it, to fill in its sign-in","type":["string","null"]}},"required":["id","email","balanceCredits","reservedCredits","availableCredits","creditsPerMinute","freeUsesToday","limits","retentionHours","topUpUrl","useCase","toolsUsed"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"delete":{"operationId":"delete_v1_account","tags":["Account"],"summary":"Delete the account, its files, and its sign-in","description":"Needs a sign-in within the last day. Only for a person signed in on the website.","security":[{"session":[]}],"responses":{"204":{"description":"Done"},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/account/kept":{"get":{"operationId":"get_v1_account_kept","tags":["Account"],"summary":"Get the credits a sign-in just brought in from purchases made without signing in","description":"What came in during the last 15 minutes, and whether the account was there before those purchases. Needs a sign-in, not a browser that only paid. Only for a person signed in on the website.","security":[{"session":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Credits that came in from those purchases in the last 15 minutes (1 credit is 1 cent)"},"existed":{"type":"boolean","description":"Whether the account was there before them"}},"required":["credits","existed"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/ledger":{"get":{"operationId":"get_v1_ledger","tags":["Account"],"summary":"List credit history","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"description":"nextCursor from the previous page","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1 to 100. Default 20","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["topup","grant","capture","refund","adjustment","auto_refill","transfer"]},"amountCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"description":{"type":"string"},"jobId":{"type":["string","null"]},"receiptUrl":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","amountCredits","description","jobId","receiptUrl","createdAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/checkout":{"post":{"operationId":"post_v1_checkout","tags":["Account"],"summary":"Start buying a credit pack","description":"Stripe's page (url) takes payment for an hour, then comes back to the page returnTo names (returnTo tool: returnPath) with checkout=<id>, or cancelled=1. An unpaid checkout then reads expired. Only for a person signed in on the website.","security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"returnTo":{"description":"Where checkout comes back to: credits (the default), api, tool, page, or finish","type":"string","enum":["credits","api","tool","page","finish"]},"returnPath":{"description":"With returnTo tool: /tools/<slug>, /editor, or /workflows/<id>; with page: a public tool page; with finish: /finish/<job id> or /finish/workflow/<run id>. Tool and public pages may include ?job=job_… or ?run=wrun_…","type":"string","maxLength":200},"tool":{"description":"The tool the credits are for, when a tool page asked","type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"jobId":{"description":"The job the credits are for, such as the free run being finished","type":"string","pattern":"^job_[0-9a-z]{24}$"},"from":{"description":"Where the checkout was opened: pay_sheet, credits, keys, assistant, or finish_link","type":"string","enum":["pay_sheet","credits","keys","assistant","finish_link"]},"wall":{"description":"With from pay_sheet: the tool page's wall that opened it, for analytics: cut_short, out_of_runs, longer_than_free_part, paused, balance_short, over_100mb, busy, or no_price","type":"string","enum":["cut_short","out_of_runs","longer_than_free_part","paused","balance_short","over_100mb","busy","no_price"]},"finishToken":{"description":"With jobId: the free run's status link token or finish link token. Once paid, the whole file of that run starts by itself","type":"string","maxLength":300},"workflowRunId":{"description":"The free workflow to finish once paid; finishToken is its status or finish token","type":"string","pattern":"^wrun_[0-9a-z]{24}$"},"workflowRun":{"description":"An account-owned workflow request to start once paid, without idempotency_key","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"run":{"description":"A run to start once paid, for files already in the account that haven't run: the tool request (as POST /jobs takes it) without idempotency_key","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["amountCents"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"The checkout, to ask whether it's paid"},"url":{"type":"string","description":"Stripe's checkout page, or the simulated one in local development"},"simulated":{"type":"boolean","description":"Local development: no real payment, and the website completes it itself"}},"required":["id","url","simulated"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/checkout/{id}":{"get":{"operationId":"get_v1_checkout_id","tags":["Account"],"summary":"Get a credit purchase","description":"While it's open, Stripe is asked too, so a paid checkout is completed and credited at once.","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"amountCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The price in US cents"},"credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The credits quoted when checkout opens; once paid, the credits actually granted"},"status":{"type":"string","enum":["open","completed","expired"]},"provider":{"type":"string","enum":["stripe","dev"]},"processing":{"description":"Open, with a payment on its way that hasn't arrived yet (a bank debit, say)","type":"boolean"},"runWorkflowRunId":{"description":"The whole workflow this purchase started","type":["string","null"]},"runJobId":{"description":"The whole-file job this purchase started, once paid","type":["string","null"]},"runError":{"description":"Why the purchase's run couldn't start (such as file_expired); the credits are kept","type":["string","null"]},"savedFor":{"description":"Paid without signing in: the email the credits are kept for, masked","type":["string","null"]},"leftCents":{"description":"Paid without signing in, once its run is done: what the purchase left over, in US cents","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"paidTotal":{"description":"Once paid: what the buyer was charged, tax included, in the currency they paid in (null when the payment provider didn't say)","anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"In the currency's smallest unit, such as cents"},"currency":{"type":"string","description":"ISO 4217, lowercase, such as usd or eur"}},"required":["amount","currency"],"additionalProperties":false},{"type":"null"}]}},"required":["id","amountCents","credits","status","provider"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/checkout/{id}/receipt":{"get":{"operationId":"get_v1_checkout_id_receipt","tags":["Account"],"summary":"Open a credit purchase's receipt","description":"Redirects to the payment provider's receipt. A ledger entry for a purchase links here as receiptUrl.","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"302":{"description":"Done"},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/auto-refill":{"get":{"operationId":"get_v1_auto_refill","tags":["Account"],"summary":"Get auto-refill: when the balance drops below a threshold, Audo charges the saved card for more credits","description":"Read-only with a key or an assistant. Only a person signed in at audo.ai can turn it on, change it, or turn it off, at setupUrl.","security":[{"apiKey":[]},{"session":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabled":{"type":"boolean"},"thresholdCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Refill when the available balance drops below this, in US cents"},"amountCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"What each refill adds to the balance, in US cents (tax, if any, is charged on top)"},"monthlyCapCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The most charged for refills in a calendar month (UTC), in US cents before tax"},"spentThisMonthCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Charged for refills this calendar month, in US cents before tax"},"card":{"anyOf":[{"type":"object","properties":{"brand":{"type":["string","null"]},"last4":{"type":["string","null"]}},"required":["brand","last4"],"additionalProperties":false},{"type":"null"}],"description":"The saved card, or null"},"disabledReason":{"anyOf":[{"type":"string","enum":["card_declined","authentication_required","payment_failed","disputed"]},{"type":"null"}],"description":"Why auto-refill turned itself off, or null: card_declined, authentication_required, payment_failed, or disputed"},"setupUrl":{"type":"string","description":"Where a person turns auto-refill on or changes it"}},"required":["enabled","thresholdCents","amountCents","monthlyCapCents","spentThisMonthCents","card","disabledReason","setupUrl"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"patch":{"operationId":"patch_v1_auto_refill","tags":["Account"],"summary":"Change auto-refill, or turn it on or off. Turning on needs a saved card","description":"Only for a person signed in on the website.","security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabled":{"type":"boolean"},"thresholdCents":{"type":"integer","minimum":100,"maximum":100000},"amountCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"monthlyCapCents":{"type":"integer","minimum":1000,"maximum":500000}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabled":{"type":"boolean"},"thresholdCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Refill when the available balance drops below this, in US cents"},"amountCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"What each refill adds to the balance, in US cents (tax, if any, is charged on top)"},"monthlyCapCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The most charged for refills in a calendar month (UTC), in US cents before tax"},"spentThisMonthCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Charged for refills this calendar month, in US cents before tax"},"card":{"anyOf":[{"type":"object","properties":{"brand":{"type":["string","null"]},"last4":{"type":["string","null"]}},"required":["brand","last4"],"additionalProperties":false},{"type":"null"}],"description":"The saved card, or null"},"disabledReason":{"anyOf":[{"type":"string","enum":["card_declined","authentication_required","payment_failed","disputed"]},{"type":"null"}],"description":"Why auto-refill turned itself off, or null: card_declined, authentication_required, payment_failed, or disputed"},"setupUrl":{"type":"string","description":"Where a person turns auto-refill on or changes it"}},"required":["enabled","thresholdCents","amountCents","monthlyCapCents","spentThisMonthCents","card","disabledReason","setupUrl"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/auto-refill/setup":{"post":{"operationId":"post_v1_auto_refill_setup","tags":["Account"],"summary":"Save auto-refill's settings and open a checkout that saves a card; auto-refill turns on when it completes","description":"Only for a person signed in on the website.","security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"thresholdCents":{"type":"integer","minimum":100,"maximum":100000},"amountCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"monthlyCapCents":{"type":"integer","minimum":1000,"maximum":500000}},"required":["thresholdCents","amountCents","monthlyCapCents"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string"},"chargeCents":{"description":"What the page charges now, in US cents before tax, or null when it only saves the card","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/auto-refill/charges/{id}/receipt":{"get":{"operationId":"get_v1_auto_refill_charges_id_receipt","tags":["Account"],"summary":"Open an auto-refill charge's receipt","description":"Redirects to the paid invoice. A ledger entry for an auto-refill links here as receiptUrl.","security":[{"apiKey":[]},{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"302":{"description":"Done"},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/api-keys":{"get":{"operationId":"get_v1_api_keys","tags":["Account"],"summary":"List API keys","description":"Only for a person signed in on the website.","security":[{"session":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"start":{"description":"The first characters of the key, to recognize it","type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"lastUsedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]}},"required":["id","name","start","createdAt","lastUsedAt","expiresAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"post":{"operationId":"post_v1_api_keys","tags":["Account"],"summary":"Create an API key. The key is shown once","description":"Only for a person signed in on the website.","security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60}},"required":["name"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"start":{"description":"The first characters of the key, to recognize it","type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"lastUsedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"key":{"type":"string","description":"The full key. It is shown only once."}},"required":["id","name","start","createdAt","lastUsedAt","expiresAt","key"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/api-keys/{id}":{"delete":{"operationId":"delete_v1_api_keys_id","tags":["Account"],"summary":"Revoke an API key","description":"Only for a person signed in on the website.","security":[{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Done"},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/agents":{"get":{"operationId":"get_v1_agents","tags":["Account"],"summary":"List connected assistants and API keys","description":"Only for a person signed in on the website.","security":[{"session":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["oauth","api_key"]},"name":{"type":"string"},"detail":{"type":["string","null"]},"scopes":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","description":"ISO 8601 time"},"lastUsedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]}},"required":["id","type","name","detail","scopes","createdAt","lastUsedAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/agents/{id}":{"delete":{"operationId":"delete_v1_agents_id","tags":["Account"],"summary":"Disconnect an assistant","description":"Only for a person signed in on the website.","security":[{"session":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Done"},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/email/c/{id}":{"get":{"operationId":"get_v1_email_c_id","tags":["Account"],"summary":"Follow an email's button","description":"The link in an email Audo sent a person. Redirects to a page on the website.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"responses":{"302":{"description":"Done"},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/v1/email/unsubscribe":{"post":{"operationId":"post_v1_email_unsubscribe","tags":["Account"],"summary":"Stop Audo's emails about a person's files and tips","description":"One-click unsubscribe (List-Unsubscribe-Post), with the token from an email's unsubscribe link.","security":[],"parameters":[{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"unsubscribed":{"type":"boolean","const":true}},"required":["unsubscribed"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/usage":{"get":{"operationId":"get_try_usage","tags":["Free API"],"summary":"Free uses of each tool left today, for whoever is calling","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"object","properties":{"used":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"0 while free use of the tool is switched off"},"status":{"type":"string","enum":["available","used_up","paused","off"],"description":"available; used_up: this caller's free uses are gone until midnight UTC; paused: today's free budget for everyone is spent, until midnight UTC; off: free use of the tool is switched off until we turn it back on"},"resetsAt":{"type":"string","description":"ISO 8601 time"}},"required":["used","limit","status","resetsAt"],"additionalProperties":false},"required":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/uploads":{"post":{"operationId":"post_try_uploads","tags":["Free API"],"summary":"Upload a file before the request that uses it","description":"What the website does without an account: the tool's free uses are checked first, then the file goes in parts (multipart), and the request sends fileToken as file_token (video_token, audio_token, or script_token for those inputs) instead of the file. One upload serves any tool's runs for the hour its token works, each counted against its own tool's free uses; a file a run has used no longer counts as waiting. A run that can't use an uploaded file names it in details.fileId. Without a key, an address may have only 3 uploaded files waiting for a run at once (its network 10, and always one run's files): past that, completing the upload is refused (429, and the file is deleted), and so is asking for another. Uploads that didn't finish don't count.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tool":{"type":"string","maxLength":40,"description":"The free tool the file is for, by its slug, such as remove-noise"},"filename":{"type":"string","minLength":1,"maxLength":255},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"contentType":{"type":"string","maxLength":100}},"required":["tool","filename","sizeBytes"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"file":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false},"upload":{"anyOf":[{"type":"object","properties":{"method":{"type":"string","const":"PUT"},"url":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["method","url","headers","expiresAt"],"additionalProperties":false},{"type":"null"}],"description":"One PUT, up to 100 MB"},"multipart":{"anyOf":[{"type":"object","properties":{"partSizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Every part is this size, except the last"},"partCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"partUrl":{"type":"string","description":"Where part n goes (PUT), with {n} in place of the part number, counting from 1"},"completeUrl":{"type":"string","description":"POST here once every part is in. It joins them, or lists the parts that haven't arrived (details.missingParts)"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["partSizeBytes","partCount","partUrl","completeUrl","expiresAt"],"additionalProperties":false},{"type":"null"}],"description":"Upload in parts instead, for larger files"},"fileToken":{"type":"string","description":"Once the file is uploaded, send this as file_token (video_token, audio_token, or script_token for those inputs) to POST /api/try/<slug>, for any tool and more than one run: each run counts against its own tool's free uses. It works for 1 hour"}},"required":["file","upload","multipart","fileToken"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/jobs/{id}":{"get":{"operationId":"get_try_jobs_id","tags":["Free API"],"summary":"Check on a free API job through its link","description":"The link comes in a 202 response's Location header and statusUrl. Once the job succeeds, outputs has download links.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}},{"name":"wait","in":"query","required":false,"description":"Wait up to this many seconds (at most 40) for a change before answering","schema":{"type":"number","minimum":0,"maximum":40}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/workflows/editor-export":{"post":{"operationId":"post_try_workflows_editor_export","tags":["Free API"],"summary":"Export from the editor without an account","description":"editor_export is an EditorExportV1 whose files are upload file tokens, or a free run's output as {job_id, token, output}. Audo runs it in its own order as one free workflow run, when it fits its free part (the quote's free.seconds of the result; a longer one is refused with free_result_too_long). One free use per step's tool. Returns a workflow with status_url and downloads; Prefer: respond-async answers immediately.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"editor_export":{"type":"object","properties":{"version":{"type":"number","const":1},"sources":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]}},"required":["file_id"],"additionalProperties":false}},"keep":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2}},"sequence":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"ranges":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2}}},"required":["ranges"],"additionalProperties":false}},"video_mode":{"type":"string","enum":["fit","fill"]},"join":{"type":"object","properties":{"match_loudness":{"type":"boolean"}},"additionalProperties":false},"sound":{"type":"object","properties":{"fixes":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"source":{"type":"integer","minimum":0,"maximum":19},"file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]},"strength":{"type":"number","minimum":0.1,"maximum":1},"part_seconds":{"type":"number","exclusiveMinimum":0,"maximum":36000}},"required":["source","file_id","strength"],"additionalProperties":false}},"level":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"source":{"type":"integer","minimum":0,"maximum":19},"gain":{"minItems":1,"maxItems":20000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":-120,"maximum":24}],"items":false,"minItems":2,"maxItems":2}}},"required":["source","gain"],"additionalProperties":false}},"main_volume_db":{"type":"number","minimum":-120,"maximum":24},"tracks":{"maxItems":32,"type":"array","items":{"type":"object","properties":{"file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]},"from":{"type":"number","minimum":0,"maximum":36000},"to":{"type":"number","minimum":0,"maximum":36000},"at":{"type":"number","minimum":0,"maximum":36000},"volume_db":{"type":"number","minimum":-60,"maximum":24},"linked":{"type":"boolean"}},"required":["file_id","from","to","at","volume_db","linked"],"additionalProperties":false}},"music":{"type":"object","properties":{"file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]},"volume_db":{"type":"number","minimum":-60,"maximum":24},"duck":{"type":"boolean"}},"required":["file_id","volume_db","duck"],"additionalProperties":false},"loudness":{"type":"string","enum":["podcast","streaming","broadcast"]}},"additionalProperties":false},"frame":{"anyOf":[{"type":"object","properties":{"reframe":{"type":"object","properties":{"plan":{"type":"object","properties":{"version":{"type":"number","const":1},"source":{"type":"object","properties":{"width":{"type":"integer","minimum":2,"maximum":16384},"height":{"type":"integer","minimum":2,"maximum":16384},"fps":{"type":"number","exclusiveMinimum":0,"maximum":240},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000}},"required":["width","height","fps","duration_ms"],"additionalProperties":false},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"settings":{"type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"scenes":{"minItems":1,"maxItems":10000,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"},"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"layout":{"type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"panels":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["crop_path","placement"],"additionalProperties":false}},"background":{"type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["crop_path","placement","start_ms","end_ms","layout","panels","background"],"additionalProperties":false}},"speakers":{"maxItems":40000,"type":"array","items":{"type":"object","properties":{"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["speaker","subject_id"],"additionalProperties":false}}},"required":["version","source","duration_ms","output","settings","scenes","speakers"],"additionalProperties":false},"plan_file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]}},"additionalProperties":false}},"required":["reframe"],"additionalProperties":false},{"type":"object","properties":{"crop":{"type":"object","properties":{"rect":{"default":{"x":0,"y":0,"w":1,"h":1},"description":"Crop before rotation: x,y,w,h are fractions of the displayed picture, from 0 to 1; x+w and y+h cannot exceed 1.","type":"object","properties":{"x":{"default":0,"type":"number","minimum":0,"maximum":1},"y":{"default":0,"type":"number","minimum":0,"maximum":1},"w":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1}},"additionalProperties":false},"rotate":{"default":0,"description":"Clockwise rotation in degrees after cropping. Default 0.","type":"number","enum":[0,90,180,270]},"flip_horizontal":{"default":false,"description":"Flip left to right after rotation.","type":"boolean"},"flip_vertical":{"default":false,"description":"Flip top to bottom after rotation.","type":"boolean"}},"additionalProperties":false}},"required":["crop"],"additionalProperties":false},{"type":"object","properties":{"resize":{"type":"object","properties":{"ratio":{"default":"9:16","description":"Output aspect ratio. Default 9:16; custom needs width and height.","type":"string","enum":["9:16","1:1","4:5","16:9","4:3","custom"]},"width":{"description":"Custom width in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":7680,"multipleOf":2},"height":{"description":"Custom height in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":4320,"multipleOf":2},"mode":{"default":"fit","description":"fit shows the whole picture with padding; fill crops to cover the frame.","type":"string","enum":["fit","fill"]},"zoom":{"default":1,"description":"Enlarge the picture within the frame, 1 to 10. Default 1.","type":"number","minimum":1,"maximum":10},"position_x":{"default":0.5,"description":"Horizontal alignment in the frame, 0 left to 1 right. Default 0.5.","type":"number","minimum":0,"maximum":1},"position_y":{"default":0.5,"description":"Vertical alignment in the frame, 0 top to 1 bottom. Default 0.5.","type":"number","minimum":0,"maximum":1},"background":{"default":"color","description":"Padding background: solid color or a blurred copy of the video.","type":"string","enum":["color","blur"]},"color":{"default":"#000000","description":"Background color in six-digit hex, such as #ffffff.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"description":"Background blur amount, 1 to 100. Default 20.","type":"number","minimum":1,"maximum":100}},"additionalProperties":false}},"required":["resize"],"additionalProperties":false}]},"audiogram":{"type":"object","properties":{"document":{"type":"object","properties":{"version":{"type":"number","const":1},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["1:1","9:16","16:9","4:5"]},"width":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"height":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"fps":{"type":"integer","minimum":1,"maximum":60}},"required":["ratio","width","height","fps"],"additionalProperties":false},"background":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"color"},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["type","color"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"gradient"},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"angle":{"type":"number","minimum":-360,"maximum":360}},"required":["type","colors","angle"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"fit":{"type":"string","enum":["fit","fill"]},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"blur":{"type":"number","minimum":0,"maximum":0.1}},"required":["type","fit","color","blur"],"additionalProperties":false}]},"waveform":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"style":{"type":"string","enum":["bars","line","mirror","circle","dots"]},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"thickness":{"type":"number","minimum":0.001,"maximum":0.1},"gap":{"type":"number","minimum":0.001,"maximum":0.1},"smoothing":{"type":"number","minimum":0,"maximum":1},"sensitivity":{"type":"number","minimum":0,"maximum":5}},"required":["x","y","width","height","style","colors","thickness","gap","smoothing","sensitivity"],"additionalProperties":false},"cover":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"radius":{"type":"number","minimum":0,"maximum":0.5},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false}},"required":["x","y","width","height","radius","shadow"],"additionalProperties":false},{"type":"null"}]},"title":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"subtitle":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"progress":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"background":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"radius":{"type":"number","minimum":0,"maximum":0.5}},"required":["x","y","width","height","color","background","radius"],"additionalProperties":false},{"type":"null"}]},"captions":{"type":"object","properties":{"version":{"type":"number","const":1},"words":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","breakOnPauseMs","breakOnSentence","combineWithinMs","minDurationMs","maxDurationMs","lingerMs","offsetMs","uppercase","hidePunctuation"],"additionalProperties":false},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}}},"required":["version","words","layout","style"],"additionalProperties":false}},"required":["version","output","background","waveform","cover","title","subtitle","progress"],"additionalProperties":false},"cover_file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]}},"required":["document"],"additionalProperties":false},"captions":{"type":"object","properties":{"request":{"type":"object","properties":{"version":{"default":1,"type":"number","const":1},"preset":{"type":"string","enum":["bold_keywords","big_bounce","yellow_keyword","green_word","pop","one_word","one_word_yellow","comic","arcade","retro","karaoke","karaoke_blue","fill_in","box","green_box","highlighter","glow","neon","slide_up","soft_lowercase","sunset","ocean","gold","clean","subtitles","yellow_subtitles","minimal","quiet_caps","cinematic","soft_fade","bubble","black_pill","speaker_colors","lower_third","news","two_lines"]},"style_id":{"description":"Your saved caption style ID from list_caption_presets or /api/v1/caption-styles. Its look replaces the preset's look; explicit style/layout overrides still win.","type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"words":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}},"text":{"description":"Edited script. Aligns against words when supplied, otherwise against a new transcript. Omit to keep the supplied word times.","type":"string","minLength":1,"maxLength":2097152},"language":{"type":"string","pattern":"^[a-z]{2,3}$"},"auto_keywords":{"description":"Pick emphasis words automatically. Explicit style.keywords wins.","type":"boolean"},"max_per_caption":{"description":"Automatic emphasis words per caption, default 1.","type":"integer","minimum":1,"maximum":3},"auto_emoji":{"description":"Add a few supported Noto emoji, avoiding sensitive topics.","type":"boolean"},"density":{"description":"Automatic emoji per minute: up to 2, 4 (default), or 6.","type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string","maxLength":35,"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"},"bilingual":{"description":"Keep the original line above the translation. Requires translate_to.","type":"boolean"},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"outputs":{"default":["video","srt","vtt","txt"],"minItems":1,"maxItems":7,"type":"array","items":{"type":"string","enum":["video","overlay_webm","overlay_prores","srt","vtt","ass","txt"]}}},"additionalProperties":false},"transcript_file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]},"outputs":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["video","overlay_webm","overlay_prores","srt","vtt","ass"]}}},"required":["request"],"additionalProperties":false},"overlay":{"type":"object","properties":{"document":{"type":"object","properties":{"version":{"type":"number","const":1},"items":{"minItems":1,"maxItems":100,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"margin":{"type":"number","minimum":0,"maximum":0.4},"stroke":{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"width":{"type":"number","minimum":0,"maximum":0.03}},"required":["color","width"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"background":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.1},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","text","font","weight","size","color","start_ms","end_ms","position","margin","stroke","shadow","background","animation"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"logo"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"scale":{"type":"number","minimum":0.01,"maximum":1},"opacity":{"type":"number","minimum":0,"maximum":1},"margin":{"type":"number","minimum":0,"maximum":0.4},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","start_ms","end_ms","position","scale","opacity","margin"],"additionalProperties":false}]}}},"required":["version","items"],"additionalProperties":false},"logo_file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]}},"required":["document"],"additionalProperties":false},"output":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"video"},"container":{"type":"string","enum":["mp4","mov","webm"]},"max_height":{"type":"integer","minimum":2,"maximum":4320},"compress":{"type":"object","properties":{"target":{"description":"Size preset: 20, 50, 16, or 25 decimal MB, or size_mb. Leave out for quality mode; without either, discord_free.","type":"string","enum":["discord_free","discord_nitro_basic","whatsapp","email","size_mb"]},"size_mb":{"description":"Custom size in decimal MB. Needs target size_mb.","type":"number","minimum":0.1,"maximum":10000},"quality":{"description":"Constant quality instead of a size target: 0 to 51, lower is clearer. Leave target and size_mb out.","type":"integer","minimum":0,"maximum":51},"max_height":{"description":"Maximum output height in pixels; never enlarges the input.","type":"integer","minimum":2,"maximum":4320},"mute":{"default":false,"description":"Remove the soundtrack. Default false.","type":"boolean"},"fps":{"description":"Frame rate cap; never raises the input frame rate.","type":"number","minimum":1,"maximum":120}},"additionalProperties":false}},"required":["kind","container"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"audio"},"format":{"type":"string","enum":["mp3","wav","m4a","flac","ogg","opus"]},"parts":{"type":"string","enum":["one","each"]}},"required":["kind","format"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"gif"},"start_seconds":{"type":"number","minimum":0,"maximum":36000},"end_seconds":{"type":"number","minimum":0,"maximum":36000},"fps":{"type":"integer","minimum":5,"maximum":30},"width":{"type":"integer","minimum":120,"maximum":1280},"format":{"type":"string","enum":["gif","webp"]},"loop":{"type":"integer","minimum":0,"maximum":65535}},"required":["kind","start_seconds","end_seconds","fps","width","format"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"frame"},"time_seconds":{"type":"number","minimum":0,"maximum":36000},"format":{"type":"string","enum":["png","jpg"]}},"required":["kind","time_seconds","format"],"additionalProperties":false}]}},"required":["version","sources","output"],"additionalProperties":false}},"required":["editor_export"],"additionalProperties":false}}}},"responses":{"202":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":["string","null"]},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"free":{"type":"boolean"},"processed_seconds":{"type":"number"},"progress":{"type":"number"},"quoted_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"charged_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"quote":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"archive":{"anyOf":[{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string","format":"uri"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["filename","url","expiresAt"],"additionalProperties":false},{"type":"null"}]},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"jobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]},"branch":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","branch"],"additionalProperties":false}}},"required":["id","tool","jobs"],"additionalProperties":false}},"output_file_ids":{"type":"array","items":{"type":"string"}},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["fileId","filename","url","expiresAt"],"additionalProperties":false}},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"status_url":{"type":"string"},"finished_by":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"progress":{"type":"number"},"status_url":{"type":"string"}},"required":["id","status","progress","status_url"],"additionalProperties":false},{"type":"null"}]},"finish_request":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"finish_url":{"type":"string"},"finish_price_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","workflow_id","status","free","processed_seconds","progress","quoted_credits","charged_credits","quote","steps","output_file_ids","outputs","error"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/workflows/editor-export/quote":{"post":{"operationId":"post_try_workflows_editor_export_quote","tags":["Free API"],"summary":"Quote an editor export and its free part without consuming uses","description":"The whole export's price, each step's, the result's length (output_seconds), and free: the seconds of the result a free export makes, the free uses left, and whether this one fits.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"editor_export":{"type":"object","properties":{"version":{"type":"number","const":1},"sources":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]}},"required":["file_id"],"additionalProperties":false}},"keep":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2}},"sequence":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"ranges":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2}}},"required":["ranges"],"additionalProperties":false}},"video_mode":{"type":"string","enum":["fit","fill"]},"join":{"type":"object","properties":{"match_loudness":{"type":"boolean"}},"additionalProperties":false},"sound":{"type":"object","properties":{"fixes":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"source":{"type":"integer","minimum":0,"maximum":19},"file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]},"strength":{"type":"number","minimum":0.1,"maximum":1},"part_seconds":{"type":"number","exclusiveMinimum":0,"maximum":36000}},"required":["source","file_id","strength"],"additionalProperties":false}},"level":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"source":{"type":"integer","minimum":0,"maximum":19},"gain":{"minItems":1,"maxItems":20000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":-120,"maximum":24}],"items":false,"minItems":2,"maxItems":2}}},"required":["source","gain"],"additionalProperties":false}},"main_volume_db":{"type":"number","minimum":-120,"maximum":24},"tracks":{"maxItems":32,"type":"array","items":{"type":"object","properties":{"file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]},"from":{"type":"number","minimum":0,"maximum":36000},"to":{"type":"number","minimum":0,"maximum":36000},"at":{"type":"number","minimum":0,"maximum":36000},"volume_db":{"type":"number","minimum":-60,"maximum":24},"linked":{"type":"boolean"}},"required":["file_id","from","to","at","volume_db","linked"],"additionalProperties":false}},"music":{"type":"object","properties":{"file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]},"volume_db":{"type":"number","minimum":-60,"maximum":24},"duck":{"type":"boolean"}},"required":["file_id","volume_db","duck"],"additionalProperties":false},"loudness":{"type":"string","enum":["podcast","streaming","broadcast"]}},"additionalProperties":false},"frame":{"anyOf":[{"type":"object","properties":{"reframe":{"type":"object","properties":{"plan":{"type":"object","properties":{"version":{"type":"number","const":1},"source":{"type":"object","properties":{"width":{"type":"integer","minimum":2,"maximum":16384},"height":{"type":"integer","minimum":2,"maximum":16384},"fps":{"type":"number","exclusiveMinimum":0,"maximum":240},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000}},"required":["width","height","fps","duration_ms"],"additionalProperties":false},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"settings":{"type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"scenes":{"minItems":1,"maxItems":10000,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"},"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"layout":{"type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"panels":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["crop_path","placement"],"additionalProperties":false}},"background":{"type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["crop_path","placement","start_ms","end_ms","layout","panels","background"],"additionalProperties":false}},"speakers":{"maxItems":40000,"type":"array","items":{"type":"object","properties":{"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["speaker","subject_id"],"additionalProperties":false}}},"required":["version","source","duration_ms","output","settings","scenes","speakers"],"additionalProperties":false},"plan_file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]}},"additionalProperties":false}},"required":["reframe"],"additionalProperties":false},{"type":"object","properties":{"crop":{"type":"object","properties":{"rect":{"default":{"x":0,"y":0,"w":1,"h":1},"description":"Crop before rotation: x,y,w,h are fractions of the displayed picture, from 0 to 1; x+w and y+h cannot exceed 1.","type":"object","properties":{"x":{"default":0,"type":"number","minimum":0,"maximum":1},"y":{"default":0,"type":"number","minimum":0,"maximum":1},"w":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1}},"additionalProperties":false},"rotate":{"default":0,"description":"Clockwise rotation in degrees after cropping. Default 0.","type":"number","enum":[0,90,180,270]},"flip_horizontal":{"default":false,"description":"Flip left to right after rotation.","type":"boolean"},"flip_vertical":{"default":false,"description":"Flip top to bottom after rotation.","type":"boolean"}},"additionalProperties":false}},"required":["crop"],"additionalProperties":false},{"type":"object","properties":{"resize":{"type":"object","properties":{"ratio":{"default":"9:16","description":"Output aspect ratio. Default 9:16; custom needs width and height.","type":"string","enum":["9:16","1:1","4:5","16:9","4:3","custom"]},"width":{"description":"Custom width in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":7680,"multipleOf":2},"height":{"description":"Custom height in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":4320,"multipleOf":2},"mode":{"default":"fit","description":"fit shows the whole picture with padding; fill crops to cover the frame.","type":"string","enum":["fit","fill"]},"zoom":{"default":1,"description":"Enlarge the picture within the frame, 1 to 10. Default 1.","type":"number","minimum":1,"maximum":10},"position_x":{"default":0.5,"description":"Horizontal alignment in the frame, 0 left to 1 right. Default 0.5.","type":"number","minimum":0,"maximum":1},"position_y":{"default":0.5,"description":"Vertical alignment in the frame, 0 top to 1 bottom. Default 0.5.","type":"number","minimum":0,"maximum":1},"background":{"default":"color","description":"Padding background: solid color or a blurred copy of the video.","type":"string","enum":["color","blur"]},"color":{"default":"#000000","description":"Background color in six-digit hex, such as #ffffff.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"description":"Background blur amount, 1 to 100. Default 20.","type":"number","minimum":1,"maximum":100}},"additionalProperties":false}},"required":["resize"],"additionalProperties":false}]},"audiogram":{"type":"object","properties":{"document":{"type":"object","properties":{"version":{"type":"number","const":1},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["1:1","9:16","16:9","4:5"]},"width":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"height":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"fps":{"type":"integer","minimum":1,"maximum":60}},"required":["ratio","width","height","fps"],"additionalProperties":false},"background":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"color"},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["type","color"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"gradient"},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"angle":{"type":"number","minimum":-360,"maximum":360}},"required":["type","colors","angle"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"fit":{"type":"string","enum":["fit","fill"]},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"blur":{"type":"number","minimum":0,"maximum":0.1}},"required":["type","fit","color","blur"],"additionalProperties":false}]},"waveform":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"style":{"type":"string","enum":["bars","line","mirror","circle","dots"]},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"thickness":{"type":"number","minimum":0.001,"maximum":0.1},"gap":{"type":"number","minimum":0.001,"maximum":0.1},"smoothing":{"type":"number","minimum":0,"maximum":1},"sensitivity":{"type":"number","minimum":0,"maximum":5}},"required":["x","y","width","height","style","colors","thickness","gap","smoothing","sensitivity"],"additionalProperties":false},"cover":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"radius":{"type":"number","minimum":0,"maximum":0.5},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false}},"required":["x","y","width","height","radius","shadow"],"additionalProperties":false},{"type":"null"}]},"title":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"subtitle":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"progress":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"background":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"radius":{"type":"number","minimum":0,"maximum":0.5}},"required":["x","y","width","height","color","background","radius"],"additionalProperties":false},{"type":"null"}]},"captions":{"type":"object","properties":{"version":{"type":"number","const":1},"words":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","breakOnPauseMs","breakOnSentence","combineWithinMs","minDurationMs","maxDurationMs","lingerMs","offsetMs","uppercase","hidePunctuation"],"additionalProperties":false},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}}},"required":["version","words","layout","style"],"additionalProperties":false}},"required":["version","output","background","waveform","cover","title","subtitle","progress"],"additionalProperties":false},"cover_file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]}},"required":["document"],"additionalProperties":false},"captions":{"type":"object","properties":{"request":{"type":"object","properties":{"version":{"default":1,"type":"number","const":1},"preset":{"type":"string","enum":["bold_keywords","big_bounce","yellow_keyword","green_word","pop","one_word","one_word_yellow","comic","arcade","retro","karaoke","karaoke_blue","fill_in","box","green_box","highlighter","glow","neon","slide_up","soft_lowercase","sunset","ocean","gold","clean","subtitles","yellow_subtitles","minimal","quiet_caps","cinematic","soft_fade","bubble","black_pill","speaker_colors","lower_third","news","two_lines"]},"style_id":{"description":"Your saved caption style ID from list_caption_presets or /api/v1/caption-styles. Its look replaces the preset's look; explicit style/layout overrides still win.","type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"words":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}},"text":{"description":"Edited script. Aligns against words when supplied, otherwise against a new transcript. Omit to keep the supplied word times.","type":"string","minLength":1,"maxLength":2097152},"language":{"type":"string","pattern":"^[a-z]{2,3}$"},"auto_keywords":{"description":"Pick emphasis words automatically. Explicit style.keywords wins.","type":"boolean"},"max_per_caption":{"description":"Automatic emphasis words per caption, default 1.","type":"integer","minimum":1,"maximum":3},"auto_emoji":{"description":"Add a few supported Noto emoji, avoiding sensitive topics.","type":"boolean"},"density":{"description":"Automatic emoji per minute: up to 2, 4 (default), or 6.","type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string","maxLength":35,"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"},"bilingual":{"description":"Keep the original line above the translation. Requires translate_to.","type":"boolean"},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"outputs":{"default":["video","srt","vtt","txt"],"minItems":1,"maxItems":7,"type":"array","items":{"type":"string","enum":["video","overlay_webm","overlay_prores","srt","vtt","ass","txt"]}}},"additionalProperties":false},"transcript_file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]},"outputs":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["video","overlay_webm","overlay_prores","srt","vtt","ass"]}}},"required":["request"],"additionalProperties":false},"overlay":{"type":"object","properties":{"document":{"type":"object","properties":{"version":{"type":"number","const":1},"items":{"minItems":1,"maxItems":100,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"margin":{"type":"number","minimum":0,"maximum":0.4},"stroke":{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"width":{"type":"number","minimum":0,"maximum":0.03}},"required":["color","width"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"background":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.1},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","text","font","weight","size","color","start_ms","end_ms","position","margin","stroke","shadow","background","animation"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"logo"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"scale":{"type":"number","minimum":0.01,"maximum":1},"opacity":{"type":"number","minimum":0,"maximum":1},"margin":{"type":"number","minimum":0,"maximum":0.4},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","start_ms","end_ms","position","scale","opacity","margin"],"additionalProperties":false}]}}},"required":["version","items"],"additionalProperties":false},"logo_file_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":300,"description":"An upload's file token"},{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[0-9a-z]{24}$"},"token":{"type":"string","minLength":1,"maxLength":300},"output":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$"}},"required":["job_id","token","output"],"additionalProperties":false,"description":"A free run's output file, with the run's status token"}]}},"required":["document"],"additionalProperties":false},"output":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"video"},"container":{"type":"string","enum":["mp4","mov","webm"]},"max_height":{"type":"integer","minimum":2,"maximum":4320},"compress":{"type":"object","properties":{"target":{"description":"Size preset: 20, 50, 16, or 25 decimal MB, or size_mb. Leave out for quality mode; without either, discord_free.","type":"string","enum":["discord_free","discord_nitro_basic","whatsapp","email","size_mb"]},"size_mb":{"description":"Custom size in decimal MB. Needs target size_mb.","type":"number","minimum":0.1,"maximum":10000},"quality":{"description":"Constant quality instead of a size target: 0 to 51, lower is clearer. Leave target and size_mb out.","type":"integer","minimum":0,"maximum":51},"max_height":{"description":"Maximum output height in pixels; never enlarges the input.","type":"integer","minimum":2,"maximum":4320},"mute":{"default":false,"description":"Remove the soundtrack. Default false.","type":"boolean"},"fps":{"description":"Frame rate cap; never raises the input frame rate.","type":"number","minimum":1,"maximum":120}},"additionalProperties":false}},"required":["kind","container"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"audio"},"format":{"type":"string","enum":["mp3","wav","m4a","flac","ogg","opus"]},"parts":{"type":"string","enum":["one","each"]}},"required":["kind","format"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"gif"},"start_seconds":{"type":"number","minimum":0,"maximum":36000},"end_seconds":{"type":"number","minimum":0,"maximum":36000},"fps":{"type":"integer","minimum":5,"maximum":30},"width":{"type":"integer","minimum":120,"maximum":1280},"format":{"type":"string","enum":["gif","webp"]},"loop":{"type":"integer","minimum":0,"maximum":65535}},"required":["kind","start_seconds","end_seconds","fps","width","format"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"frame"},"time_seconds":{"type":"number","minimum":0,"maximum":36000},"format":{"type":"string","enum":["png","jpg"]}},"required":["kind","time_seconds","format"],"additionalProperties":false}]}},"required":["version","sources","output"],"additionalProperties":false}},"required":["editor_export"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"upper_bound":{"type":"boolean","const":true},"source_seconds":{"type":"number"},"output_seconds":{"type":"number"},"steps":{"type":"array","items":{"type":"object","properties":{"step_id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"branches":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seconds":{"type":"number"},"credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"input_seconds":{"type":"number"}},"required":["step_id","tool","branches","seconds","credits"],"additionalProperties":false}},"free":{"type":"object","properties":{"seconds":{"type":"number"},"uses_left":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"available":{"type":"boolean"}},"required":["seconds","uses_left","available"],"additionalProperties":false}},"required":["credits","upper_bound","source_seconds","steps","free"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/workflow-runs/{id}":{"get":{"operationId":"get_try_workflow_runs_id","tags":["Free API"],"summary":"Read workflow progress and output downloads through its run token","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}},{"name":"wait","in":"query","required":false,"description":"Wait up to this many seconds (at most 40) for a change before answering","schema":{"type":"number","minimum":0,"maximum":40}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":["string","null"]},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"free":{"type":"boolean"},"processed_seconds":{"type":"number"},"progress":{"type":"number"},"quoted_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"charged_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"quote":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"archive":{"anyOf":[{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string","format":"uri"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["filename","url","expiresAt"],"additionalProperties":false},{"type":"null"}]},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"jobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]},"branch":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","branch"],"additionalProperties":false}}},"required":["id","tool","jobs"],"additionalProperties":false}},"output_file_ids":{"type":"array","items":{"type":"string"}},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["fileId","filename","url","expiresAt"],"additionalProperties":false}},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"status_url":{"type":"string"},"finished_by":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"progress":{"type":"number"},"status_url":{"type":"string"}},"required":["id","status","progress","status_url"],"additionalProperties":false},{"type":"null"}]},"finish_request":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"finish_url":{"type":"string"},"finish_price_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","workflow_id","status","free","processed_seconds","progress","quoted_credits","charged_credits","quote","steps","output_file_ids","outputs","error"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/workflow-runs/{id}/archive":{"get":{"operationId":"get_try_workflow_runs_id_archive","tags":["Free API"],"summary":"Stream all outputs through a signed archive link or run token","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"responses":{"200":{"description":"The file","content":{"application/zip":{"schema":{"type":"string","contentMediaType":"application/zip"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/workflow-runs/{id}/cancel":{"post":{"operationId":"post_try_workflow_runs_id_cancel","tags":["Free API"],"summary":"Cancel a free workflow through its run token","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"workflow_id":{"type":["string","null"]},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"free":{"type":"boolean"},"processed_seconds":{"type":"number"},"progress":{"type":"number"},"quoted_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"charged_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"quote":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"archive":{"anyOf":[{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string","format":"uri"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["filename","url","expiresAt"],"additionalProperties":false},{"type":"null"}]},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"jobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"A job held for payment: the page where the whole file can run, or null once its files are gone","type":["string","null"]},"branch":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","branch"],"additionalProperties":false}}},"required":["id","tool","jobs"],"additionalProperties":false}},"output_file_ids":{"type":"array","items":{"type":"string"}},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["fileId","filename","url","expiresAt"],"additionalProperties":false}},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"status_url":{"type":"string"},"finished_by":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled"]},"progress":{"type":"number"},"status_url":{"type":"string"}},"required":["id","status","progress","status_url"],"additionalProperties":false},{"type":"null"}]},"finish_request":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"finish_url":{"type":"string"},"finish_price_credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","workflow_id","status","free","processed_seconds","progress","quoted_credits","charged_credits","quote","steps","output_file_ids","outputs","error"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/jobs/{id}/finish":{"get":{"operationId":"get_try_jobs_id_finish","tags":["Free API"],"summary":"A free result's finish page, as data","description":"What the finish link's page shows: the whole length, what the free run did, the price in credits (1 credit is 1 US cent), and how finishing is going (open, expired, finishing, done, failed). t is the finish link's token (or the status link's). A wrong or expired token reads as expired. People pay on the page itself (finishUrl); agents give them the link and keep checking the status link, whose finishedBy names the whole-file job once paid.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}},{"name":"checkout","in":"query","required":false,"description":"A checkout opened for this job on the finish page","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"state":{"type":"string","enum":["open","expired","finishing","done","failed"]},"jobId":{"type":"string"},"tool":{"anyOf":[{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},{"type":"null"}]},"totalSeconds":{"description":"The whole file's billed length","type":["number","null"]},"processedSeconds":{"description":"What the free run did","type":["number","null"]},"priceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"What the whole file costs, in credits (1 credit is 1 cent)"},"accountJob":{"type":"boolean"},"firstPack":{"description":"For a run of a person's account: whether that account may still buy the first-purchase pack (the credits go there). Null when whoever pays decides, by their own purchases","type":["boolean","null"]},"checkout":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"amountCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The price in US cents"},"credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"The credits quoted when checkout opens; once paid, the credits actually granted"},"status":{"type":"string","enum":["open","completed","expired"]},"provider":{"type":"string","enum":["stripe","dev"]},"processing":{"description":"Open, with a payment on its way that hasn't arrived yet (a bank debit, say)","type":"boolean"},"runWorkflowRunId":{"description":"The whole workflow this purchase started","type":["string","null"]},"runJobId":{"description":"The whole-file job this purchase started, once paid","type":["string","null"]},"runError":{"description":"Why the purchase's run couldn't start (such as file_expired); the credits are kept","type":["string","null"]},"savedFor":{"description":"Paid without signing in: the email the credits are kept for, masked","type":["string","null"]},"leftCents":{"description":"Paid without signing in, once its run is done: what the purchase left over, in US cents","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"paidTotal":{"description":"Once paid: what the buyer was charged, tax included, in the currency they paid in (null when the payment provider didn't say)","anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"In the currency's smallest unit, such as cents"},"currency":{"type":"string","description":"ISO 4217, lowercase, such as usd or eur"}},"required":["amount","currency"],"additionalProperties":false},{"type":"null"}]}},"required":["id","amountCents","credits","status","provider"],"additionalProperties":false},{"type":"null"}]},"preview":{"description":"While it's open, the free part to listen to: the whole recording the agent sent (the page plays its free part) and what the free run made (links work for 15 minutes)","anyOf":[{"type":"object","properties":{"originalUrl":{"type":"string"},"resultUrl":{"type":"string"},"hasVideo":{"type":"boolean"}},"required":["originalUrl","resultUrl","hasVideo"],"additionalProperties":false},{"type":"null"}]},"wholeJob":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"]},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","status","progress","stage","estimatedSecondsLeft"],"additionalProperties":false},{"type":"null"}]}},"required":["state","jobId","tool","totalSeconds","processedSeconds","priceCredits","accountJob","checkout","wholeJob"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/jobs/{id}/finish/peaks":{"get":{"operationId":"get_try_jobs_id_finish_peaks","tags":["Free API"],"summary":"The waveform of the recording a finish page plays","description":"Read-only, through the finish link's token, while the run is open to finish: the recording's peaks, as GET /api/v1/files/{id}/peaks returns them.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}},{"name":"wait","in":"query","required":false,"description":"Wait up to this many seconds (at most 40) for a change before answering","schema":{"type":"number","minimum":0,"maximum":40}},{"name":"level","in":"query","required":false,"description":"Bins a second: 5, 50, 500. Without it, only the description comes back","schema":{"type":"integer","enum":[5,50,500]}},{"name":"first","in":"query","required":false,"description":"The first bin to return. Default 0","schema":{"type":"integer","minimum":0}},{"name":"count","in":"query","required":false,"description":"How many bins, 1 to 16384. Default 4096","schema":{"type":"integer","minimum":1,"maximum":16384}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fileId":{"type":"string"},"status":{"type":"string","enum":["processing","ready","none"],"description":"processing while they're made (ask again, with wait); none when the file has no sound to draw"},"durationSeconds":{"description":"How long the decoded sound is","type":["number","null"]},"peak":{"description":"The loudest sample, 0 to 1","type":["number","null"]},"levels":{"type":"array","items":{"type":"object","properties":{"perSecond":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["perSecond","count"],"additionalProperties":false}},"bins":{"anyOf":[{"type":"object","properties":{"level":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"first":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"data":{"type":"string","description":"Base64 of count pairs of signed bytes: min, then max"}},"required":["level","first","count","data"],"additionalProperties":false},{"type":"null"}],"description":"The bins asked for with level, first, and count, once ready"}},"required":["fileId","status","durationSeconds","peak","levels","bins"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/jobs/{id}/transcript":{"get":{"operationId":"get_try_jobs_id_transcript","tags":["Free API"],"summary":"Read part of a free job's transcript, with times","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}},{"name":"from","in":"query","required":false,"description":"Start of the window in seconds. Default 0","schema":{"type":"number","minimum":0}},{"name":"to","in":"query","required":false,"description":"End of the window in seconds. Default from + 300","schema":{"type":"number","minimum":0}},{"name":"detail","in":"query","required":false,"description":"concise (sentences) or full (sentences with every word's times)","schema":{"type":"string","enum":["concise","full"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fileId":{"type":"string"},"language":{"type":"string","description":"A language code, such as en"},"fromSeconds":{"type":"number"},"toSeconds":{"type":"number"},"durationSeconds":{"type":"number","description":"The whole transcript's length"},"speakerCount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"How many people speak in the whole transcript (0 without speech), or null when it has no speaker labels"},"detail":{"type":"string","enum":["concise","full"]},"sentences":{"type":"array","items":{"type":"object","properties":{"startSeconds":{"type":"number"},"endSeconds":{"type":"number"},"text":{"type":"string"},"speaker":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Who says it: 1, 2, and so on, in the order people first speak"},{"type":"null"}],"description":"Who says it: 1, 2, and so on, in the order people first speak, or null without speaker labels"},"words":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"startSeconds":{"type":"number"},"endSeconds":{"type":"number"},"speaker":{"description":"Who says it, when the transcript has speaker labels: 1, 2, and so on, in the order people first speak","type":"integer","minimum":1,"maximum":9007199254740991},"matched":{"description":"In an aligned script: false when the word wasn't found in the recording","type":"boolean"}},"required":["text","startSeconds","endSeconds"],"additionalProperties":false}}},"required":["startSeconds","endSeconds","text","speaker"],"additionalProperties":false}},"nextFromSeconds":{"description":"Where to read on from, or null at the end","type":["number","null"]}},"required":["fileId","language","fromSeconds","toSeconds","durationSeconds","speakerCount","detail","sentences","nextFromSeconds"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/files/{id}":{"get":{"operationId":"get_try_files_id","tags":["Free API"],"summary":"Read an uploaded file and its checked media details","description":"t is the fileToken from POST /api/try/uploads. Returns the same AudioFile as account uploads, including media.width, media.height and media.fps. With wait, waits up to 40 seconds for the probe. IDs alone grant no access.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}},{"name":"wait","in":"query","required":false,"description":"Wait up to this many seconds (at most 40) for a change before answering","schema":{"type":"number","minimum":0,"maximum":40}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/files/{id}/peaks":{"get":{"operationId":"get_try_files_id_peaks","tags":["Free API"],"summary":"Read the waveform of a file uploaded for a free run","description":"t is the file's fileToken from POST /api/try/uploads. Otherwise as GET /api/v1/files/{id}/peaks.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}},{"name":"wait","in":"query","required":false,"description":"Wait up to this many seconds (at most 40) for a change before answering","schema":{"type":"number","minimum":0,"maximum":40}},{"name":"level","in":"query","required":false,"description":"Bins a second: 5, 50, 500. Without it, only the description comes back","schema":{"type":"integer","enum":[5,50,500]}},{"name":"first","in":"query","required":false,"description":"The first bin to return. Default 0","schema":{"type":"integer","minimum":0}},{"name":"count","in":"query","required":false,"description":"How many bins, 1 to 16384. Default 4096","schema":{"type":"integer","minimum":1,"maximum":16384}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fileId":{"type":"string"},"status":{"type":"string","enum":["processing","ready","none"],"description":"processing while they're made (ask again, with wait); none when the file has no sound to draw"},"durationSeconds":{"description":"How long the decoded sound is","type":["number","null"]},"peak":{"description":"The loudest sample, 0 to 1","type":["number","null"]},"levels":{"type":"array","items":{"type":"object","properties":{"perSecond":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["perSecond","count"],"additionalProperties":false}},"bins":{"anyOf":[{"type":"object","properties":{"level":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"first":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"data":{"type":"string","description":"Base64 of count pairs of signed bytes: min, then max"}},"required":["level","first","count","data"],"additionalProperties":false},{"type":"null"}],"description":"The bins asked for with level, first, and count, once ready"}},"required":["fileId","status","durationSeconds","peak","levels","bins"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/uploads/{id}":{"get":{"operationId":"get_uploads_id","tags":["Upload page"],"summary":"Get the file an upload page is for","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}},{"name":"wait","in":"query","required":false,"description":"Wait up to this many seconds (at most 40) for a change before answering","schema":{"type":"number","minimum":0,"maximum":40}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/uploads/{id}/start":{"post":{"operationId":"post_uploads_id_start","tags":["Upload page"],"summary":"Name the file and get how to upload it: one PUT, or parts and a complete link","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":255},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"contentType":{"type":"string","maxLength":100}},"required":["filename","sizeBytes"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"file":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false},"upload":{"anyOf":[{"type":"object","properties":{"method":{"type":"string","const":"PUT"},"url":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["method","url","headers","expiresAt"],"additionalProperties":false},{"type":"null"}],"description":"One PUT, up to 100 MB"},"multipart":{"anyOf":[{"type":"object","properties":{"partSizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Every part is this size, except the last"},"partCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"partUrl":{"type":"string","description":"Where part n goes (PUT), with {n} in place of the part number, counting from 1"},"completeUrl":{"type":"string","description":"POST here once every part is in. It joins them, or lists the parts that haven't arrived (details.missingParts)"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["partSizeBytes","partCount","partUrl","completeUrl","expiresAt"],"additionalProperties":false},{"type":"null"}],"description":"Upload in parts instead, for larger files"}},"required":["file","upload","multipart"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/uploads/{id}/abort":{"post":{"operationId":"post_uploads_id_abort","tags":["Upload page"],"summary":"Stop the upload","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"responses":{"204":{"description":"Done"},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/files/{id}":{"get":{"operationId":"get_files_id","tags":["File links"],"summary":"Download the file. Byte ranges work","description":"The link comes from GET /api/v1/files/{id}/download and works for 15 minutes.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"responses":{"200":{"description":"The file","content":{"application/octet-stream":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"put":{"operationId":"put_files_id","tags":["File links"],"summary":"Upload the file in one request, up to 100 MB","description":"The body is the file, such as curl -T interview.wav \"<upload url>\": up to 100 MB (100,000,000 bytes), and its size needn't be known in advance. A larger file goes in parts. The link comes from creating or starting the upload and works for an hour.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/files/{id}/parts/{n}":{"put":{"operationId":"put_files_id_parts_n","tags":["File links"],"summary":"Upload part n (from 1) of an upload in parts","description":"The link is multipart.partUrl with {n} replaced by n. Every part is partSizeBytes, except the last; sending a part again replaces it. One token covers the whole upload and works while the file waits for it, up to 24 hours.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"n","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"partNumber":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"etag":{"type":"string"}},"required":["partNumber","etag"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/files/{id}/stored":{"post":{"operationId":"post_files_id_stored","tags":["File links"],"summary":"Take in a file the files Worker stored (the Worker's own call)","description":"Where file links are served from Cloudflare, the files Worker calls this after storing one PUT to an upload link, with the same link and the object's key. The API checks the object in the bucket (its key and size) before taking it in. Callers never need it: the PUT answers with the file.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"key":{"type":"string"}},"required":["key"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/files/{id}/complete":{"post":{"operationId":"post_files_id_complete","tags":["File links"],"summary":"Complete an upload in parts, so the file is checked","description":"The link is multipart.completeUrl. Parts that didn't arrive are listed in a 409's details.missingParts: send those again, then complete again. Safe to repeat.","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"t","in":"query","required":true,"description":"The token from the link","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["original","output"]},"status":{"type":"string","enum":["awaiting_upload","processing","ready","invalid","deleted"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"format":{"description":"The container, such as wav or mp4","type":["string","null"]},"hasVideo":{"type":"boolean"},"hasAudio":{"type":"boolean","description":"False for a video without sound, which only replace_audio takes"},"media":{"anyOf":[{"type":"object","properties":{"image":{"type":"object","properties":{"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"animated":{"type":"boolean"},"frame_count":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["width","height","animated","frame_count"],"additionalProperties":false},"codec":{"description":"The audio codec, such as aac or pcm_s16le","type":["string","null"]},"sampleRate":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"channels":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The video's width in pixels, or null without video"},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fps":{"description":"The video's frames per second, or null when unknown or without video","type":["number","null"]}},"required":["codec","sampleRate","channels","width","height"],"additionalProperties":false},{"type":"null"}],"description":"Audio and video details, once the file is checked. Null for text files"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"prices":{"anyOf":[{"type":"object","propertyNames":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Credits each length-priced tool costs to process this file, once its length is known"},"sourceJobId":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 time"},"expiresAt":{"type":"string","description":"ISO 8601 time"}},"required":["id","kind","status","filename","contentType","sizeBytes","durationSeconds","format","hasVideo","hasAudio","media","error","prices","sourceJobId","createdAt","expiresAt"],"additionalProperties":false}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/remove-noise":{"post":{"tags":["Free API"],"operationId":"try_remove_noise","summary":"Remove noise, free for the first minute","description":"Free for the first minute of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.05/min, 5 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@interview.wav https://audo.ai/api/try/remove-noise -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@interview.wav https://audo.ai/api/try/remove-noise -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"noise_reduction":{"default":100,"description":"How much of the noise to turn down, as a percentage. 100 turns down all it can; lower values keep some of the background. Default 100.","type":"integer","minimum":10,"maximum":100},"auto_volume":{"default":true,"description":"Sets the whole file to -16 LUFS with one gain, and limits peaks to -1 dBTP. It doesn't balance loud and quiet speakers. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first minute, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first minute free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"noise_reduction":{"default":100,"description":"How much of the noise to turn down, as a percentage. 100 turns down all it can; lower values keep some of the background. Default 100.","type":"integer","minimum":10,"maximum":100},"auto_volume":{"default":true,"description":"Sets the whole file to -16 LUFS with one gain, and limits peaks to -1 dBTP. It doesn't balance loud and quiet speakers. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first minute, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first minute free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/enhance-voice":{"post":{"tags":["Free API"],"operationId":"try_enhance_voice","summary":"Enhance voice, free for the first minute","description":"Free for the first minute of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.05/min, 5 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@call.wav https://audo.ai/api/try/enhance-voice -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@call.wav https://audo.ai/api/try/enhance-voice -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"noise_reduction":{"default":100,"description":"How much of the regenerated voice to use, as a percentage. 100 uses all of it; lower values mix back some of the original sound. Default 100.","type":"integer","minimum":10,"maximum":100},"auto_volume":{"default":true,"description":"Sets the whole file to -16 LUFS with one gain, and limits peaks to -1 dBTP. It doesn't balance loud and quiet speakers. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first minute, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first minute free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"noise_reduction":{"default":100,"description":"How much of the regenerated voice to use, as a percentage. 100 uses all of it; lower values mix back some of the original sound. Default 100.","type":"integer","minimum":10,"maximum":100},"auto_volume":{"default":true,"description":"Sets the whole file to -16 LUFS with one gain, and limits peaks to -1 dBTP. It doesn't balance loud and quiet speakers. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first minute, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first minute free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/split-stems":{"post":{"tags":["Free API"],"operationId":"try_split_audio","summary":"Split stems, free for the first 45 seconds","description":"Free for the first 45 seconds of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.08/min, 8 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@song.mp3 -F stems=vocals https://audo.ai/api/try/split-stems -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@song.mp3 -F stems=vocals https://audo.ai/api/try/split-stems -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"stems":{"default":"vocals","description":"Which stems to separate: vocals (vocals first, then instrumental), instrumental (instrumental backing track first, then vocals), four_stems (vocals, drums, bass, and other), or dialogue (music-removed mix first, then dialogue, music, and sound effects). Default vocals.","type":"string","enum":["vocals","instrumental","four_stems","dialogue"]},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 45 seconds, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 45 seconds free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"stems":{"default":"vocals","description":"Which stems to separate: vocals (vocals first, then instrumental), instrumental (instrumental backing track first, then vocals), four_stems (vocals, drums, bass, and other), or dialogue (music-removed mix first, then dialogue, music, and sound effects). Default vocals.","type":"string","enum":["vocals","instrumental","four_stems","dialogue"]},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 45 seconds, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 45 seconds free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/transcribe":{"post":{"tags":["Free API"],"operationId":"try_transcribe_audio","summary":"Transcribe, free for the first 2 minutes","description":"Free for the first 2 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.03/min, 3 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@interview.mp3 -F format=srt https://audo.ai/api/try/transcribe -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@interview.mp3 -F format=srt https://audo.ai/api/try/transcribe -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}},{"name":"format","in":"query","required":false,"description":"Same as the format field","schema":{"type":"string","enum":["json","srt","vtt","txt"]}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"language":{"description":"The spoken language, as a code such as en or ja. Default: detected.","type":"string","pattern":"^[a-z]{2,3}$"},"verbatim":{"default":true,"description":"Keeps filler words such as um and uh, so they can be cut later. Default true.","type":"boolean"},"speaker_labels":{"default":true,"description":"Labels who speaks when: Speaker 1, Speaker 2, and so on, in the order they first speak, up to 8 people. No names. Default true.","type":"boolean"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"format":{"type":"string","enum":["json","srt","vtt","txt"],"default":"json","description":"What to return: json, srt, vtt, txt. Also accepted in the query string"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"language":{"description":"The spoken language, as a code such as en or ja. Default: detected.","type":"string","pattern":"^[a-z]{2,3}$"},"verbatim":{"default":true,"description":"Keeps filler words such as um and uh, so they can be cut later. Default true.","type":"boolean"},"speaker_labels":{"default":true,"description":"Labels who speaks when: Speaker 1, Speaker 2, and so on, in the order they first speak, up to 8 people. No names. Default true.","type":"boolean"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"format":{"type":"string","enum":["json","srt","vtt","txt"],"default":"json","description":"What to return: json, srt, vtt, txt. Also accepted in the query string"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The transcript: JSON by default, or the format asked for","content":{"application/json":{"schema":{"type":"object"}},"application/x-subrip":{"schema":{"type":"string"}},"text/vtt":{"schema":{"type":"string"}},"text/plain":{"schema":{"type":"string"}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/align-script":{"post":{"tags":["Free API"],"operationId":"try_align_script","summary":"Align a script, free for the first 2 minutes","description":"Free for the first 2 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.03/min, 3 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@talk.wav -F script=@script.txt -F format=srt https://audo.ai/api/try/align-script -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@talk.wav -F script=@script.txt -F format=srt https://audo.ai/api/try/align-script -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}},{"name":"format","in":"query","required":false,"description":"Same as the format field","schema":{"type":"string","enum":["json","srt","vtt"]}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"script":{"type":"string","contentMediaType":"application/octet-stream","description":"The script, as a TXT, SRT, or VTT file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"script_url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"script_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"text":{"description":"The script as plain text, SRT, or VTT, up to 2 MB, such as \"Welcome back to the show.\" Pass text or script_file_id, not both.","type":"string","minLength":1,"maxLength":2097152},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"format":{"type":"string","enum":["json","srt","vtt"],"default":"json","description":"What to return: json, srt, vtt. Also accepted in the query string"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]},{"oneOf":[{"allOf":[{"oneOf":[{"required":["script"]},{"required":["script_url"]},{"required":["script_token"]}]},{"not":{"anyOf":[{"required":["text"]}]}}]},{"required":["text"],"not":{"anyOf":[{"required":["script"]},{"required":["script_url"]},{"required":["script_token"]}]}}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"script_url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"script_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"text":{"description":"The script as plain text, SRT, or VTT, up to 2 MB, such as \"Welcome back to the show.\" Pass text or script_file_id, not both.","type":"string","minLength":1,"maxLength":2097152},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"format":{"type":"string","enum":["json","srt","vtt"],"default":"json","description":"What to return: json, srt, vtt. Also accepted in the query string"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]},{"oneOf":[{"allOf":[{"oneOf":[{"required":["script_url"]},{"required":["script_token"]}]},{"not":{"anyOf":[{"required":["text"]}]}}]},{"required":["text"],"not":{"anyOf":[{"required":["script_url"]},{"required":["script_token"]}]}}]}]}}}},"responses":{"200":{"description":"The transcript: JSON by default, or the format asked for","content":{"application/json":{"schema":{"type":"object"}},"application/x-subrip":{"schema":{"type":"string"}},"text/vtt":{"schema":{"type":"string"}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/cut":{"post":{"tags":["Free API"],"operationId":"try_cut_audio","summary":"Cut, free for the first hour","description":"Free for the first hour of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@interview.wav -F mode=remove -F 'ranges=[[0,12.5],[300,312]]' https://audo.ai/api/try/cut -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@interview.wav -F mode=remove -F 'ranges=[[0,12.5],[300,312]]' https://audo.ai/api/try/cut -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"ranges":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2},"description":"Time ranges as [start, end] pairs in seconds, such as [[0, 12.5], [300, 312]]. 1 to 5,000 ranges."},"mode":{"default":"remove","description":"remove deletes the ranges; keep keeps only the ranges. Default remove.","type":"string","enum":["remove","keep"]},"output":{"default":"joined","description":"joined makes one file; separate makes one file per range. Default joined.","type":"string","enum":["joined","separate"]},"crossfade_ms":{"default":20,"description":"A crossfade at each cut, in milliseconds (0 to 200), such as 20. Default 20.","type":"integer","minimum":0,"maximum":200},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"required":["ranges"],"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"ranges":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2},"description":"Time ranges as [start, end] pairs in seconds, such as [[0, 12.5], [300, 312]]. 1 to 5,000 ranges."},"mode":{"default":"remove","description":"remove deletes the ranges; keep keeps only the ranges. Default remove.","type":"string","enum":["remove","keep"]},"output":{"default":"joined","description":"joined makes one file; separate makes one file per range. Default joined.","type":"string","enum":["joined","separate"]},"crossfade_ms":{"default":20,"description":"A crossfade at each cut, in milliseconds (0 to 200), such as 20. Default 20.","type":"integer","minimum":0,"maximum":200},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"required":["ranges"],"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/remove-silence":{"post":{"tags":["Free API"],"operationId":"try_remove_silence","summary":"Remove silence, free for the first 3 minutes","description":"Free for the first 3 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@interview.wav https://audo.ai/api/try/remove-silence -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@interview.wav https://audo.ai/api/try/remove-silence -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"min_pause_seconds":{"default":0.7,"description":"Shortens pauses at least this long, in seconds (0.3 to 5), such as 0.7. Default 0.7.","type":"number","minimum":0.3,"maximum":5},"keep_seconds":{"default":0.25,"description":"How much of each pause to keep, in seconds (0 to 1), such as 0.25. Default 0.25.","type":"number","minimum":0,"maximum":1},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"min_pause_seconds":{"default":0.7,"description":"Shortens pauses at least this long, in seconds (0.3 to 5), such as 0.7. Default 0.7.","type":"number","minimum":0.3,"maximum":5},"keep_seconds":{"default":0.25,"description":"How much of each pause to keep, in seconds (0 to 1), such as 0.25. Default 0.25.","type":"number","minimum":0,"maximum":1},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/loudness":{"post":{"tags":["Free API"],"operationId":"try_adjust_loudness","summary":"Set loudness, free for the first 3 minutes","description":"Free for the first 3 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@episode.wav -F target=podcast https://audo.ai/api/try/loudness -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@episode.wav -F target=podcast https://audo.ai/api/try/loudness -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"target":{"default":"podcast","description":"Where it's going: podcast (-16 LUFS), streaming (-14 LUFS), broadcast (-23 LUFS), audiobook (ACX checks), or custom (set custom_lufs). Default podcast.","type":"string","enum":["podcast","streaming","broadcast","audiobook","custom"]},"custom_lufs":{"description":"The loudness for target custom, in LUFS (-30 to -5), such as -18.","type":"number","minimum":-30,"maximum":-5},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"target":{"default":"podcast","description":"Where it's going: podcast (-16 LUFS), streaming (-14 LUFS), broadcast (-23 LUFS), audiobook (ACX checks), or custom (set custom_lufs). Default podcast.","type":"string","enum":["podcast","streaming","broadcast","audiobook","custom"]},"custom_lufs":{"description":"The loudness for target custom, in LUFS (-30 to -5), such as -18.","type":"number","minimum":-30,"maximum":-5},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/convert":{"post":{"tags":["Free API"],"operationId":"try_convert_audio","summary":"Convert, free for the first hour","description":"Free for the first hour of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@video.mp4 -F format=mp3 https://audo.ai/api/try/convert -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@video.mp4 -F format=mp3 https://audo.ai/api/try/convert -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"format":{"default":"mp3","description":"The format to convert to: mp3, wav, m4a, flac, ogg, or opus. Default mp3.","type":"string","enum":["mp3","wav","m4a","flac","ogg","opus"]},"bitrate_kbps":{"description":"The bitrate for mp3, m4a, ogg, or opus, in kbps (16 to 320), such as 128. Default: chosen for the format.","type":"integer","minimum":16,"maximum":320},"sample_rate":{"description":"The sample rate in Hz, such as 44100. Default: the input's.","type":"number","enum":[8000,16000,22050,24000,32000,44100,48000]},"channels":{"description":"mono or stereo. Default: the input's.","type":"string","enum":["mono","stereo"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"format":{"default":"mp3","description":"The format to convert to: mp3, wav, m4a, flac, ogg, or opus. Default mp3.","type":"string","enum":["mp3","wav","m4a","flac","ogg","opus"]},"bitrate_kbps":{"description":"The bitrate for mp3, m4a, ogg, or opus, in kbps (16 to 320), such as 128. Default: chosen for the format.","type":"integer","minimum":16,"maximum":320},"sample_rate":{"description":"The sample rate in Hz, such as 44100. Default: the input's.","type":"number","enum":[8000,16000,22050,24000,32000,44100,48000]},"channels":{"description":"mono or stereo. Default: the input's.","type":"string","enum":["mono","stereo"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/join":{"post":{"tags":["Free API"],"operationId":"try_join_audio","summary":"Join files, free for the first hour","description":"Free for the first hour of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@intro.wav -F file=@episode.wav -F file=@outro.wav https://audo.ai/api/try/join -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@intro.wav -F file=@episode.wav -F file=@outro.wav https://audo.ai/api/try/join -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"array","items":{"type":"string","contentMediaType":"application/octet-stream"},"minItems":1,"maxItems":20,"description":"The files to join, in order: repeat the field"},"url":{"type":"array","items":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"minItems":1,"maxItems":20,"description":"Or links, in order"},"file_token":{"type":"array","items":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"minItems":1,"maxItems":20,"description":"Or file tokens from POST /api/try/uploads, in order"},"crossfade_ms":{"default":0,"description":"A crossfade between files, in milliseconds (0 to 5000), such as 500. Default 0.","type":"integer","minimum":0,"maximum":5000},"video_mode":{"default":"fit","description":"For video inputs: fit pads, fill crops to the first video’s frame. Default fit.","type":"string","enum":["fit","fill"]},"match_loudness":{"default":true,"description":"Matches the files' loudness before joining. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the first file), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour of the result, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour of the result free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"anyOf":[{"required":["file"],"properties":{"file":{"minItems":2}}},{"required":["url"],"properties":{"url":{"minItems":2}}},{"required":["file_token"],"properties":{"file_token":{"minItems":2}}},{"required":["file","url"]},{"required":["file","file_token"]},{"required":["url","file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"array","items":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"minItems":1,"maxItems":20,"description":"Or links, in order"},"file_token":{"type":"array","items":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"minItems":1,"maxItems":20,"description":"Or file tokens from POST /api/try/uploads, in order"},"crossfade_ms":{"default":0,"description":"A crossfade between files, in milliseconds (0 to 5000), such as 500. Default 0.","type":"integer","minimum":0,"maximum":5000},"video_mode":{"default":"fit","description":"For video inputs: fit pads, fill crops to the first video’s frame. Default fit.","type":"string","enum":["fit","fill"]},"match_loudness":{"default":true,"description":"Matches the files' loudness before joining. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the first file), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour of the result, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour of the result free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"anyOf":[{"required":["url"],"properties":{"url":{"minItems":2}}},{"required":["file_token"],"properties":{"file_token":{"minItems":2}}},{"required":["url","file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/swap-audio":{"post":{"tags":["Free API"],"operationId":"try_replace_audio","summary":"Swap a video's audio, free for the first hour","description":"Free for the first hour of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F video=@video.mp4 -F audio=@voice-clean.wav https://audo.ai/api/try/swap-audio -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F video=@video.mp4 -F audio=@voice-clean.wav https://audo.ai/api/try/swap-audio -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"video":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"audio":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"video_url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"video_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"audio_url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"audio_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"offset_seconds":{"default":0,"description":"When the new audio starts against the picture, in seconds, such as 0.5 (later) or -0.5 (earlier). Default 0.","type":"number","minimum":-36000,"maximum":36000},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["video"]},{"required":["video_url"]},{"required":["video_token"]}]},{"oneOf":[{"required":["audio"]},{"required":["audio_url"]},{"required":["audio_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"video_url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"video_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"audio_url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"audio_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"offset_seconds":{"default":0,"description":"When the new audio starts against the picture, in seconds, such as 0.5 (later) or -0.5 (earlier). Default 0.","type":"number","minimum":-36000,"maximum":36000},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["video_url"]},{"required":["video_token"]}]},{"oneOf":[{"required":["audio_url"]},{"required":["audio_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/media-info":{"post":{"tags":["Free API"],"operationId":"try_analyze_audio","summary":"Media info, free for the whole file","description":"Free for the whole file of the file, 20 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits (Free, Free; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@interview.wav https://audo.ai/api/try/media-info -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@interview.wav https://audo.ai/api/try/media-info -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"detail":{"default":"concise","description":"concise lists up to 50 silent stretches; full lists them all. Default concise.","type":"string","enum":["concise","full"]}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"detail":{"default":"concise","description":"concise lists up to 50 silent stretches; full lists them all. Default concise.","type":"string","enum":["concise","full"]}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The media info report","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/remove-fillers":{"post":{"tags":["Free API"],"operationId":"try_remove_fillers","summary":"Remove filler words, free for the first 2 minutes","description":"Free for the first 2 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.03/min, 3 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@interview.wav https://audo.ai/api/try/remove-fillers -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@interview.wav https://audo.ai/api/try/remove-fillers -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"dry_run":{"default":false,"description":"true lists the cuts it would make, with their IDs, and makes no audio. Default false.","type":"boolean"},"repeats":{"default":true,"description":"Also cuts a word or phrase of up to 3 words said twice in a row, keeping the second (\"the the\" becomes \"the\"). Default true.","type":"boolean"},"language":{"description":"The spoken language, as a code such as en or de. It picks the filler words: en, de, fr, es, it, nl, ja, or ko. Default: detected.","type":"string","pattern":"^[a-z]{2,3}$"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"dry_run":{"default":false,"description":"true lists the cuts it would make, with their IDs, and makes no audio. Default false.","type":"boolean"},"repeats":{"default":true,"description":"Also cuts a word or phrase of up to 3 words said twice in a row, keeping the second (\"the the\" becomes \"the\"). Default true.","type":"boolean"},"language":{"description":"The spoken language, as a code such as en or de. It picks the filler words: en, de, fr, es, it, nl, ja, or ko. Default: detected.","type":"string","pattern":"^[a-z]{2,3}$"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/audio-translator":{"post":{"tags":["Free API"],"operationId":"try_translate_transcript","summary":"Translate audio, free for the first 2 minutes","description":"Free for the first 2 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.05/min, 5 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@talk.mp3 -F target_language=en -F format=srt https://audo.ai/api/try/audio-translator -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@talk.mp3 -F target_language=en -F format=srt https://audo.ai/api/try/audio-translator -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}},{"name":"format","in":"query","required":false,"description":"Same as the format field","schema":{"type":"string","enum":["json","srt","vtt","txt"]}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"target_language":{"type":"string","enum":["af","ar","as","az","bg","bn","bs","ca","cs","da","de","el","en","es","et","fa","fi","fil","fr","gl","gu","he","hi","hu","hy","id","is","it","ja","kk","kn","ko","lt","lv","mk","ml","mr","ms","nb","ne","nl","or","pa","pl","pt","ro","ru","sk","sl","sv","sw","ta","te","th","tr","uk","ur","vi","yue","zh"],"description":"Translate into this language code, such as en, es, or ja."},"source_language":{"description":"The spoken language. Default: detected, or the supplied transcript's language.","type":"string","enum":["af","ar","as","az","bg","bn","bs","ca","cs","da","de","el","en","es","et","fa","fi","fil","fr","gl","gu","he","hi","hu","hy","id","is","it","ja","kk","kn","ko","lt","lv","mk","ml","mr","ms","nb","ne","nl","or","pa","pl","pt","ro","ru","sk","sl","sv","sw","ta","te","th","tr","uk","ur","vi","yue","zh"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"format":{"type":"string","enum":["json","srt","vtt","txt"],"default":"json","description":"What to return: json, srt, vtt, txt. Also accepted in the query string"}},"additionalProperties":false,"required":["target_language"],"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"target_language":{"type":"string","enum":["af","ar","as","az","bg","bn","bs","ca","cs","da","de","el","en","es","et","fa","fi","fil","fr","gl","gu","he","hi","hu","hy","id","is","it","ja","kk","kn","ko","lt","lv","mk","ml","mr","ms","nb","ne","nl","or","pa","pl","pt","ro","ru","sk","sl","sv","sw","ta","te","th","tr","uk","ur","vi","yue","zh"],"description":"Translate into this language code, such as en, es, or ja."},"source_language":{"description":"The spoken language. Default: detected, or the supplied transcript's language.","type":"string","enum":["af","ar","as","az","bg","bn","bs","ca","cs","da","de","el","en","es","et","fa","fi","fil","fr","gl","gu","he","hi","hu","hy","id","is","it","ja","kk","kn","ko","lt","lv","mk","ml","mr","ms","nb","ne","nl","or","pa","pl","pt","ro","ru","sk","sl","sv","sw","ta","te","th","tr","uk","ur","vi","yue","zh"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"format":{"type":"string","enum":["json","srt","vtt","txt"],"default":"json","description":"What to return: json, srt, vtt, txt. Also accepted in the query string"}},"additionalProperties":false,"required":["target_language"],"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The transcript: JSON by default, or the format asked for","content":{"application/json":{"schema":{"type":"object"}},"application/x-subrip":{"schema":{"type":"string"}},"text/vtt":{"schema":{"type":"string"}},"text/plain":{"schema":{"type":"string"}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/find-highlights":{"post":{"tags":["Free API"],"operationId":"try_find_highlights","summary":"Find highlights, free for the first 10 minutes","description":"Free for the first 10 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.04/min, 4 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@talk.mp3 -F count=5 https://audo.ai/api/try/find-highlights -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@talk.mp3 -F count=5 https://audo.ai/api/try/find-highlights -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"count":{"default":5,"description":"Maximum number of ranked, non-overlapping moments. Returns fewer when speech cannot fill that many.","type":"integer","minimum":1,"maximum":20},"min_seconds":{"default":15,"description":"Shortest highlight, in seconds. Default 15.","type":"number","minimum":1,"maximum":600},"max_seconds":{"default":60,"description":"Longest highlight, in seconds. Default 60.","type":"number","minimum":1,"maximum":600},"instructions":{"description":"What to look for, such as funny moments or the product demo. At most 500 characters.","type":"string","maxLength":500},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"count":{"default":5,"description":"Maximum number of ranked, non-overlapping moments. Returns fewer when speech cannot fill that many.","type":"integer","minimum":1,"maximum":20},"min_seconds":{"default":15,"description":"Shortest highlight, in seconds. Default 15.","type":"number","minimum":1,"maximum":600},"max_seconds":{"default":60,"description":"Longest highlight, in seconds. Default 60.","type":"number","minimum":1,"maximum":600},"instructions":{"description":"What to look for, such as funny moments or the product demo. At most 500 characters.","type":"string","maxLength":500},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/level-speakers":{"post":{"tags":["Free API"],"operationId":"try_level_speakers","summary":"Level speakers, free for the first 3 minutes","description":"Free for the first 3 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.02/min, 2 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@podcast.wav https://audo.ai/api/try/level-speakers -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@podcast.wav https://audo.ai/api/try/level-speakers -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"track":{"type":"array","items":{"type":"string","contentMediaType":"application/octet-stream"},"minItems":1,"maxItems":10,"description":"Or tracks, one per person, in order: repeat the field"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"track_url":{"type":"array","items":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"minItems":1,"maxItems":10,"description":"Or links, in order"},"track_token":{"type":"array","items":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"minItems":1,"maxItems":10,"description":"Or file tokens from POST /api/try/uploads, in order"},"target":{"default":"podcast","description":"The loudness it finishes at: podcast (-16 LUFS), streaming (-14 LUFS), broadcast (-23 LUFS), or custom (set custom_lufs). Default podcast.","type":"string","enum":["podcast","streaming","broadcast","custom"]},"custom_lufs":{"description":"The loudness for target custom, in LUFS (-30 to -5), such as -18.","type":"number","minimum":-30,"maximum":-5},"within_speaker":{"default":false,"description":"Also evens out slow changes within each speaker, such as leaning away from the mic: up to 6 dB, measured on their speech only and held through pauses. Default false.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 3 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 3 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]},{"not":{"anyOf":[{"required":["track"]},{"required":["track_url"]},{"required":["track_token"]}]}}]},{"allOf":[{"anyOf":[{"required":["track"],"properties":{"track":{"minItems":2}}},{"required":["track_url"],"properties":{"track_url":{"minItems":2}}},{"required":["track_token"],"properties":{"track_token":{"minItems":2}}},{"required":["track","track_url"]},{"required":["track","track_token"]},{"required":["track_url","track_token"]}]},{"not":{"anyOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}}]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"track_url":{"type":"array","items":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"minItems":1,"maxItems":10,"description":"Or links, in order"},"track_token":{"type":"array","items":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"minItems":1,"maxItems":10,"description":"Or file tokens from POST /api/try/uploads, in order"},"target":{"default":"podcast","description":"The loudness it finishes at: podcast (-16 LUFS), streaming (-14 LUFS), broadcast (-23 LUFS), or custom (set custom_lufs). Default podcast.","type":"string","enum":["podcast","streaming","broadcast","custom"]},"custom_lufs":{"description":"The loudness for target custom, in LUFS (-30 to -5), such as -18.","type":"number","minimum":-30,"maximum":-5},"within_speaker":{"default":false,"description":"Also evens out slow changes within each speaker, such as leaning away from the mic: up to 6 dB, measured on their speech only and held through pauses. Default false.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 3 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 3 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]},{"not":{"anyOf":[{"required":["track_url"]},{"required":["track_token"]}]}}]},{"allOf":[{"anyOf":[{"required":["track_url"],"properties":{"track_url":{"minItems":2}}},{"required":["track_token"],"properties":{"track_token":{"minItems":2}}},{"required":["track_url","track_token"]}]},{"not":{"anyOf":[{"required":["url"]},{"required":["file_token"]}]}}]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/mix":{"post":{"tags":["Free API"],"operationId":"try_mix_tracks","summary":"Mix tracks, free for the first 3 minutes","description":"Free for the first 3 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.02/min, 2 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@voice.wav -F file=@music.mp3 -F 'tracks=[{\"role\":\"voice\"},{\"role\":\"music\",\"volume_db\":-6}]' -F duck=true https://audo.ai/api/try/mix -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@voice.wav -F file=@music.mp3 -F 'tracks=[{\"role\":\"voice\"},{\"role\":\"music\",\"volume_db\":-6}]' -F duck=true https://audo.ai/api/try/mix -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"array","items":{"type":"string","contentMediaType":"application/octet-stream"},"minItems":1,"maxItems":20,"description":"The tracks to mix, in order: repeat the field"},"url":{"type":"array","items":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"minItems":1,"maxItems":20,"description":"Or links, in order"},"file_token":{"type":"array","items":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"minItems":1,"maxItems":20,"description":"Or file tokens from POST /api/try/uploads, in order"},"tracks":{"$schema":"https://json-schema.org/draft/2020-12/schema","minItems":2,"maxItems":20,"type":"array","items":{"type":"object","properties":{"volume_db":{"default":0,"description":"The track's volume change in dB (-60 to 24), such as -12. Default 0.","type":"number","minimum":-60,"maximum":24},"start_seconds":{"default":0,"description":"Where the track starts in the mix, in seconds, such as 4.5. Default 0. With align, only the earliest aligned track's is used.","type":"number","minimum":0,"maximum":36000},"role":{"description":"voice or music: align lines up voice tracks, and duck lowers music under voice. Default none.","type":"string","enum":["voice","music"]},"gain":{"description":"A gain over the track's own time, on top of volume_db: [seconds, dB] points in time order, such as [[0, 0], [30, -6], [31, 0]], linear in dB between points and held before the first and after the last. -120 dB is silent. Up to 20,000 points. Default none.","minItems":1,"maxItems":20000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":-120,"maximum":24}],"items":false,"minItems":2,"maxItems":2}}},"additionalProperties":false},"description":"Each track's settings, in the files' order, as JSON in a form field: volume_db, start_seconds, and role. Default: every track as it is, from 0"},"align":{"default":false,"description":"Lines up tracks recorded at the same time (the voice tracks, or every track when none has a role) by their sound, and corrects clock drift. Default false.","type":"boolean"},"duck":{"default":false,"description":"Lowers music tracks while a voice track speaks. Needs a voice and a music track. Default false.","type":"boolean"},"duck_gap_lu":{"default":12,"description":"With duck, how far under the speech the music sits, in LU (6 to 30), such as 12. Default 12.","type":"number","minimum":6,"maximum":30},"loudness":{"default":"none","description":"A loudness for the mix: none (the tracks as set, lowered only if it would clip), podcast (-16 LUFS), streaming (-14), or broadcast (-23). Default none.","type":"string","enum":["none","podcast","streaming","broadcast"]},"output_format":{"default":"same","description":"The mix's format: same (as the first track's audio), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 3 minutes of the mix, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 3 minutes of the mix free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"anyOf":[{"required":["file"],"properties":{"file":{"minItems":2}}},{"required":["url"],"properties":{"url":{"minItems":2}}},{"required":["file_token"],"properties":{"file_token":{"minItems":2}}},{"required":["file","url"]},{"required":["file","file_token"]},{"required":["url","file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"array","items":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"minItems":1,"maxItems":20,"description":"Or links, in order"},"file_token":{"type":"array","items":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"minItems":1,"maxItems":20,"description":"Or file tokens from POST /api/try/uploads, in order"},"tracks":{"$schema":"https://json-schema.org/draft/2020-12/schema","minItems":2,"maxItems":20,"type":"array","items":{"type":"object","properties":{"volume_db":{"default":0,"description":"The track's volume change in dB (-60 to 24), such as -12. Default 0.","type":"number","minimum":-60,"maximum":24},"start_seconds":{"default":0,"description":"Where the track starts in the mix, in seconds, such as 4.5. Default 0. With align, only the earliest aligned track's is used.","type":"number","minimum":0,"maximum":36000},"role":{"description":"voice or music: align lines up voice tracks, and duck lowers music under voice. Default none.","type":"string","enum":["voice","music"]},"gain":{"description":"A gain over the track's own time, on top of volume_db: [seconds, dB] points in time order, such as [[0, 0], [30, -6], [31, 0]], linear in dB between points and held before the first and after the last. -120 dB is silent. Up to 20,000 points. Default none.","minItems":1,"maxItems":20000,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":0,"maximum":36000},{"type":"number","minimum":-120,"maximum":24}],"items":false,"minItems":2,"maxItems":2}}},"additionalProperties":false},"description":"Each track's settings, in the files' order, as JSON in a form field: volume_db, start_seconds, and role. Default: every track as it is, from 0"},"align":{"default":false,"description":"Lines up tracks recorded at the same time (the voice tracks, or every track when none has a role) by their sound, and corrects clock drift. Default false.","type":"boolean"},"duck":{"default":false,"description":"Lowers music tracks while a voice track speaks. Needs a voice and a music track. Default false.","type":"boolean"},"duck_gap_lu":{"default":12,"description":"With duck, how far under the speech the music sits, in LU (6 to 30), such as 12. Default 12.","type":"number","minimum":6,"maximum":30},"loudness":{"default":"none","description":"A loudness for the mix: none (the tracks as set, lowered only if it would clip), podcast (-16 LUFS), streaming (-14), or broadcast (-23). Default none.","type":"string","enum":["none","podcast","streaming","broadcast"]},"output_format":{"default":"same","description":"The mix's format: same (as the first track's audio), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 3 minutes of the mix, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 3 minutes of the mix free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"anyOf":[{"required":["url"],"properties":{"url":{"minItems":2}}},{"required":["file_token"],"properties":{"file_token":{"minItems":2}}},{"required":["url","file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/speed-pitch":{"post":{"tags":["Free API"],"operationId":"try_change_speed_pitch","summary":"Change speed & pitch, free for the first 10 minutes","description":"Free for the first 10 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@song.mp3 -F speed=1.25 -F pitch_semitones=2 https://audo.ai/api/try/speed-pitch -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@song.mp3 -F speed=1.25 -F pitch_semitones=2 https://audo.ai/api/try/speed-pitch -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"speed":{"default":1,"description":"How fast it plays: 1 is unchanged, 1.25 is 25% faster (shorter), 0.8 is 20% slower. 0.25 to 4. Default 1.","type":"number","minimum":0.25,"maximum":4},"pitch_semitones":{"default":0,"description":"How far to move the pitch, in semitones: 2 is up a whole step, -1 down a half step, 12 up an octave. -12 to 12, to 0.01. Default 0.","type":"number","minimum":-12,"maximum":12,"multipleOf":0.01},"keep_pitch":{"default":true,"description":"true changes the speed without changing the pitch. false changes both together, like a record played faster or slower (nightcore, slowed). pitch_semitones moves it further. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"speed":{"default":1,"description":"How fast it plays: 1 is unchanged, 1.25 is 25% faster (shorter), 0.8 is 20% slower. 0.25 to 4. Default 1.","type":"number","minimum":0.25,"maximum":4},"pitch_semitones":{"default":0,"description":"How far to move the pitch, in semitones: 2 is up a whole step, -1 down a half step, 12 up an octave. -12 to 12, to 0.01. Default 0.","type":"number","minimum":-12,"maximum":12,"multipleOf":0.01},"keep_pitch":{"default":true,"description":"true changes the speed without changing the pitch. false changes both together, like a record played faster or slower (nightcore, slowed). pitch_semitones moves it further. Default true.","type":"boolean"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video stays a video), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/key-bpm":{"post":{"tags":["Free API"],"operationId":"try_find_key_bpm","summary":"Find key & BPM, free for the whole file","description":"Free for the whole file of the file, 20 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits (Free, Free; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@song.mp3 https://audo.ai/api/try/key-bpm -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@song.mp3 https://audo.ai/api/try/key-bpm -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The tempo and key, with how sure it is of each","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/reverse":{"post":{"tags":["Free API"],"operationId":"try_reverse_audio","summary":"Reverse audio, free for the first 10 minutes","description":"Free for the first 10 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@sound.wav https://audo.ai/api/try/reverse -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@sound.wav https://audo.ai/api/try/reverse -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video gives M4A audio), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"output_format":{"default":"same","description":"The result's format: same (as the input; a video gives M4A audio), wav, mp3, m4a, or flac. Default same.","type":"string","enum":["same","wav","mp3","m4a","flac"]},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/mute-video":{"post":{"tags":["Free API"],"operationId":"try_mute_video","summary":"Mute a video, free for the first hour","description":"Free for the first hour of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 https://audo.ai/api/try/mute-video -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 https://audo.ai/api/try/mute-video -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first hour, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first hour free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/mov-to-mp4":{"post":{"tags":["Free API"],"operationId":"try_convert_video","summary":"Convert video, free for the first 10 minutes","description":"Free for the first 10 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 https://audo.ai/api/try/mov-to-mp4 -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 https://audo.ai/api/try/mov-to-mp4 -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"container":{"default":"mp4","description":"Output container. Default mp4.","type":"string","enum":["mp4","webm","mov"]},"codec":{"description":"Picture codec: h264 or h265 for MP4/MOV, vp9 for WebM. Default h264 for MP4/MOV, vp9 for WebM.","type":"string","enum":["h264","h265","vp9"]},"quality":{"default":23,"description":"Picture quality, 0 to 51: lower keeps more detail and uses more bytes. Default 23.","type":"integer","minimum":0,"maximum":51}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"container":{"default":"mp4","description":"Output container. Default mp4.","type":"string","enum":["mp4","webm","mov"]},"codec":{"description":"Picture codec: h264 or h265 for MP4/MOV, vp9 for WebM. Default h264 for MP4/MOV, vp9 for WebM.","type":"string","enum":["h264","h265","vp9"]},"quality":{"default":23,"description":"Picture quality, 0 to 51: lower keeps more detail and uses more bytes. Default 23.","type":"integer","minimum":0,"maximum":51}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/video-compressor":{"post":{"tags":["Free API"],"operationId":"try_compress_video","summary":"Compress video, free for the first 10 minutes","description":"Free for the first 10 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 https://audo.ai/api/try/video-compressor -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 https://audo.ai/api/try/video-compressor -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"target":{"description":"Size preset: 20, 50, 16, or 25 decimal MB, or size_mb. Leave out for quality mode; without either, discord_free.","type":"string","enum":["discord_free","discord_nitro_basic","whatsapp","email","size_mb"]},"size_mb":{"description":"Custom size in decimal MB. Needs target size_mb.","type":"number","minimum":0.1,"maximum":10000},"quality":{"description":"Constant quality instead of a size target: 0 to 51, lower is clearer. Leave target and size_mb out.","type":"integer","minimum":0,"maximum":51},"max_height":{"description":"Maximum output height in pixels; never enlarges the input.","type":"integer","minimum":2,"maximum":4320},"mute":{"default":false,"description":"Remove the soundtrack. Default false.","type":"boolean"},"fps":{"description":"Frame rate cap; never raises the input frame rate.","type":"number","minimum":1,"maximum":120}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"target":{"description":"Size preset: 20, 50, 16, or 25 decimal MB, or size_mb. Leave out for quality mode; without either, discord_free.","type":"string","enum":["discord_free","discord_nitro_basic","whatsapp","email","size_mb"]},"size_mb":{"description":"Custom size in decimal MB. Needs target size_mb.","type":"number","minimum":0.1,"maximum":10000},"quality":{"description":"Constant quality instead of a size target: 0 to 51, lower is clearer. Leave target and size_mb out.","type":"integer","minimum":0,"maximum":51},"max_height":{"description":"Maximum output height in pixels; never enlarges the input.","type":"integer","minimum":2,"maximum":4320},"mute":{"default":false,"description":"Remove the soundtrack. Default false.","type":"boolean"},"fps":{"description":"Frame rate cap; never raises the input frame rate.","type":"number","minimum":1,"maximum":120}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/crop-video":{"post":{"tags":["Free API"],"operationId":"try_crop_video","summary":"Crop video, free for the first 10 minutes","description":"Free for the first 10 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 https://audo.ai/api/try/crop-video -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 https://audo.ai/api/try/crop-video -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"rect":{"default":{"x":0,"y":0,"w":1,"h":1},"description":"Crop before rotation: x,y,w,h are fractions of the displayed picture, from 0 to 1; x+w and y+h cannot exceed 1.","type":"object","properties":{"x":{"default":0,"type":"number","minimum":0,"maximum":1},"y":{"default":0,"type":"number","minimum":0,"maximum":1},"w":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1}},"additionalProperties":false},"rotate":{"default":0,"description":"Clockwise rotation in degrees after cropping. Default 0.","type":"number","enum":[0,90,180,270]},"flip_horizontal":{"default":false,"description":"Flip left to right after rotation.","type":"boolean"},"flip_vertical":{"default":false,"description":"Flip top to bottom after rotation.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"rect":{"default":{"x":0,"y":0,"w":1,"h":1},"description":"Crop before rotation: x,y,w,h are fractions of the displayed picture, from 0 to 1; x+w and y+h cannot exceed 1.","type":"object","properties":{"x":{"default":0,"type":"number","minimum":0,"maximum":1},"y":{"default":0,"type":"number","minimum":0,"maximum":1},"w":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"default":1,"type":"number","exclusiveMinimum":0,"maximum":1}},"additionalProperties":false},"rotate":{"default":0,"description":"Clockwise rotation in degrees after cropping. Default 0.","type":"number","enum":[0,90,180,270]},"flip_horizontal":{"default":false,"description":"Flip left to right after rotation.","type":"boolean"},"flip_vertical":{"default":false,"description":"Flip top to bottom after rotation.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/resize-video":{"post":{"tags":["Free API"],"operationId":"try_resize_video","summary":"Resize video, free for the first 10 minutes","description":"Free for the first 10 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 https://audo.ai/api/try/resize-video -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 https://audo.ai/api/try/resize-video -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"ratio":{"default":"9:16","description":"Output aspect ratio. Default 9:16; custom needs width and height.","type":"string","enum":["9:16","1:1","4:5","16:9","4:3","custom"]},"width":{"description":"Custom width in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":7680,"multipleOf":2},"height":{"description":"Custom height in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":4320,"multipleOf":2},"mode":{"default":"fit","description":"fit shows the whole picture with padding; fill crops to cover the frame.","type":"string","enum":["fit","fill"]},"zoom":{"default":1,"description":"Enlarge the picture within the frame, 1 to 10. Default 1.","type":"number","minimum":1,"maximum":10},"position_x":{"default":0.5,"description":"Horizontal alignment in the frame, 0 left to 1 right. Default 0.5.","type":"number","minimum":0,"maximum":1},"position_y":{"default":0.5,"description":"Vertical alignment in the frame, 0 top to 1 bottom. Default 0.5.","type":"number","minimum":0,"maximum":1},"background":{"default":"color","description":"Padding background: solid color or a blurred copy of the video.","type":"string","enum":["color","blur"]},"color":{"default":"#000000","description":"Background color in six-digit hex, such as #ffffff.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"description":"Background blur amount, 1 to 100. Default 20.","type":"number","minimum":1,"maximum":100}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"ratio":{"default":"9:16","description":"Output aspect ratio. Default 9:16; custom needs width and height.","type":"string","enum":["9:16","1:1","4:5","16:9","4:3","custom"]},"width":{"description":"Custom width in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":7680,"multipleOf":2},"height":{"description":"Custom height in even pixels. Needs ratio custom.","type":"integer","minimum":2,"maximum":4320,"multipleOf":2},"mode":{"default":"fit","description":"fit shows the whole picture with padding; fill crops to cover the frame.","type":"string","enum":["fit","fill"]},"zoom":{"default":1,"description":"Enlarge the picture within the frame, 1 to 10. Default 1.","type":"number","minimum":1,"maximum":10},"position_x":{"default":0.5,"description":"Horizontal alignment in the frame, 0 left to 1 right. Default 0.5.","type":"number","minimum":0,"maximum":1},"position_y":{"default":0.5,"description":"Vertical alignment in the frame, 0 top to 1 bottom. Default 0.5.","type":"number","minimum":0,"maximum":1},"background":{"default":"color","description":"Padding background: solid color or a blurred copy of the video.","type":"string","enum":["color","blur"]},"color":{"default":"#000000","description":"Background color in six-digit hex, such as #ffffff.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"description":"Background blur amount, 1 to 100. Default 20.","type":"number","minimum":1,"maximum":100}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/reverse-video":{"post":{"tags":["Free API"],"operationId":"try_reverse_video","summary":"Reverse video, free for the first 10 minutes","description":"Free for the first 10 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 https://audo.ai/api/try/reverse-video -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 https://audo.ai/api/try/reverse-video -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"range":{"description":"Only this range, [start,end] in seconds, with decimals for exact frames. Default the whole video.","type":"array","prefixItems":[{"type":"number","minimum":0},{"type":"number","exclusiveMinimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2},"boomerang":{"default":false,"description":"Play the range forward then backward. Default false.","type":"boolean"},"audio":{"default":"reversed","description":"Sound on the backward leg: reversed, muted, or kept playing forward. Default reversed.","type":"string","enum":["reversed","muted","kept"]}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"range":{"description":"Only this range, [start,end] in seconds, with decimals for exact frames. Default the whole video.","type":"array","prefixItems":[{"type":"number","minimum":0},{"type":"number","exclusiveMinimum":0,"maximum":36000}],"items":false,"minItems":2,"maxItems":2},"boomerang":{"default":false,"description":"Play the range forward then backward. Default false.","type":"boolean"},"audio":{"default":"reversed","description":"Sound on the backward leg: reversed, muted, or kept playing forward. Default reversed.","type":"string","enum":["reversed","muted","kept"]}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/loop-video":{"post":{"tags":["Free API"],"operationId":"try_loop_video","summary":"Loop video, free for the first 10 minutes","description":"Free for the first 10 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 https://audo.ai/api/try/loop-video -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 https://audo.ai/api/try/loop-video -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true allows only loops whose complete output is at most 10 minutes, within the daily free quota. Longer loops need credits; set free false to pay for the whole result.","type":"boolean"},"times":{"description":"Number of repeats, 2 to 50. Default 2 when to_seconds is absent.","type":"integer","minimum":2,"maximum":50},"to_seconds":{"description":"Loop to this exact duration instead of a repeat count, up to 10 hours.","type":"number","exclusiveMinimum":0,"maximum":36000},"crossfade_ms":{"default":0,"description":"Picture and sound crossfade at each seam, in milliseconds. Must be shorter than half the input.","type":"integer","minimum":0,"maximum":5000}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true allows only loops whose complete output is at most 10 minutes, within the daily free quota. Longer loops need credits; set free false to pay for the whole result.","type":"boolean"},"times":{"description":"Number of repeats, 2 to 50. Default 2 when to_seconds is absent.","type":"integer","minimum":2,"maximum":50},"to_seconds":{"description":"Loop to this exact duration instead of a repeat count, up to 10 hours.","type":"number","exclusiveMinimum":0,"maximum":36000},"crossfade_ms":{"default":0,"description":"Picture and sound crossfade at each seam, in milliseconds. Must be shorter than half the input.","type":"integer","minimum":0,"maximum":5000}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/get-frame":{"post":{"tags":["Free API"],"operationId":"try_get_frame","summary":"Grab a frame, free for the whole file","description":"Free for the whole file of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01 per job, 1 credit per job; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 -F time_seconds=1 https://audo.ai/api/try/get-frame -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 -F time_seconds=1 https://audo.ai/api/try/get-frame -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"time_seconds":{"description":"Time of the frame in seconds. Leave out with frame_number to use the first frame.","type":"number","minimum":0,"maximum":36000},"frame_number":{"description":"Zero-based decoded frame number, instead of time_seconds.","type":"integer","minimum":0,"maximum":10000000},"format":{"default":"png","description":"The image format. Default png.","type":"string","enum":["png","jpg"]},"width":{"description":"Image width in pixels, keeping its proportions. Default original width.","type":"integer","minimum":1,"maximum":7680},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only one frame, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise one frame free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"time_seconds":{"description":"Time of the frame in seconds. Leave out with frame_number to use the first frame.","type":"number","minimum":0,"maximum":36000},"frame_number":{"description":"Zero-based decoded frame number, instead of time_seconds.","type":"integer","minimum":0,"maximum":10000000},"format":{"default":"png","description":"The image format. Default png.","type":"string","enum":["png","jpg"]},"width":{"description":"Image width in pixels, keeping its proportions. Default original width.","type":"integer","minimum":1,"maximum":7680},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only one frame, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise one frame free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/video-to-gif":{"post":{"tags":["Free API"],"operationId":"try_video_to_gif","summary":"Video to GIF, free for the first 5 minutes","description":"Free for the first 5 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 -F start_seconds=1 -F end_seconds=3 https://audo.ai/api/try/video-to-gif -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 -F start_seconds=1 -F end_seconds=3 https://audo.ai/api/try/video-to-gif -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"start_seconds":{"default":0,"description":"Start of the range in seconds. Default 0.","type":"number","minimum":0,"maximum":36000},"end_seconds":{"description":"End of the range in seconds; choose up to 5 minutes. Default end of the video, refused if that range is longer than 5 minutes.","type":"number","exclusiveMinimum":0,"maximum":36000},"fps":{"default":15,"description":"Frames per second, 5 to 30. Default 15.","type":"integer","minimum":5,"maximum":30},"width":{"default":480,"description":"Width in pixels, keeping proportions. 120 to 1280. Default 480.","type":"integer","minimum":120,"maximum":1280},"loop":{"default":0,"description":"Repeat count: 0 repeats forever. Default 0.","type":"integer","minimum":0,"maximum":65535},"format":{"default":"gif","description":"Animated GIF or animated WebP. Default gif.","type":"string","enum":["gif","webp"]},"max_mb":{"description":"Target size in decimal MB. Estimates smaller starting settings and tries at most 3 encodes, lowering fps, width, and GIF colours; a target that cannot be met fails without a charge.","type":"number","minimum":0.01,"maximum":500},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the selected range, up to 5 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the selected range, up to 5 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"start_seconds":{"default":0,"description":"Start of the range in seconds. Default 0.","type":"number","minimum":0,"maximum":36000},"end_seconds":{"description":"End of the range in seconds; choose up to 5 minutes. Default end of the video, refused if that range is longer than 5 minutes.","type":"number","exclusiveMinimum":0,"maximum":36000},"fps":{"default":15,"description":"Frames per second, 5 to 30. Default 15.","type":"integer","minimum":5,"maximum":30},"width":{"default":480,"description":"Width in pixels, keeping proportions. 120 to 1280. Default 480.","type":"integer","minimum":120,"maximum":1280},"loop":{"default":0,"description":"Repeat count: 0 repeats forever. Default 0.","type":"integer","minimum":0,"maximum":65535},"format":{"default":"gif","description":"Animated GIF or animated WebP. Default gif.","type":"string","enum":["gif","webp"]},"max_mb":{"description":"Target size in decimal MB. Estimates smaller starting settings and tries at most 3 encodes, lowering fps, width, and GIF colours; a target that cannot be met fails without a charge.","type":"number","minimum":0.01,"maximum":500},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the selected range, up to 5 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the selected range, up to 5 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/add-captions":{"post":{"tags":["Free API"],"operationId":"try_add_captions","summary":"Add captions, free for the first 2 minutes","description":"Free for the first 2 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.04/min, 4 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 -F 'captions={\"version\":1,\"preset\":\"karaoke\"}' https://audo.ai/api/try/add-captions -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 -F 'captions={\"version\":1,\"preset\":\"karaoke\"}' https://audo.ai/api/try/add-captions -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"captions":{"default":{"version":1,"outputs":["video","srt","vtt","txt"]},"description":"Caption document v1: preset plus style/layout overrides, language, optional timed words, edited text, and outputs. Times are milliseconds; position and font sizes are fractions of the video frame.","type":"object","properties":{"version":{"default":1,"type":"number","const":1},"preset":{"type":"string","enum":["bold_keywords","big_bounce","yellow_keyword","green_word","pop","one_word","one_word_yellow","comic","arcade","retro","karaoke","karaoke_blue","fill_in","box","green_box","highlighter","glow","neon","slide_up","soft_lowercase","sunset","ocean","gold","clean","subtitles","yellow_subtitles","minimal","quiet_caps","cinematic","soft_fade","bubble","black_pill","speaker_colors","lower_third","news","two_lines"]},"style_id":{"description":"Your saved caption style ID from list_caption_presets or /api/v1/caption-styles. Its look replaces the preset's look; explicit style/layout overrides still win.","type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"words":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}},"text":{"description":"Edited script. Aligns against words when supplied, otherwise against a new transcript. Omit to keep the supplied word times.","type":"string","minLength":1,"maxLength":2097152},"language":{"type":"string","pattern":"^[a-z]{2,3}$"},"auto_keywords":{"description":"Pick emphasis words automatically. Explicit style.keywords wins.","type":"boolean"},"max_per_caption":{"description":"Automatic emphasis words per caption, default 1.","type":"integer","minimum":1,"maximum":3},"auto_emoji":{"description":"Add a few supported Noto emoji, avoiding sensitive topics.","type":"boolean"},"density":{"description":"Automatic emoji per minute: up to 2, 4 (default), or 6.","type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string","maxLength":35,"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"},"bilingual":{"description":"Keep the original line above the translation. Requires translate_to.","type":"boolean"},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"outputs":{"default":["video","srt","vtt","txt"],"minItems":1,"maxItems":7,"type":"array","items":{"type":"string","enum":["video","overlay_webm","overlay_prores","srt","vtt","ass","txt"]}}},"additionalProperties":false},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"captions":{"default":{"version":1,"outputs":["video","srt","vtt","txt"]},"description":"Caption document v1: preset plus style/layout overrides, language, optional timed words, edited text, and outputs. Times are milliseconds; position and font sizes are fractions of the video frame.","type":"object","properties":{"version":{"default":1,"type":"number","const":1},"preset":{"type":"string","enum":["bold_keywords","big_bounce","yellow_keyword","green_word","pop","one_word","one_word_yellow","comic","arcade","retro","karaoke","karaoke_blue","fill_in","box","green_box","highlighter","glow","neon","slide_up","soft_lowercase","sunset","ocean","gold","clean","subtitles","yellow_subtitles","minimal","quiet_caps","cinematic","soft_fade","bubble","black_pill","speaker_colors","lower_third","news","two_lines"]},"style_id":{"description":"Your saved caption style ID from list_caption_presets or /api/v1/caption-styles. Its look replaces the preset's look; explicit style/layout overrides still win.","type":"string","maxLength":100,"pattern":"^style_[A-Za-z0-9]+$"},"words":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}},"text":{"description":"Edited script. Aligns against words when supplied, otherwise against a new transcript. Omit to keep the supplied word times.","type":"string","minLength":1,"maxLength":2097152},"language":{"type":"string","pattern":"^[a-z]{2,3}$"},"auto_keywords":{"description":"Pick emphasis words automatically. Explicit style.keywords wins.","type":"boolean"},"max_per_caption":{"description":"Automatic emphasis words per caption, default 1.","type":"integer","minimum":1,"maximum":3},"auto_emoji":{"description":"Add a few supported Noto emoji, avoiding sensitive topics.","type":"boolean"},"density":{"description":"Automatic emoji per minute: up to 2, 4 (default), or 6.","type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string","maxLength":35,"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"},"bilingual":{"description":"Keep the original line above the translation. Requires translate_to.","type":"boolean"},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"outputs":{"default":["video","srt","vtt","txt"],"minItems":1,"maxItems":7,"type":"array","items":{"type":"string","enum":["video","overlay_webm","overlay_prores","srt","vtt","ass","txt"]}}},"additionalProperties":false},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/audio-to-video":{"post":{"tags":["Free API"],"operationId":"try_audio_to_video","summary":"Audio to video, free for the first 2 minutes","description":"Free for the first 2 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.02/min, 2 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@podcast.mp3 -F preset=podcast_square https://audo.ai/api/try/audio-to-video -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@podcast.mp3 -F preset=podcast_square https://audo.ai/api/try/audio-to-video -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"cover":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"cover_url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"cover_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"preset":{"default":"podcast_square","description":"A built-in look; list_audiogram_presets returns complete documents. Explicit audiogram replaces it.","type":"string","enum":["podcast_square","shorts","minimal_line","sunset","ring","bold"]},"audiogram":{"description":"Complete AudiogramDocument v1. Positions and sizes are normalized. Includes optional already timed caption document.","type":"object","properties":{"version":{"type":"number","const":1},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["1:1","9:16","16:9","4:5"]},"width":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"height":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"fps":{"type":"integer","minimum":1,"maximum":60}},"required":["ratio","width","height","fps"],"additionalProperties":false},"background":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"color"},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["type","color"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"gradient"},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"angle":{"type":"number","minimum":-360,"maximum":360}},"required":["type","colors","angle"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"fit":{"type":"string","enum":["fit","fill"]},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"blur":{"type":"number","minimum":0,"maximum":0.1}},"required":["type","fit","color","blur"],"additionalProperties":false}]},"waveform":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"style":{"type":"string","enum":["bars","line","mirror","circle","dots"]},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"thickness":{"type":"number","minimum":0.001,"maximum":0.1},"gap":{"type":"number","minimum":0.001,"maximum":0.1},"smoothing":{"type":"number","minimum":0,"maximum":1},"sensitivity":{"type":"number","minimum":0,"maximum":5}},"required":["x","y","width","height","style","colors","thickness","gap","smoothing","sensitivity"],"additionalProperties":false},"cover":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"radius":{"type":"number","minimum":0,"maximum":0.5},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false}},"required":["x","y","width","height","radius","shadow"],"additionalProperties":false},{"type":"null"}]},"title":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"subtitle":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"progress":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"background":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"radius":{"type":"number","minimum":0,"maximum":0.5}},"required":["x","y","width","height","color","background","radius"],"additionalProperties":false},{"type":"null"}]},"captions":{"type":"object","properties":{"version":{"type":"number","const":1},"words":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","breakOnPauseMs","breakOnSentence","combineWithinMs","minDurationMs","maxDurationMs","lingerMs","offsetMs","uppercase","hidePunctuation"],"additionalProperties":false},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}}},"required":["version","words","layout","style"],"additionalProperties":false}},"required":["version","output","background","waveform","cover","title","subtitle","progress"],"additionalProperties":false},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"cover_url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"cover_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"preset":{"default":"podcast_square","description":"A built-in look; list_audiogram_presets returns complete documents. Explicit audiogram replaces it.","type":"string","enum":["podcast_square","shorts","minimal_line","sunset","ring","bold"]},"audiogram":{"description":"Complete AudiogramDocument v1. Positions and sizes are normalized. Includes optional already timed caption document.","type":"object","properties":{"version":{"type":"number","const":1},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["1:1","9:16","16:9","4:5"]},"width":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"height":{"type":"integer","minimum":144,"maximum":2160,"multipleOf":2},"fps":{"type":"integer","minimum":1,"maximum":60}},"required":["ratio","width","height","fps"],"additionalProperties":false},"background":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"color"},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["type","color"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"gradient"},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"angle":{"type":"number","minimum":-360,"maximum":360}},"required":["type","colors","angle"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"fit":{"type":"string","enum":["fit","fill"]},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"blur":{"type":"number","minimum":0,"maximum":0.1}},"required":["type","fit","color","blur"],"additionalProperties":false}]},"waveform":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"style":{"type":"string","enum":["bars","line","mirror","circle","dots"]},"colors":{"type":"array","prefixItems":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}],"items":false,"minItems":2,"maxItems":2},"thickness":{"type":"number","minimum":0.001,"maximum":0.1},"gap":{"type":"number","minimum":0.001,"maximum":0.1},"smoothing":{"type":"number","minimum":0,"maximum":1},"sensitivity":{"type":"number","minimum":0,"maximum":5}},"required":["x","y","width","height","style","colors","thickness","gap","smoothing","sensitivity"],"additionalProperties":false},"cover":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"radius":{"type":"number","minimum":0,"maximum":0.5},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false}},"required":["x","y","width","height","radius","shadow"],"additionalProperties":false},{"type":"null"}]},"title":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"subtitle":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["text","font","weight","size","color","x","y"],"additionalProperties":false},{"type":"null"}]},"progress":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","minimum":0.001,"maximum":1},"height":{"type":"number","minimum":0.001,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"background":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"radius":{"type":"number","minimum":0,"maximum":0.5}},"required":["x","y","width","height","color","background","radius"],"additionalProperties":false},{"type":"null"}]},"captions":{"type":"object","properties":{"version":{"type":"number","const":1},"words":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"edited":{"type":"boolean"},"censor":{"type":"boolean"},"page":{"type":"string","enum":["new","join"]}},"required":["text","start_ms","end_ms"]}},"layout":{"type":"object","properties":{"maxWordsPerLine":{"type":"integer","minimum":1,"maximum":100},"maxCharsPerLine":{"type":"integer","minimum":1,"maximum":1000},"linesPerPage":{"type":"integer","minimum":1,"maximum":10},"breakOnPauseMs":{"type":"number","minimum":0,"maximum":86400000},"breakOnSentence":{"type":"boolean"},"combineWithinMs":{"type":"number","minimum":0,"maximum":5000},"minDurationMs":{"type":"number","minimum":0,"maximum":86400000},"maxDurationMs":{"type":"number","minimum":1,"maximum":86400000},"lingerMs":{"type":"number","minimum":0,"maximum":86400000},"offsetMs":{"type":"number","minimum":-86400000,"maximum":86400000},"uppercase":{"type":"boolean"},"lowercase":{"type":"boolean"},"hidePunctuation":{"type":"boolean"}},"required":["maxWordsPerLine","maxCharsPerLine","linesPerPage","breakOnPauseMs","breakOnSentence","combineWithinMs","minDurationMs","maxDurationMs","lingerMs","offsetMs","uppercase","hidePunctuation"],"additionalProperties":false},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"required":["font","fill","activeColor","keywordColors","keywords","stroke","shadow","lineBox","activeBox","position","animation","emoji"],"additionalProperties":false},"overrides":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"style":{"type":"object","properties":{"font":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[\\p{L}\\p{N} _-]+$"},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"letterSpacing":{"type":"number","minimum":-0.02,"maximum":0.1},"lineHeight":{"type":"number","minimum":1,"maximum":3}},"required":["family","weight","size","letterSpacing","lineHeight"],"additionalProperties":false},"fill":{"anyOf":[{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},{"type":"object","properties":{"angle":{"type":"number","minimum":-360,"maximum":360},"stops":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"object","properties":{"offset":{"type":"number","minimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["offset","color"],"additionalProperties":false}}},"required":["angle","stops"],"additionalProperties":false}]},"activeColor":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"keywordColors":{"minItems":2,"maxItems":3,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"keywords":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"colorIndex":{"type":"integer","minimum":0,"maximum":2}},"required":["wordIndex","colorIndex"],"additionalProperties":false}},"stroke":{"type":"object","properties":{"width":{"type":"number","minimum":0,"maximum":0.03},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["width","color"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"lineBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"activeBox":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.2},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"required":["x","y","align","safeZone","maxWidth"],"additionalProperties":false},"animation":{"type":"object","properties":{"word":{"type":"string","enum":["none","karaoke_fill","active_color","active_box","pop","one_word"]},"popScale":{"type":"number","minimum":1,"maximum":2},"popDurationMs":{"type":"number","minimum":0,"maximum":2000},"transition":{"type":"string","enum":["none","fade","slide"]},"transitionMs":{"type":"number","minimum":0,"maximum":2000}},"required":["word","popScale","popDurationMs","transition","transitionMs"],"additionalProperties":false},"emoji":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"wordIndex":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji":{"type":"string","minLength":1,"maxLength":32},"placement":{"type":"string","enum":["after","above"]}},"required":["wordIndex","emoji","placement"],"additionalProperties":false}},"secondLine":{"type":"object","properties":{"sizeFactor":{"type":"number","minimum":0.25,"maximum":1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"opacity":{"type":"number","minimum":0,"maximum":1}},"required":["sizeFactor","color","opacity"],"additionalProperties":false},"speakerColors":{"maxItems":16,"type":"array","items":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}}},"additionalProperties":false},"position":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"align":{"type":"string","enum":["left","center","right"]},"safeZone":{"type":"string","enum":["none","tiktok","reels","shorts"]},"maxWidth":{"type":"number","minimum":0.05,"maximum":1}},"additionalProperties":false}},"additionalProperties":false}},"pages":{"maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"wordStart":{"type":"integer","minimum":0,"maximum":9007199254740991},"wordEnd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"secondLine":{"minItems":1,"maxItems":100000,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000},"start_ms":{"type":"number","minimum":0,"maximum":86400000},"end_ms":{"type":"number","minimum":0,"maximum":86400000},"speaker":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["text","start_ms","end_ms"],"additionalProperties":false}}},"required":["start_ms","end_ms","wordStart","wordEnd"],"additionalProperties":false}}},"required":["version","words","layout","style"],"additionalProperties":false}},"required":["version","output","background","waveform","cover","title","subtitle","progress"],"additionalProperties":false},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/add-overlay":{"post":{"tags":["Free API"],"operationId":"try_add_overlay","summary":"Add text and logo, free for the first 10 minutes","description":"Free for the first 10 minutes of the file, 10 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 -F 'overlay={\"version\":1,\"items\":[{\"type\":\"logo\",\"position\":{\"anchor\":\"bottom_right\"},\"scale\":0.15,\"opacity\":1,\"margin\":0.04,\"start_ms\":0,\"end_ms\":3000}]}' -F logo=@logo.png https://audo.ai/api/try/add-overlay -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 -F 'overlay={\"version\":1,\"items\":[{\"type\":\"logo\",\"position\":{\"anchor\":\"bottom_right\"},\"scale\":0.15,\"opacity\":1,\"margin\":0.04,\"start_ms\":0,\"end_ms\":3000}]}' -F logo=@logo.png https://audo.ai/api/try/add-overlay -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"logo":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"logo_url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"logo_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"overlay":{"type":"object","properties":{"version":{"type":"number","const":1},"items":{"minItems":1,"maxItems":100,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"margin":{"type":"number","minimum":0,"maximum":0.4},"stroke":{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"width":{"type":"number","minimum":0,"maximum":0.03}},"required":["color","width"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"background":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.1},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","text","font","weight","size","color","start_ms","end_ms","position","margin","stroke","shadow","background","animation"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"logo"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"scale":{"type":"number","minimum":0.01,"maximum":1},"opacity":{"type":"number","minimum":0,"maximum":1},"margin":{"type":"number","minimum":0,"maximum":0.4},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","start_ms","end_ms","position","scale","opacity","margin"],"additionalProperties":false}]}}},"required":["version","items"],"additionalProperties":false,"description":"OverlayDocument v1: timed text and logo items; end_ms is exclusive. Positions are item centers, or a nine-grid anchor with margin. Sizes use frame height; logo scale uses frame width."},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"required":["overlay"],"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"logo_url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"logo_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"overlay":{"type":"object","properties":{"version":{"type":"number","const":1},"items":{"minItems":1,"maxItems":100,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string","minLength":1,"maxLength":2000},"font":{"type":"string","enum":["Inter","Montserrat","Poppins","Bebas Neue","Anton","Oswald","Archivo Black","Bangers","Roboto"]},"weight":{"type":"integer","minimum":100,"maximum":900},"size":{"type":"number","minimum":0.005,"maximum":0.3},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"margin":{"type":"number","minimum":0,"maximum":0.4},"stroke":{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"width":{"type":"number","minimum":0,"maximum":0.03}},"required":["color","width"],"additionalProperties":false},"shadow":{"type":"object","properties":{"x":{"type":"number","minimum":-0.1,"maximum":0.1},"y":{"type":"number","minimum":-0.1,"maximum":0.1},"blur":{"type":"number","minimum":0,"maximum":0.1},"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"}},"required":["x","y","blur","color"],"additionalProperties":false},"background":{"anyOf":[{"type":"object","properties":{"color":{"type":"string","pattern":"^#[\\da-f]{6}([\\da-f]{2})?$"},"padding":{"type":"number","minimum":0,"maximum":0.1},"radius":{"type":"number","minimum":0,"maximum":0.2}},"required":["color","padding","radius"],"additionalProperties":false},{"type":"null"}]},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","text","font","weight","size","color","start_ms","end_ms","position","margin","stroke","shadow","background","animation"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"logo"},"start_ms":{"type":"number","minimum":0,"maximum":36000000},"end_ms":{"type":"number","exclusiveMinimum":0,"maximum":36000000},"position":{"anyOf":[{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}},"required":["x","y"],"additionalProperties":false},{"type":"object","properties":{"anchor":{"type":"string","enum":["top_left","top_center","top_right","center_left","center","center_right","bottom_left","bottom_center","bottom_right"]}},"required":["anchor"],"additionalProperties":false}]},"scale":{"type":"number","minimum":0.01,"maximum":1},"opacity":{"type":"number","minimum":0,"maximum":1},"margin":{"type":"number","minimum":0,"maximum":0.4},"animation":{"type":"object","properties":{"in":{"type":"string","enum":["none","fade","slide","pop"]},"out":{"type":"string","enum":["none","fade","slide","pop"]},"duration_ms":{"type":"number","minimum":0,"maximum":5000}},"required":["in","out","duration_ms"],"additionalProperties":false}},"required":["type","start_ms","end_ms","position","scale","opacity","margin"],"additionalProperties":false}]}}},"required":["version","items"],"additionalProperties":false,"description":"OverlayDocument v1: timed text and logo items; end_ms is exclusive. Positions are item centers, or a nine-grid anchor with margin. Sizes use frame height; logo scale uses frame width."},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 10 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 10 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"}},"additionalProperties":false,"required":["overlay"],"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/reframe-plan":{"post":{"tags":["Free API"],"operationId":"try_reframe_plan","summary":"Plan a reframe, free for the first 2 minutes","description":"Free for the first 2 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.01/min, 1 credit a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 -F ratio=9:16 https://audo.ai/api/try/reframe-plan -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 -F ratio=9:16 https://audo.ai/api/try/reframe-plan -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"ratio":{"default":"9:16","description":"Output ratio. Default 9:16.","type":"string","enum":["9:16","1:1","4:5","16:9"]},"output":{"description":"Explicit even pixel dimensions and ratio; overrides ratio.","type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"layout":{"default":"fill","description":"Default layout for detected scenes. Every panel remains editable in the returned plan.","type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"settings":{"default":{"subject":"active_speaker","smoothing":0.7,"min_switch_ms":1500,"snap_to_center":true,"scene_detection":true,"scene_threshold":10},"description":"Tracking settings: subject, smoothing 0 to 1, min_switch_ms, snap_to_center, scene_detection and scene_threshold 0 to 100.","type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"background":{"default":{"mode":"blur","color":"#000000","blur":20},"description":"Padding behind panels: blur or solid color, hex color, and blur strength.","type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"description":"Keep this speaker when speaker turns can associate them with a face.","type":"integer","minimum":0,"maximum":9007199254740991},"speaker_turns":{"description":"Optional existing diarize turns in milliseconds. Otherwise active_speaker requests speaker labels when available.","maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["start_ms","end_ms","speaker"],"additionalProperties":false}}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"ratio":{"default":"9:16","description":"Output ratio. Default 9:16.","type":"string","enum":["9:16","1:1","4:5","16:9"]},"output":{"description":"Explicit even pixel dimensions and ratio; overrides ratio.","type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"layout":{"default":"fill","description":"Default layout for detected scenes. Every panel remains editable in the returned plan.","type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"settings":{"default":{"subject":"active_speaker","smoothing":0.7,"min_switch_ms":1500,"snap_to_center":true,"scene_detection":true,"scene_threshold":10},"description":"Tracking settings: subject, smoothing 0 to 1, min_switch_ms, snap_to_center, scene_detection and scene_threshold 0 to 100.","type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"background":{"default":{"mode":"blur","color":"#000000","blur":20},"description":"Padding behind panels: blur or solid color, hex color, and blur strength.","type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"description":"Keep this speaker when speaker turns can associate them with a face.","type":"integer","minimum":0,"maximum":9007199254740991},"speaker_turns":{"description":"Optional existing diarize turns in milliseconds. Otherwise active_speaker requests speaker labels when available.","maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["start_ms","end_ms","speaker"],"additionalProperties":false}}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/api/try/reframe-video":{"post":{"tags":["Free API"],"operationId":"try_reframe_video","summary":"Reframe video, free for the first 2 minutes","description":"Free for the first 2 minutes of the file, 3 times a day, without an account. With an API key (Authorization: Bearer <key>), the same request processes the whole file with credits ($0.03/min, 3 credits a minute; 1 credit is 1 US cent) when the balance covers it, and otherwise the free part. free=true always asks for the free part, and free=false always for the whole file. With exhausted quota, free=true returns 429; omitted free with insufficient balance returns 402. free=false with insufficient balance returns 402 with no fallback. Use an explicitly approved positive max_credits for paid automation. A request takes up to 100 MB of files either way (without a key, what its links fetch counts too), and links are fetched one at a time; upload a larger file in parts with POST /api/v1/files, then start the job with POST /api/v1/jobs. With an API key, an Idempotency-Key header makes a repeated request return the first one's job instead of starting another. Examples save unclassified response.body and response.headers: branch on HTTP status and Content-Type before naming media. See /docs/api#responses for the complete response client. Cut examples explicitly remove the named ranges; mode=keep retains them instead. The request waits up to about 30 seconds for the result. A job that takes longer, or a request with Prefer: respond-async, gets 202 with the job's link to check on. \n\n    curl -F file=@clip.mp4 -F ratio=9:16 https://audo.ai/api/try/reframe-video -D response.headers -o response.body","security":[{},{"apiKey":[]}],"x-codeSamples":[{"lang":"Shell","label":"curl","source":"curl -F file=@clip.mp4 -F ratio=9:16 https://audo.ai/api/try/reframe-video -D response.headers -o response.body"}],"parameters":[{"name":"Prefer","in":"header","required":false,"description":"respond-async returns 202 as soon as the job has started","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"With an API key only: a new key, such as a UUID, for each request. Sending the same key again returns the same job (keys are per account)","schema":{"type":"string","maxLength":200}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","description":"The file"},"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"ratio":{"default":"9:16","description":"Output ratio. Default 9:16.","type":"string","enum":["9:16","1:1","4:5","16:9"]},"output":{"description":"Explicit even pixel dimensions and ratio; overrides ratio.","type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"layout":{"default":"fill","description":"Default layout for detected scenes. Every panel remains editable in the returned plan.","type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"settings":{"default":{"subject":"active_speaker","smoothing":0.7,"min_switch_ms":1500,"snap_to_center":true,"scene_detection":true,"scene_threshold":10},"description":"Tracking settings: subject, smoothing 0 to 1, min_switch_ms, snap_to_center, scene_detection and scene_threshold 0 to 100.","type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"background":{"default":{"mode":"blur","color":"#000000","blur":20},"description":"Padding behind panels: blur or solid color, hex color, and blur strength.","type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"description":"Keep this speaker when speaker turns can associate them with a face.","type":"integer","minimum":0,"maximum":9007199254740991},"speaker_turns":{"description":"Optional existing diarize turns in milliseconds. Otherwise active_speaker requests speaker labels when available.","maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["start_ms","end_ms","speaker"],"additionalProperties":false}},"plan_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"An account-owned ReframePlan JSON file, instead of inline plan; useful for large edited documents."},"plan":{"description":"Edited v1 plan: skips analysis and renders its paths, placements, backgrounds and easings exactly. Costs 1 credit/min instead of 3.","type":"object","properties":{"version":{"type":"number","const":1},"source":{"type":"object","properties":{"width":{"type":"integer","minimum":2,"maximum":16384},"height":{"type":"integer","minimum":2,"maximum":16384},"fps":{"type":"number","exclusiveMinimum":0,"maximum":240},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000}},"required":["width","height","fps","duration_ms"],"additionalProperties":false},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"settings":{"type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"scenes":{"minItems":1,"maxItems":10000,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"},"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"layout":{"type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"panels":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["crop_path","placement"],"additionalProperties":false}},"background":{"type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["crop_path","placement","start_ms","end_ms","layout","panels","background"],"additionalProperties":false}},"speakers":{"maxItems":40000,"type":"array","items":{"type":"object","properties":{"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["speaker","subject_id"],"additionalProperties":false}}},"required":["version","source","duration_ms","output","settings","scenes","speakers"],"additionalProperties":false}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["file"]},{"required":["url"]},{"required":["file_token"]}]}]}},"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public HTTPS link that Audo fetches"},"file_token":{"type":"string","description":"Or the fileToken of an upload from POST /api/try/uploads"},"max_credits":{"description":"With an API key only. The most this job may cost, in credits (1 credit is 1 US cent), such as 200. A job that would cost more doesn't start.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"free":{"description":"With an API key only. true processes only the first 2 minutes, at no cost, a few times a day. false always processes the whole file with credits. Left out, the whole file when the balance covers it, otherwise the first 2 minutes free if quota is available (otherwise insufficient_balance / 402). true with exhausted quota returns free_limit_reached / 429; false with insufficient balance returns 402, without fallback.","type":"boolean"},"ratio":{"default":"9:16","description":"Output ratio. Default 9:16.","type":"string","enum":["9:16","1:1","4:5","16:9"]},"output":{"description":"Explicit even pixel dimensions and ratio; overrides ratio.","type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"layout":{"default":"fill","description":"Default layout for detected scenes. Every panel remains editable in the returned plan.","type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"settings":{"default":{"subject":"active_speaker","smoothing":0.7,"min_switch_ms":1500,"snap_to_center":true,"scene_detection":true,"scene_threshold":10},"description":"Tracking settings: subject, smoothing 0 to 1, min_switch_ms, snap_to_center, scene_detection and scene_threshold 0 to 100.","type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"background":{"default":{"mode":"blur","color":"#000000","blur":20},"description":"Padding behind panels: blur or solid color, hex color, and blur strength.","type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"description":"Keep this speaker when speaker turns can associate them with a face.","type":"integer","minimum":0,"maximum":9007199254740991},"speaker_turns":{"description":"Optional existing diarize turns in milliseconds. Otherwise active_speaker requests speaker labels when available.","maxItems":100000,"type":"array","items":{"type":"object","properties":{"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["start_ms","end_ms","speaker"],"additionalProperties":false}},"plan_file_id":{"type":"string","maxLength":100,"pattern":"^file_[A-Za-z0-9]+$","description":"An account-owned ReframePlan JSON file, instead of inline plan; useful for large edited documents."},"plan":{"description":"Edited v1 plan: skips analysis and renders its paths, placements, backgrounds and easings exactly. Costs 1 credit/min instead of 3.","type":"object","properties":{"version":{"type":"number","const":1},"source":{"type":"object","properties":{"width":{"type":"integer","minimum":2,"maximum":16384},"height":{"type":"integer","minimum":2,"maximum":16384},"fps":{"type":"number","exclusiveMinimum":0,"maximum":240},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000}},"required":["width","height","fps","duration_ms"],"additionalProperties":false},"duration_ms":{"type":"integer","exclusiveMinimum":0,"maximum":36000000},"output":{"type":"object","properties":{"ratio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"width":{"type":"integer","minimum":2,"maximum":3840},"height":{"type":"integer","minimum":2,"maximum":3840}},"required":["ratio","width","height"],"additionalProperties":false},"settings":{"type":"object","properties":{"subject":{"default":"active_speaker","type":"string","enum":["active_speaker","largest_face","center","manual"]},"smoothing":{"default":0.7,"type":"number","minimum":0,"maximum":1},"min_switch_ms":{"default":1500,"type":"integer","minimum":0,"maximum":60000},"snap_to_center":{"default":true,"type":"boolean"},"scene_detection":{"default":true,"type":"boolean"},"scene_threshold":{"default":10,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"scenes":{"minItems":1,"maxItems":10000,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"},"start_ms":{"type":"integer","minimum":0,"maximum":9007199254740991},"end_ms":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"layout":{"type":"string","enum":["fill","fit","split","three","four","screen_facecam","pip"]},"panels":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"crop_path":{"minItems":1,"maxItems":120000,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1},"t_ms":{"type":"integer","minimum":0,"maximum":36000000},"ease":{"type":"string","enum":["linear","ease-in","ease-out","ease-in-out"]}},"required":["x","y","w","h","t_ms","ease"],"additionalProperties":false}},"placement":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","exclusiveMinimum":0,"maximum":1},"h":{"type":"number","exclusiveMinimum":0,"maximum":1}},"required":["x","y","w","h"],"additionalProperties":false},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["crop_path","placement"],"additionalProperties":false}},"background":{"type":"object","properties":{"mode":{"default":"blur","type":"string","enum":["blur","color"]},"color":{"default":"#000000","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"blur":{"default":20,"type":"number","minimum":0,"maximum":100}},"additionalProperties":false},"pinned_speaker":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["crop_path","placement","start_ms","end_ms","layout","panels","background"],"additionalProperties":false}},"speakers":{"maxItems":40000,"type":"array","items":{"type":"object","properties":{"speaker":{"type":"integer","minimum":0,"maximum":9007199254740991},"subject_id":{"type":"string","pattern":"^scene_\\d+_face_\\d+$"}},"required":["speaker","subject_id"],"additionalProperties":false}}},"required":["version","source","duration_ms","output","settings","scenes","speakers"],"additionalProperties":false}},"additionalProperties":false,"allOf":[{"oneOf":[{"required":["url"]},{"required":["file_token"]}]}]}}}},"responses":{"200":{"description":"The result file itself (beside it, details such as a time map stay in the job). A job with several audio or video outputs (such as a cut into separate parts) returns the job with download links instead","content":{"audio/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"video/*":{"schema":{"type":"string","contentMediaType":"application/octet-stream"}},"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"202":{"description":"The job is still running. Check on it at the Location header's link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string","enum":["remove_noise","enhance_voice","split_audio","transcribe_audio","align_script","cut_audio","remove_silence","adjust_loudness","convert_audio","join_audio","replace_audio","analyze_audio","remove_fillers","translate_transcript","find_highlights","level_speakers","mix_tracks","change_speed_pitch","find_key_bpm","reverse_audio","mute_video","convert_video","compress_video","crop_video","resize_video","reverse_video","loop_video","get_frame","video_to_gif","add_captions","audio_to_video","add_overlay","reframe_plan","reframe_video"]},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"How much of the job is done, from 0 to 100. It never goes down, and its first part is the time a job usually takes to start"},"stage":{"type":"string","enum":["queued","preparing","processing","finishing","succeeded","failed","cancelled","held"],"description":"Where the job is: queued (not started yet, perhaps behind the account's other running jobs), preparing (getting the file ready), processing (the tool's work), finishing (saving the result), then succeeded, failed, or cancelled; or held (waiting for payment: see finishUrl)"},"estimatedSecondsLeft":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"About how many seconds the job has left, from the file's length and how fast the tool runs, refined as it goes. A rough guide. Null while it's queued, while Audo is busy (waitingForWorker), and once it has ended"},"waitingForWorker":{"default":false,"description":"True while a running job has waited in line longer than a start usually takes: Audo is busy, and the job carries on as soon as there's room. A free job also waits behind paid ones, so it can wait longer; jobs with credits go first","type":"boolean"},"inputFileIds":{"type":"array","items":{"type":"string"},"description":"The main input first"},"outputFileIds":{"type":"array","items":{"type":"string"},"description":"The main output first, once the job succeeds"},"free":{"type":"boolean","description":"A free job processes only the first part of its input, at no cost"},"processedSeconds":{"type":"number","description":"How much of the input the job processes"},"quotedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chargedCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Set when the job succeeds"},"result":{"anyOf":[{"type":"object","properties":{"extras":{"description":"For add_captions: requested extras, resolved defaults, and counts of automatic keyword and emoji picks made. Explicit annotations are not counted.","type":"object","properties":{"auto_keywords":{"type":"boolean"},"max_per_caption":{"type":"integer","minimum":1,"maximum":3},"auto_emoji":{"type":"boolean"},"density":{"type":"string","enum":["low","medium","high"]},"translate_to":{"type":"string"},"bilingual":{"type":"boolean"},"keywords_made":{"type":"integer","minimum":0,"maximum":9007199254740991},"emoji_made":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["auto_keywords","auto_emoji","bilingual","keywords_made","emoji_made"],"additionalProperties":false},"source_transcript_file_id":{"description":"For add_captions: an output transcript with the timed words before this run's translation, after edits and free-part clipping. Reuse as transcript_file_id to restore the source at the plain caption price.","type":"string"}},"additionalProperties":{}},{"type":"null"}],"description":"The tool's details, such as loudness before and after"},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 time"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 time"},{"type":"null"}]},"finishUrl":{"description":"For a free result cut short: the page where the whole file can run, as a new job. Null when the job did the whole file","type":["string","null"]},"statusUrl":{"type":"string","description":"This job's capability link. GET it to check on the job; it works for 1 hour"},"fullPriceCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The price to process the whole input with credits"},"outputs":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"type":["number","null"]},"hasVideo":{"type":"boolean"},"url":{"type":"string","description":"A signed download link"},"expiresAt":{"type":"string","description":"ISO 8601 time"},"fileExpiresAt":{"description":"When Audo deletes the file itself (the link above expires sooner)","type":"string"}},"required":["fileId","filename","contentType","sizeBytes","durationSeconds","hasVideo","url","expiresAt"],"additionalProperties":false},"description":"The outputs with download links, once the job succeeds"},"finishPriceCredits":{"description":"What the whole file costs in credits (1 credit is 1 cent)","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"finishedBy":{"description":"Once someone paid to finish this free run: the whole-file job","anyOf":[{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","held"]},"progress":{"type":"integer","minimum":0,"maximum":100},"statusUrl":{"type":"string","description":"The whole-file job's own status link. GET it until its status is succeeded, then download its outputs"}},"required":["jobId","status","progress","statusUrl"],"additionalProperties":false},{"type":"null"}]},"nextStep":{"description":"What to do next, for an agent","type":"string"}},"required":["id","tool","status","progress","stage","estimatedSecondsLeft","waitingForWorker","inputFileIds","outputFileIds","free","processedSeconds","quotedCredits","chargedCredits","result","error","createdAt","startedAt","finishedAt","statusUrl","fullPriceCredits","outputs"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"429":{"description":"Today's free uses are used up (or 3 runs already wait for payment from this address: rate_limited). The file is still taken and held for payment: details has finishUrl (where the whole file can run), finishPriceCredits, jobId, and statusUrl, whose finishedBy names the whole-file job once paid","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"headers":{"RateLimit-Policy":{"description":"The limits that apply, such as \"free\";q=3;w=86400 (3 free uses a day)","schema":{"type":"string"}},"RateLimit":{"description":"What's left, such as \"free\";r=2;t=41000 (2 left, reset in 41,000 seconds)","schema":{"type":"string"}},"Audo-Processed-Seconds":{"description":"How much of the input the job processes","schema":{"type":"number"}},"Audo-Full-Price-Credits":{"description":"The price to process the whole input with credits","schema":{"type":"integer"}},"Audo-Job-Url":{"description":"The job's link, for its details","schema":{"type":"string"}},"Audo-Finish-Url":{"description":"A free result cut short, returned as the file itself: the link where the whole file can run. The JSON results carry it as finishUrl","schema":{"type":"string"}},"Audo-Finish-Price-Credits":{"description":"With Audo-Finish-Url: what the whole file costs, in credits","schema":{"type":"integer"}}}},"default":{"description":"An error, with what went wrong and what to do next","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"nextAction":{"type":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}}}}