{"info":{"description":"Run any Genbox tool over HTTP. POST multipart/form-data (with files) or an application/json body; the config JSON returned by a run replays it verbatim.","title":"Genbox API","version":"1.0"},"openapi":"3.1.0","paths":{"/api/tools/beat-audio-slicer/run":{"post":{"operationId":"run_beat_audio_slicer","requestBody":{"content":{"application/json":{"schema":{"properties":{"audio":{"description":"MP3 or WAV. Nothing is uploaded anywhere - the file is analysed and cut on the server that runs this page. In a JSON body send a filename or data URI; use multipart/form-data to upload it.","format":"binary","type":"string"},"bitrate":{"default":"320","description":"Used only for MP3 output.","enum":["320","256","192","128"],"type":"string"},"end_seconds":{"default":0,"description":"Second you cut to. 0 means the end of the track.","minimum":0,"multipleOf":0.001,"type":"number"},"fade_in":{"default":0,"description":"0 leaves the start as it is.","maximum":30,"minimum":0,"multipleOf":0.1,"type":"number"},"fade_out":{"default":0,"description":"0 leaves the end as it is. A short fade hides a cut that lands mid-note.","maximum":30,"minimum":0,"multipleOf":0.1,"type":"number"},"filename":{"description":"Leave empty to keep the original name with -beat-cut at the end.","type":"string"},"format":{"default":"same","enum":["same","mp3","wav"],"type":"string"},"normalize":{"description":"Bring the cut to a steady streaming-style level.","type":"string"},"snap":{"default":"4/4","description":"Marks jump to the nearest point of the grid as you drag or type. 4/4 keeps whole beats, which is what most cuts want.","enum":["1/4","2/4","4/4","bar","off"],"type":"string"},"start_seconds":{"default":0,"description":"Second you cut from. Typing a value snaps it to the grid unless snapping is off.","minimum":0,"multipleOf":0.001,"type":"number"},"waveform":{"description":"Drag the two handles to mark the start and the end. Ticks show the detected beat grid; the darker band is what you keep.","type":"string"}},"required":["audio"],"type":"object"}},"multipart/form-data":{"schema":{"properties":{"audio":{"description":"MP3 or WAV. Nothing is uploaded anywhere - the file is analysed and cut on the server that runs this page. Accepts: audio/*,.mp3,.wav,.m4a,.aac,.ogg,.opus,.flac.","format":"binary","type":"string"},"bitrate":{"default":"320","description":"Used only for MP3 output.","enum":["320","256","192","128"],"type":"string"},"end_seconds":{"default":0,"description":"Second you cut to. 0 means the end of the track.","minimum":0,"multipleOf":0.001,"type":"number"},"fade_in":{"default":0,"description":"0 leaves the start as it is.","maximum":30,"minimum":0,"multipleOf":0.1,"type":"number"},"fade_out":{"default":0,"description":"0 leaves the end as it is. A short fade hides a cut that lands mid-note.","maximum":30,"minimum":0,"multipleOf":0.1,"type":"number"},"filename":{"description":"Leave empty to keep the original name with -beat-cut at the end.","type":"string"},"format":{"default":"same","enum":["same","mp3","wav"],"type":"string"},"normalize":{"description":"Bring the cut to a steady streaming-style level.","type":"string"},"snap":{"default":"4/4","description":"Marks jump to the nearest point of the grid as you drag or type. 4/4 keeps whole beats, which is what most cuts want.","enum":["1/4","2/4","4/4","bar","off"],"type":"string"},"start_seconds":{"default":0,"description":"Second you cut from. Typing a value snaps it to the grid unless snapping is off.","minimum":0,"multipleOf":0.001,"type":"number"},"waveform":{"description":"Drag the two handles to mark the start and the end. Ticks show the detected beat grid; the darker band is what you keep.","type":"string"}},"required":["audio"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResult"}}},"description":"Job finished: output files, a ZIP and the replayable config JSON."},"400":{"description":"Invalid or missing input."},"429":{"description":"Rate limited (1 request per minute per IP).","headers":{"Retry-After":{"schema":{"type":"integer"}}}}},"summary":"Cut an MP3 or WAV on the beat and keep the groove"}},"/api/tools/brand-tiles/run":{"post":{"operationId":"run_brand_tiles","requestBody":{"content":{"application/json":{"schema":{"properties":{"accent_color":{"default":"#f5a623","description":"Pills and CTA button.","type":"string"},"btn_size":{"default":100,"description":"Scales the CTA button. 100% = default (50-150%).","maximum":150,"minimum":50,"multipleOf":5,"type":"number"},"category":{"default":"free tools","description":"Short label shown as a pill (optional).","type":"string"},"cta":{"default":"Try it free","type":"string"},"font_size":{"default":100,"description":"Scales every tagline up or down. 100% = default (50-150%).","maximum":150,"minimum":50,"multipleOf":5,"type":"number"},"gen_prompt":{"type":"string"},"library":{"description":"Search by topic (cars, computers, home, office, food, business, brown\u2026). Pick one.","type":"string"},"mirror":{"description":"Flips the background left-to-right, text stays readable. Toggle it with the Mirror button next to Generate in the live preview.","type":"string"},"name":{"default":"Genbox","type":"string"},"overlay_color":{"default":"#06080c","description":"The tint behind the text.","type":"string"},"overlay_mode":{"default":"diagonal_heavy","enum":["left","right","full","bottom","diagonal","diagonal_heavy"],"type":"string"},"overlay_strength":{"default":245,"description":"0 = no tint, 255 = fully solid. Push it up to darken the top-left corner (where the text sits) harder.","maximum":255,"minimum":0,"multipleOf":5,"type":"number"},"photos":{"description":"Optional. One tile per photo. In a JSON body send a filename or data URI; use multipart/form-data to upload it.","format":"binary","type":"string"},"sizes":{"default":"1080 + 600","enum":["1080 + 600","1080 only","600 only"],"type":"string"},"taglines":{"default":"Every graphic tool in one place\nClean files, no AI fingerprints\nFree, no signup","type":"string"},"template":{"description":"Search by tag (pink, blue, light, abstract\u2026), then scroll the strip to browse.","type":"string"},"text_style":{"default":"light","description":"Light text for dark backgrounds, dark text for light ones.","enum":["light","dark"],"type":"string"},"url":{"default":"https://genbox.eu","type":"string"},"wrap_point":{"default":60,"description":"Where the taglines break, as a % of the tile width. 60% = default.","maximum":95,"minimum":20,"multipleOf":5,"type":"number"}},"required":["name","url","taglines"],"type":"object"}},"multipart/form-data":{"schema":{"properties":{"accent_color":{"default":"#f5a623","description":"Pills and CTA button.","type":"string"},"btn_size":{"default":100,"description":"Scales the CTA button. 100% = default (50-150%).","maximum":150,"minimum":50,"multipleOf":5,"type":"number"},"category":{"default":"free tools","description":"Short label shown as a pill (optional).","type":"string"},"cta":{"default":"Try it free","type":"string"},"font_size":{"default":100,"description":"Scales every tagline up or down. 100% = default (50-150%).","maximum":150,"minimum":50,"multipleOf":5,"type":"number"},"gen_prompt":{"type":"string"},"library":{"description":"Search by topic (cars, computers, home, office, food, business, brown\u2026). Pick one.","type":"string"},"mirror":{"description":"Flips the background left-to-right, text stays readable. Toggle it with the Mirror button next to Generate in the live preview.","type":"string"},"name":{"default":"Genbox","type":"string"},"overlay_color":{"default":"#06080c","description":"The tint behind the text.","type":"string"},"overlay_mode":{"default":"diagonal_heavy","enum":["left","right","full","bottom","diagonal","diagonal_heavy"],"type":"string"},"overlay_strength":{"default":245,"description":"0 = no tint, 255 = fully solid. Push it up to darken the top-left corner (where the text sits) harder.","maximum":255,"minimum":0,"multipleOf":5,"type":"number"},"photos":{"items":{"description":"Optional. One tile per photo. Accepts: image/*.","format":"binary","type":"string"},"type":"array"},"sizes":{"default":"1080 + 600","enum":["1080 + 600","1080 only","600 only"],"type":"string"},"taglines":{"default":"Every graphic tool in one place\nClean files, no AI fingerprints\nFree, no signup","type":"string"},"template":{"description":"Search by tag (pink, blue, light, abstract\u2026), then scroll the strip to browse.","type":"string"},"text_style":{"default":"light","description":"Light text for dark backgrounds, dark text for light ones.","enum":["light","dark"],"type":"string"},"url":{"default":"https://genbox.eu","type":"string"},"wrap_point":{"default":60,"description":"Where the taglines break, as a % of the tile width. 60% = default.","maximum":95,"minimum":20,"multipleOf":5,"type":"number"}},"required":["name","url","taglines"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResult"}}},"description":"Job finished: output files, a ZIP and the replayable config JSON."},"400":{"description":"Invalid or missing input."},"429":{"description":"Rate limited (1 request per minute per IP).","headers":{"Retry-After":{"schema":{"type":"integer"}}}}},"summary":"Turn a photo, a library shot or an instant AI image into branded 1:1 tiles"}},"/api/tools/image-generator/run":{"post":{"operationId":"run_image_generator","requestBody":{"content":{"application/json":{"schema":{"properties":{"brightness":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"contrast":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"framing":{"description":"How the shot is framed.","type":"string"},"grade":{"default":"none","enum":["none","warm","cool","vivid","cinematic","vintage","faded","mono"],"type":"string"},"hue":{"default":0,"maximum":180,"minimum":-180,"multipleOf":1,"type":"number"},"optics":{"description":"Lens and camera presets - they change the perspective and depth of field.","type":"string"},"palette":{"description":"Warm or cold, vivid or muted.","type":"string"},"prompt":{"description":"Write it in English for the best results. Everything you pick below is appended to this.","type":"string"},"saturation":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"subject":{"description":"What kind of picture it is.","type":"string"},"temperature":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"}},"required":["prompt"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResult"}}},"description":"Job finished: output files, a ZIP and the replayable config JSON."},"400":{"description":"Invalid or missing input."},"429":{"description":"Rate limited (1 request per minute per IP).","headers":{"Retry-After":{"schema":{"type":"integer"}}}}},"summary":"Free, unlimited, uncensored AI image generator - no signup, no watermark"}},"/api/tools/meme-generator/run":{"post":{"operationId":"run_meme_generator","requestBody":{"content":{"application/json":{"schema":{"properties":{"bar_color":{"default":"#000000","type":"string"},"bottom_caption":{"description":"Leave empty for no bottom bar.","type":"string"},"brightness":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"contrast":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"font_color":{"default":"#ffffff","type":"string"},"gen_prompt":{"type":"string"},"grade":{"default":"none","enum":["none","warm","cool","vivid","cinematic","vintage","faded","mono"],"type":"string"},"hue":{"default":0,"maximum":180,"minimum":-180,"multipleOf":1,"type":"number"},"photos":{"description":"Upload a photo to turn into a meme. In a JSON body send a filename or data URI; use multipart/form-data to upload it.","format":"binary","type":"string"},"saturation":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"temperature":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"top_caption":{"description":"Leave empty for no top bar.","type":"string"}},"type":"object"}},"multipart/form-data":{"schema":{"properties":{"bar_color":{"default":"#000000","type":"string"},"bottom_caption":{"description":"Leave empty for no bottom bar.","type":"string"},"brightness":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"contrast":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"font_color":{"default":"#ffffff","type":"string"},"gen_prompt":{"type":"string"},"grade":{"default":"none","enum":["none","warm","cool","vivid","cinematic","vintage","faded","mono"],"type":"string"},"hue":{"default":0,"maximum":180,"minimum":-180,"multipleOf":1,"type":"number"},"photos":{"description":"Upload a photo to turn into a meme. Accepts: image/*.","format":"binary","type":"string"},"saturation":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"temperature":{"default":0,"maximum":100,"minimum":-100,"multipleOf":1,"type":"number"},"top_caption":{"description":"Leave empty for no top bar.","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResult"}}},"description":"Job finished: output files, a ZIP and the replayable config JSON."},"400":{"description":"Invalid or missing input."},"429":{"description":"Rate limited (1 request per minute per IP).","headers":{"Retry-After":{"schema":{"type":"integer"}}}}},"summary":"Turn a photo - or an instant AI image - into a meme with top and bottom captions"}},"/api/tools/music-video-generator/run":{"post":{"operationId":"run_music_video_generator","requestBody":{"content":{"application/json":{"schema":{"properties":{"audio":{"description":"MP3 or WAV. In a JSON body send a filename or data URI; use multipart/form-data to upload it.","format":"binary","type":"string"},"backdrop":{"default":"blur","description":"What fills the frame behind the bars. 'Blurred cover' makes the whole clip feel like one cover. Only used when visualizer in ['spectrum_cover'].","enum":["blur","dim","none"],"type":"string"},"backdrop_blur":{"default":60,"description":"Only used when backdrop in ['blur'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"backdrop_dim":{"default":50,"description":"Only used when backdrop in ['blur', 'dim'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"background_color":{"default":"#05070d","type":"string"},"bars":{"default":72,"description":"Only used when visualizer in ['spectrum', 'spectrum_cover'].","maximum":128,"minimum":16,"multipleOf":4,"type":"number"},"beat_pulse":{"default":60,"description":"How much the photos breathe with the music. Only used when visualizer in ['slideshow'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"beats_per_slide":{"default":"4","description":"On by default: photos change exactly on the beat (accent every 4th beat in 4/4). Set to Off for fixed seconds per photo. Only used when visualizer in ['slideshow'].","enum":["0","1","2","4","8"],"type":"string"},"body_color":{"default":"#00C800","description":"Only used when visualizer in ['matrix'].","type":"string"},"color":{"default":"#22d3ee","description":"Only used when visualizer in ['spectrum', 'spectrum_cover', 'tunnel', 'space'].","type":"string"},"color_mode":{"default":"spectrum","description":"Only used when visualizer in ['spectrum', 'spectrum_cover'].","enum":["spectrum","fire","ice","solid"],"type":"string"},"cover":{"description":"Optional. A square image (album cover, logo, single photo) sits in the upper part of the frame, on top of the EQ. Without it you get the plain spectrum bars. In a JSON body send a filename or data URI; use multipart/form-data to upload it.","format":"binary","type":"string"},"cover_glow":{"default":50,"description":"Accent halo around the cover, pulsing with the music. Only used when visualizer in ['spectrum_cover'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"cover_pulse":{"default":40,"description":"How much the cover breathes with the music. Only used when visualizer in ['spectrum_cover'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"cover_round":{"default":0,"description":"Only used when visualizer in ['spectrum_cover'].","maximum":50,"minimum":0,"multipleOf":5,"type":"number"},"cover_shadow":{"default":55,"description":"Only used when visualizer in ['spectrum_cover'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"cover_size":{"default":52,"description":"Only used when visualizer in ['spectrum_cover'].","maximum":95,"minimum":15,"multipleOf":1,"type":"number"},"cover_y":{"default":32,"description":"Vertical centre of the cover. Small values push it towards the top of the frame. Only used when visualizer in ['spectrum_cover'].","maximum":80,"minimum":8,"multipleOf":1,"type":"number"},"cover_zoom":{"default":0,"description":"Only used when visualizer in ['spectrum_cover'].","maximum":80,"minimum":0,"multipleOf":5,"type":"number"},"effect":{"default":"none","description":"Movement that works even when the photos stay still. Only used when visualizer in ['slideshow'].","enum":["none","bubbles","lightleak","wave"],"type":"string"},"fit":{"default":"cover","description":"Use 'Show the whole photo' for an ad or a photo with a perfect ratio. Only used when visualizer in ['slideshow'].","enum":["cover","contain"],"type":"string"},"fps":{"default":"24","enum":["24","30"],"type":"string"},"glow":{"default":50,"description":"Only used when visualizer in ['spectrum', 'spectrum_cover'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"head_color":{"default":"#B4FFB4","description":"Only used when visualizer in ['matrix'].","type":"string"},"length":{"default":"full","description":"Default renders the whole track. Longer clips take longer; heavy styles are slow.","enum":["full","custom"],"type":"string"},"lyric_band":{"default":45,"description":"Only used when visualizer in ['slideshow'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"lyric_color":{"default":"#ffffff","description":"Only used when visualizer in ['slideshow'].","type":"string"},"lyric_size":{"default":6,"description":"Only used when visualizer in ['slideshow'].","maximum":14,"minimum":3,"multipleOf":1,"type":"number"},"lyrics":{"description":"Matrix: lines drop into random streams. Slideshow: lines appear as captions over the photos. Only used when visualizer in ['matrix', 'slideshow'].","type":"string"},"overlay":{"default":0,"description":"Only used when visualizer in ['slideshow'].","maximum":100,"minimum":0,"multipleOf":5,"type":"number"},"pan":{"default":45,"description":"Only used when visualizer in ['slideshow'].","maximum":100,"minimum":0,"multipleOf":5,"type":"number"},"params_json":{"description":"Extra style parameters merged last.","type":"string"},"photos":{"description":"Shown in order, one after another. Use \u2039 \u203a to change the sequence. In a JSON body send a filename or data URI; use multipart/form-data to upload it.","format":"binary","type":"string"},"preset":{"description":"Ready-made looks - how the photos behave, not just colours. Pick one, then tweak below if you want. Only used when visualizer in ['slideshow'].","type":"string"},"quality":{"default":"balanced","enum":["fast","balanced","high"],"type":"string"},"reflection":{"default":45,"description":"Only used when visualizer in ['spectrum', 'spectrum_cover'].","maximum":100,"minimum":0,"multipleOf":5,"type":"number"},"resolution":{"default":"720x1280","description":"Phone formats: pick HD Vertical for TikTok, Reels and Shorts.","enum":["720x1280","1080x1920","1080x1080","1280x720","1920x1080","854x480","640x360"],"type":"string"},"seconds":{"default":30,"description":"Only used when Length = Custom. Only used when length in ['custom'].","maximum":300,"minimum":5,"multipleOf":5,"type":"number"},"slide_seconds":{"default":3.5,"description":"Only used when visualizer in ['slideshow'].","maximum":10,"minimum":1,"multipleOf":0.5,"type":"number"},"spectrum_height":{"default":42,"description":"How much of the frame height the spectrum bars occupy, growing up from the bottom. Only used when visualizer in ['spectrum_cover'].","maximum":70,"minimum":10,"multipleOf":2,"type":"number"},"speed_factor":{"default":1.0,"description":"Only used when visualizer in ['matrix'].","maximum":3.0,"minimum":0.3,"multipleOf":0.1,"type":"number"},"stream_count":{"default":120,"description":"More streams = denser rain, but slower render. Only used when visualizer in ['matrix'].","maximum":240,"minimum":40,"multipleOf":10,"type":"number"},"symbol_size":{"default":28,"description":"Only used when visualizer in ['matrix'].","maximum":48,"minimum":12,"multipleOf":2,"type":"number"},"transition":{"default":0.8,"description":"How long the change between two photos takes. Only used when visualizer in ['slideshow'].","maximum":3,"minimum":0,"multipleOf":0.1,"type":"number"},"transition_type":{"default":"fade","description":"Only used when visualizer in ['slideshow'].","enum":["fade","slide","zoom"],"type":"string"},"visualizer":{"default":"slideshow","description":"The options below adapt to the style you pick.","enum":["slideshow","spectrum","spectrum_cover","matrix","tunnel","space"],"type":"string"},"zoom":{"default":18,"description":"Only used when visualizer in ['slideshow'].","maximum":40,"minimum":-40,"multipleOf":2,"type":"number"}},"required":["audio"],"type":"object"}},"multipart/form-data":{"schema":{"properties":{"audio":{"description":"MP3 or WAV. Accepts: audio/*,.mp3,.wav,.m4a,.ogg,.flac.","format":"binary","type":"string"},"backdrop":{"default":"blur","description":"What fills the frame behind the bars. 'Blurred cover' makes the whole clip feel like one cover. Only used when visualizer in ['spectrum_cover'].","enum":["blur","dim","none"],"type":"string"},"backdrop_blur":{"default":60,"description":"Only used when backdrop in ['blur'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"backdrop_dim":{"default":50,"description":"Only used when backdrop in ['blur', 'dim'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"background_color":{"default":"#05070d","type":"string"},"bars":{"default":72,"description":"Only used when visualizer in ['spectrum', 'spectrum_cover'].","maximum":128,"minimum":16,"multipleOf":4,"type":"number"},"beat_pulse":{"default":60,"description":"How much the photos breathe with the music. Only used when visualizer in ['slideshow'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"beats_per_slide":{"default":"4","description":"On by default: photos change exactly on the beat (accent every 4th beat in 4/4). Set to Off for fixed seconds per photo. Only used when visualizer in ['slideshow'].","enum":["0","1","2","4","8"],"type":"string"},"body_color":{"default":"#00C800","description":"Only used when visualizer in ['matrix'].","type":"string"},"color":{"default":"#22d3ee","description":"Only used when visualizer in ['spectrum', 'spectrum_cover', 'tunnel', 'space'].","type":"string"},"color_mode":{"default":"spectrum","description":"Only used when visualizer in ['spectrum', 'spectrum_cover'].","enum":["spectrum","fire","ice","solid"],"type":"string"},"cover":{"description":"Optional. A square image (album cover, logo, single photo) sits in the upper part of the frame, on top of the EQ. Without it you get the plain spectrum bars. Accepts: image/*.","format":"binary","type":"string"},"cover_glow":{"default":50,"description":"Accent halo around the cover, pulsing with the music. Only used when visualizer in ['spectrum_cover'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"cover_pulse":{"default":40,"description":"How much the cover breathes with the music. Only used when visualizer in ['spectrum_cover'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"cover_round":{"default":0,"description":"Only used when visualizer in ['spectrum_cover'].","maximum":50,"minimum":0,"multipleOf":5,"type":"number"},"cover_shadow":{"default":55,"description":"Only used when visualizer in ['spectrum_cover'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"cover_size":{"default":52,"description":"Only used when visualizer in ['spectrum_cover'].","maximum":95,"minimum":15,"multipleOf":1,"type":"number"},"cover_y":{"default":32,"description":"Vertical centre of the cover. Small values push it towards the top of the frame. Only used when visualizer in ['spectrum_cover'].","maximum":80,"minimum":8,"multipleOf":1,"type":"number"},"cover_zoom":{"default":0,"description":"Only used when visualizer in ['spectrum_cover'].","maximum":80,"minimum":0,"multipleOf":5,"type":"number"},"effect":{"default":"none","description":"Movement that works even when the photos stay still. Only used when visualizer in ['slideshow'].","enum":["none","bubbles","lightleak","wave"],"type":"string"},"fit":{"default":"cover","description":"Use 'Show the whole photo' for an ad or a photo with a perfect ratio. Only used when visualizer in ['slideshow'].","enum":["cover","contain"],"type":"string"},"fps":{"default":"24","enum":["24","30"],"type":"string"},"glow":{"default":50,"description":"Only used when visualizer in ['spectrum', 'spectrum_cover'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"head_color":{"default":"#B4FFB4","description":"Only used when visualizer in ['matrix'].","type":"string"},"length":{"default":"full","description":"Default renders the whole track. Longer clips take longer; heavy styles are slow.","enum":["full","custom"],"type":"string"},"lyric_band":{"default":45,"description":"Only used when visualizer in ['slideshow'].","maximum":100,"minimum":0,"multipleOf":10,"type":"number"},"lyric_color":{"default":"#ffffff","description":"Only used when visualizer in ['slideshow'].","type":"string"},"lyric_size":{"default":6,"description":"Only used when visualizer in ['slideshow'].","maximum":14,"minimum":3,"multipleOf":1,"type":"number"},"lyrics":{"description":"Matrix: lines drop into random streams. Slideshow: lines appear as captions over the photos. Only used when visualizer in ['matrix', 'slideshow'].","type":"string"},"overlay":{"default":0,"description":"Only used when visualizer in ['slideshow'].","maximum":100,"minimum":0,"multipleOf":5,"type":"number"},"pan":{"default":45,"description":"Only used when visualizer in ['slideshow'].","maximum":100,"minimum":0,"multipleOf":5,"type":"number"},"params_json":{"description":"Extra style parameters merged last.","type":"string"},"photos":{"items":{"description":"Shown in order, one after another. Use \u2039 \u203a to change the sequence. Accepts: image/*.","format":"binary","type":"string"},"type":"array"},"preset":{"description":"Ready-made looks - how the photos behave, not just colours. Pick one, then tweak below if you want. Only used when visualizer in ['slideshow'].","type":"string"},"quality":{"default":"balanced","enum":["fast","balanced","high"],"type":"string"},"reflection":{"default":45,"description":"Only used when visualizer in ['spectrum', 'spectrum_cover'].","maximum":100,"minimum":0,"multipleOf":5,"type":"number"},"resolution":{"default":"720x1280","description":"Phone formats: pick HD Vertical for TikTok, Reels and Shorts.","enum":["720x1280","1080x1920","1080x1080","1280x720","1920x1080","854x480","640x360"],"type":"string"},"seconds":{"default":30,"description":"Only used when Length = Custom. Only used when length in ['custom'].","maximum":300,"minimum":5,"multipleOf":5,"type":"number"},"slide_seconds":{"default":3.5,"description":"Only used when visualizer in ['slideshow'].","maximum":10,"minimum":1,"multipleOf":0.5,"type":"number"},"spectrum_height":{"default":42,"description":"How much of the frame height the spectrum bars occupy, growing up from the bottom. Only used when visualizer in ['spectrum_cover'].","maximum":70,"minimum":10,"multipleOf":2,"type":"number"},"speed_factor":{"default":1.0,"description":"Only used when visualizer in ['matrix'].","maximum":3.0,"minimum":0.3,"multipleOf":0.1,"type":"number"},"stream_count":{"default":120,"description":"More streams = denser rain, but slower render. Only used when visualizer in ['matrix'].","maximum":240,"minimum":40,"multipleOf":10,"type":"number"},"symbol_size":{"default":28,"description":"Only used when visualizer in ['matrix'].","maximum":48,"minimum":12,"multipleOf":2,"type":"number"},"transition":{"default":0.8,"description":"How long the change between two photos takes. Only used when visualizer in ['slideshow'].","maximum":3,"minimum":0,"multipleOf":0.1,"type":"number"},"transition_type":{"default":"fade","description":"Only used when visualizer in ['slideshow'].","enum":["fade","slide","zoom"],"type":"string"},"visualizer":{"default":"slideshow","description":"The options below adapt to the style you pick.","enum":["slideshow","spectrum","spectrum_cover","matrix","tunnel","space"],"type":"string"},"zoom":{"default":18,"description":"Only used when visualizer in ['slideshow'].","maximum":40,"minimum":-40,"multipleOf":2,"type":"number"}},"required":["audio"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResult"}}},"description":"Job finished: output files, a ZIP and the replayable config JSON."},"400":{"description":"Invalid or missing input."},"429":{"description":"Rate limited (1 request per minute per IP).","headers":{"Retry-After":{"schema":{"type":"integer"}}}}},"summary":"Make your own music video in seconds - just upload your song, pick a look and download the video"}},"/api/tools/signature-remover/run":{"post":{"operationId":"run_signature_remover","requestBody":{"content":{"application/json":{"schema":{"properties":{"brightness":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"chroma_aberration":{"default":6,"description":"Lens colour fringing on high-contrast edges.","maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"chroma_noise":{"default":12,"description":"Colour speckle. The strongest 'real photo' cue.","maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"contrast":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"credit":{"default":"on","description":"Always stamps 'GenBox Free Tools (genbox.eu)' as the author.","enum":["on","off"],"type":"string"},"deform":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"dust":{"default":8,"description":"Soft blobs on flat areas (walls, sky).","maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"grade":{"default":"none","enum":["none","warm","cool","vivid","cinematic","vintage","faded","mono"],"type":"string"},"grain":{"default":0.8,"description":"0 = off. 0.6-1.2 looks like real sensor noise.","maximum":2,"minimum":0,"multipleOf":0.1,"type":"number"},"grain_size":{"default":1.4,"description":"1 = fine per-pixel, 4 = clumpy film-like.","maximum":4,"minimum":1,"multipleOf":0.1,"type":"number"},"hue":{"default":0,"maximum":180,"minimum":-180,"multipleOf":5,"type":"number"},"image":{"description":"JPG, PNG, WEBP or MP4/MOV. Several files at once are fine. In a JSON body send a filename or data URI; use multipart/form-data to upload it.","format":"binary","type":"string"},"iso":{"default":22,"description":"Sensor grain, stronger in the shadows.","maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"jpeg_history":{"default":"on","description":"Double compression + 4:2:0 chroma, like a real camera/phone file.","enum":["on","off"],"type":"string"},"micro_texture":{"default":12,"description":"Surface texture that kills the glassy AI smoothness.","maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"quality":{"default":92,"maximum":100,"minimum":50,"type":"number"},"saturation":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"sharp":{"default":1.15,"description":"1 = off.","maximum":2,"minimum":1,"multipleOf":0.05,"type":"number"},"specks":{"default":3,"maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"swirl":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"temperature":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"vignette":{"default":0,"maximum":100,"minimum":0,"multipleOf":5,"type":"number"}},"required":["image"],"type":"object"}},"multipart/form-data":{"schema":{"properties":{"brightness":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"chroma_aberration":{"default":6,"description":"Lens colour fringing on high-contrast edges.","maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"chroma_noise":{"default":12,"description":"Colour speckle. The strongest 'real photo' cue.","maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"contrast":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"credit":{"default":"on","description":"Always stamps 'GenBox Free Tools (genbox.eu)' as the author.","enum":["on","off"],"type":"string"},"deform":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"dust":{"default":8,"description":"Soft blobs on flat areas (walls, sky).","maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"grade":{"default":"none","enum":["none","warm","cool","vivid","cinematic","vintage","faded","mono"],"type":"string"},"grain":{"default":0.8,"description":"0 = off. 0.6-1.2 looks like real sensor noise.","maximum":2,"minimum":0,"multipleOf":0.1,"type":"number"},"grain_size":{"default":1.4,"description":"1 = fine per-pixel, 4 = clumpy film-like.","maximum":4,"minimum":1,"multipleOf":0.1,"type":"number"},"hue":{"default":0,"maximum":180,"minimum":-180,"multipleOf":5,"type":"number"},"image":{"items":{"description":"JPG, PNG, WEBP or MP4/MOV. Several files at once are fine. Accepts: image/*,video/mp4,video/quicktime,video/x-m4v.","format":"binary","type":"string"},"type":"array"},"iso":{"default":22,"description":"Sensor grain, stronger in the shadows.","maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"jpeg_history":{"default":"on","description":"Double compression + 4:2:0 chroma, like a real camera/phone file.","enum":["on","off"],"type":"string"},"micro_texture":{"default":12,"description":"Surface texture that kills the glassy AI smoothness.","maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"quality":{"default":92,"maximum":100,"minimum":50,"type":"number"},"saturation":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"sharp":{"default":1.15,"description":"1 = off.","maximum":2,"minimum":1,"multipleOf":0.05,"type":"number"},"specks":{"default":3,"maximum":100,"minimum":0,"multipleOf":2,"type":"number"},"swirl":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"temperature":{"default":0,"maximum":100,"minimum":-100,"multipleOf":5,"type":"number"},"vignette":{"default":0,"maximum":100,"minimum":0,"multipleOf":5,"type":"number"}},"required":["image"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResult"}}},"description":"Job finished: output files, a ZIP and the replayable config JSON."},"400":{"description":"Invalid or missing input."},"429":{"description":"Rate limited (1 request per minute per IP).","headers":{"Retry-After":{"schema":{"type":"integer"}}}}},"summary":"Strip AI metadata and provenance from photos and videos, rewrite clean Genbox authorship"}},"/api/tools/video-music-mix/run":{"post":{"operationId":"run_video_music_mix","requestBody":{"content":{"application/json":{"schema":{"properties":{"audio":{"description":"MP3 or WAV. The video follows this track's length. In a JSON body send a filename or data URI; use multipart/form-data to upload it.","format":"binary","type":"string"},"background_color":{"default":"#000000","description":"The colour that fills the time the picture does not cover. Only used when fit_mode in ['color'].","type":"string"},"fade_seconds":{"default":2,"description":"How long the music takes to fade at the end. Only used when fit_mode in ['fadeout'].","maximum":20,"minimum":0,"multipleOf":0.5,"type":"number"},"fit_mode":{"default":"auto","description":"Auto-match holds the last image (or freezes the last frame of a video) so the picture reaches the end of the music, and trims the video when it is the longer one.","enum":["auto","color","fadeout","silent"],"type":"string"},"fps":{"default":"30","enum":["24","25","30"],"type":"string"},"mixinfo":{"type":"string"},"music_offset":{"default":0,"description":"Leave it at 0 to start the music straight away. Enter 5 and the track comes in after 5 seconds of silence - the whole video is that much longer, so you get a clean opening (dialogue, ambience, a product shot) before the music starts.","maximum":300,"minimum":0,"multipleOf":0.5,"type":"number"},"music_volume":{"default":100,"description":"100 % is the track as it is.","maximum":150,"minimum":0,"multipleOf":5,"type":"number"},"preview_mix":{"description":"Renders the first 3 seconds of the mix (audio only, so it is quick).","type":"string"},"resolution":{"default":"auto","enum":["auto","1920x1080","1280x720","1080x1920","720x1280","1080x1080"],"type":"string"},"sequence":{"description":"Videos play in full. Pictures run for the number of seconds you set (3 by default). The first item sets the format.","type":"string"},"video_volume":{"default":100,"description":"0 % mutes the sound that comes with the clips. 100 % is unchanged.","maximum":150,"minimum":0,"multipleOf":5,"type":"number"}},"required":["sequence","audio"],"type":"object"}},"multipart/form-data":{"schema":{"properties":{"audio":{"description":"MP3 or WAV. The video follows this track's length. Accepts: audio/*,.mp3,.wav,.m4a,.ogg,.flac.","format":"binary","type":"string"},"background_color":{"default":"#000000","description":"The colour that fills the time the picture does not cover. Only used when fit_mode in ['color'].","type":"string"},"fade_seconds":{"default":2,"description":"How long the music takes to fade at the end. Only used when fit_mode in ['fadeout'].","maximum":20,"minimum":0,"multipleOf":0.5,"type":"number"},"fit_mode":{"default":"auto","description":"Auto-match holds the last image (or freezes the last frame of a video) so the picture reaches the end of the music, and trims the video when it is the longer one.","enum":["auto","color","fadeout","silent"],"type":"string"},"fps":{"default":"30","enum":["24","25","30"],"type":"string"},"mixinfo":{"type":"string"},"music_offset":{"default":0,"description":"Leave it at 0 to start the music straight away. Enter 5 and the track comes in after 5 seconds of silence - the whole video is that much longer, so you get a clean opening (dialogue, ambience, a product shot) before the music starts.","maximum":300,"minimum":0,"multipleOf":0.5,"type":"number"},"music_volume":{"default":100,"description":"100 % is the track as it is.","maximum":150,"minimum":0,"multipleOf":5,"type":"number"},"preview_mix":{"description":"Renders the first 3 seconds of the mix (audio only, so it is quick).","type":"string"},"resolution":{"default":"auto","enum":["auto","1920x1080","1280x720","1080x1920","720x1280","1080x1080"],"type":"string"},"sequence":{"description":"Videos play in full. Pictures run for the number of seconds you set (3 by default). The first item sets the format.","type":"string"},"video_volume":{"default":100,"description":"0 % mutes the sound that comes with the clips. 100 % is unchanged.","maximum":150,"minimum":0,"multipleOf":5,"type":"number"}},"required":["sequence","audio"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResult"}}},"description":"Job finished: output files, a ZIP and the replayable config JSON."},"400":{"description":"Invalid or missing input."},"429":{"description":"Rate limited (1 request per minute per IP).","headers":{"Retry-After":{"schema":{"type":"integer"}}}}},"summary":"Join your clips and photos into one video and lay a track over it"}}},"servers":[{"url":"https://genbox.eu"}]}
