Sakaira

FOR AGENTS AND DEVELOPERS

Sakaira MCP server

A remote MCP server for AI images, video, voice and music. Sign-in is OAuth 2.1, with no API keys. Its 27 tools are priced in credits, and every result carries its cost and the balance left.

SERVER URL

https://mcp.sakaira.com/mcp

Connect

How to connect to the Sakaira MCP server
TransportStreamable HTTP at https://mcp.sakaira.com/mcp
Sign-inOAuth 2.1: authorization code with PKCE (S256), and refresh tokens
Client registrationDynamic client registration at https://mcp.sakaira.com/oauth/register, or a client ID metadata document
Token endpoint authnone (public clients)
Scopemcp:tools
RequestsThe access token as a Bearer token in the Authorization header
Metadatahttps://mcp.sakaira.com/.well-known/oauth-protected-resource/mcp and https://mcp.sakaira.com/.well-known/oauth-authorization-server

Claude Code

$ claude mcp add --transport http sakaira --scope user https://mcp.sakaira.com/mcp

Codex

$ codex mcp add sakaira --url https://mcp.sakaira.com/mcp
$ codex mcp login sakaira

Guides for every assistant: Claude · Claude Code · ChatGPT · Codex · Cursor · Grok · Hermes · OpenClaw · Any MCP client

Tools

Every tool the server offers today, with the parameters an agent sends.

The Sakaira MCP server's tools
ToolGroupWhat it doesPrice
create_imageMakeGenerate an image from text, or edit an existing image by passing image_url.from 2 credits an image (≈ $0.02)
upscale_imageFixIncrease the resolution of an image.from 1 credit an image (≈ $0.01)
remove_backgroundFixRemove the background of an image and return a transparent PNG.from 2 credits an image (≈ $0.02)
restore_imageFixRestore and colorize old or damaged photos.8 credits an image (≈ $0.08)
create_videoMakeText-to-video and image-to-video, with first and last frames and reference images.from 2 credits a second (≈ $0.02)
cut_videoEditTrim a clip by start/end or duration.10 credits an edit (≈ $0.11)
resize_videoEditResize or reframe a video (pad, crop or a blurred background), e.g. for TikTok.10 credits an edit (≈ $0.11)
extract_framesEditExtract one frame or one frame every N seconds.10 credits an edit (≈ $0.11)
video_to_gifEditConvert a video segment into an optimized GIF.10 credits an edit (≈ $0.11)
stitch_mediaEditPut audio over video, concatenate videos, or join audio files.10 credits an edit (≈ $0.11)
extract_audioEditExtract the audio track of a video.10 credits an edit (≈ $0.11)
remove_audioEditRemove or mute the audio track of a video.10 credits an edit (≈ $0.11)
create_voiceoverMakeText to speech.from 2 credits per 1,000 characters (≈ $0.02)
create_musicMakeGenerate background music from a style prompt (and optional lyrics).from 8 credits a track (≈ $0.08)
transcribeFixAudio to text with timestamps.1.6 credits a minute (≈ $0.02)
enhance_audioFixIsolate a voice: remove noise, music and reverb.from 12 credits a minute (≈ $0.13)
save_brand_kitYour brandSave the user's brand: name, colors, fonts, tone, voice, logo and images.Free
get_brand_kitYour brandRead the user's brand kit before making anything for their brand.Free
delete_brand_kitYour brandDelete the user's brand kit and its images.Free
delete_assetYour accountDelete a file from your library for good.Free
list_modelsYour accountCatalog of models, filterable by category or text.Free
describe_modelYour accountAll parameters and prices of one model.Free
check_balanceYour accountYour plan and credits with their dates, optionally with a cost estimate.Free
buy_creditsYour accountA credit pack's checkout link for subscribers, or the plans link.Free
get_jobYour accountStatus and result of a job, or your most recent jobs.Free
spend_reportYour accountCredits spent by period and by tool.Free
send_feedbackYour accountReport a bug, a missing feature, something confusing, or praise.Free

Dollar amounts at monthly-plan rates (1 credit ≈ $0.0106). Yearly plans cost 20% less; credit packs ≈ $0.014 a credit. Prices as of September 2026.

create_video runs in the background: it returns a job_id at once, and get_job returns the clip when it's done.

create_image

Generate 1–4 images from a prompt, or edit images by passing image_url (more references in extras.image_urls). Models: nano-banana-2 (default): fast all-round images and edits, 0.5K to 4K; nano-banana-pro: harder edits and detailed scenes, up to 4K; nano-banana-2-lite: cheap 1K drafts; gpt-image-2.5-sunburst: accurate text and edits; gpt-image-2.5-flare: the same quality, faster; muse-image: high quality at a low price; grok-imagine-image-2: posters and designs with legible text; seedream-5-pro: consistent characters from many references; seedream-5-lite: cheap, consistent sets of images; flux-2-pro: photoreal images at exact sizes; flux-2-max: FLUX's highest detail; flux-2-flex: typography and fine control; flux-2-klein: very fast, very cheap drafts; qwen-image-3: long, detailed prompts; ideogram-4: logos and typography; recraft-4.1: brand illustrations; recraft-4.1-vector: editable SVG icons and logos; mai-image-2.5: realistic scenes and portraits; krea-2: stylized images from style references; luma-uni-1: concept art and moody frames. Set quality (low, medium, high) where a model offers it. Call list_models for prices and describe_model for a model's options. Returns fixed URLs, each kept until its expires_at, plus the cost and your remaining balance.

Price: from 2 credits an image (≈ $0.02)

Parameters (12)
Parameters of create_image
ParameterTypeRequiredDefaultDescription
promptstringRequired—What to generate, or how to edit image_urlUp to 4,000 characters
modelnano-banana-2 | nano-banana-pro | nano-banana-2-lite | gpt-image-2.5-sunburst | gpt-image-2.5-flare | muse-image | grok-imagine-image-2 | seedream-5-pro | seedream-5-lite | flux-2-pro | flux-2-max | flux-2-flex | flux-2-klein | qwen-image-3 | ideogram-4 | recraft-4.1 | recraft-4.1-vector | mai-image-2.5 | krea-2 | luma-uni-1Optionalnano-banana-2nano-banana-2 (default): fast all-round images and edits, 0.5K to 4K; nano-banana-pro: harder edits and detailed scenes, up to 4K; nano-banana-2-lite: cheap 1K drafts; gpt-image-2.5-sunburst: accurate text and edits; gpt-image-2.5-flare: the same quality, faster; muse-image: high quality at a low price; grok-imagine-image-2: posters and designs with legible text; seedream-5-pro: consistent characters from many references; seedream-5-lite: cheap, consistent sets of images; flux-2-pro: photoreal images at exact sizes; flux-2-max: FLUX's highest detail; flux-2-flex: typography and fine control; flux-2-klein: very fast, very cheap drafts; qwen-image-3: long, detailed prompts; ideogram-4: logos and typography; recraft-4.1: brand illustrations; recraft-4.1-vector: editable SVG icons and logos; mai-image-2.5: realistic scenes and portraits; krea-2: stylized images from style references; luma-uni-1: concept art and moody frames. Call list_models for what each model costs.
image_urlstringOptional—Reference image to edit or use as guidance
widthintegerOptional—Output width in pixels. Give one side and the other follows at 4:3.256–4,096
heightintegerOptional—Output height in pixels. Give one side and the other follows at 4:3.256–4,096
num_imagesintegerOptional11–4
remove_backgroundbooleanOptionalfalseAlso remove the background (+2 credits per image)
seedintegerOptional—0–2,147,483,647
output_formatpng | jpg | jpeg | webpOptionalpng—
qualitylow | medium | highOptional—Output quality where the model offers it (GPT Image, Grok, Ideogram); it changes the price. Omit for the model's default.
extrasobjectOptional—Model-specific parameters passed through (see describe_model). Billed parameters (num_images, resolution, image_size, width/height, aspect_ratio) are not accepted here; use the top-level fields.
confirmbooleanOptionalfalseSet true to accept a quote above 500 credits

upscale_image

Make an image 1–4× bigger (scale, 2 by default) from its https URL. Models: topaz-upscale (default): faithful upscales up to 4×; recraft-crisp-upscale: cheap, sharp upscales of PNGs; seedvr2-upscale: very cheap large upscales; clarity-upscaler: creative upscales that add detail. recraft-crisp-upscale takes PNG only. The price follows the output size, read from the image before any charge. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.

Price: from 1 credit an image (≈ $0.01)

Parameters (6)
Parameters of upscale_image
ParameterTypeRequiredDefaultDescription
image_urlstringRequired—The image to upscale (https)
scalenumberOptional2How many times bigger each side gets (2 doubles width and height)1–4
output_formatpng | jpg | jpegOptional—png or jpg where the model offers a choice; by default a JPEG stays jpg and a PNG or WebP becomes png
modelrecraft-crisp-upscale | topaz-upscale | seedvr2-upscale | clarity-upscalerOptionaltopaz-upscalerecraft-crisp-upscale: cheap, sharp upscales of PNGs; topaz-upscale (default): faithful upscales up to 4×; seedvr2-upscale: very cheap large upscales; clarity-upscaler: creative upscales that add detail. Call list_models for what each model costs.
extrasobjectOptional—Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here.
confirmbooleanOptionalfalseSet true to accept a quote above 500 credits

remove_background

Cut out the subject of an image (https URL; PNG, JPEG or WebP) and return a transparent PNG. Models: ideogram-remove-background (default): transparent PNG cut-outs; bria-rmbg-2: cut-outs from a model trained on licensed data. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.

Price: from 2 credits an image (≈ $0.02)

Parameters (4)
Parameters of remove_background
ParameterTypeRequiredDefaultDescription
image_urlstringRequired—The image to cut out (https; PNG, JPEG or WebP)
modelideogram-remove-background | bria-rmbg-2Optionalideogram-remove-backgroundideogram-remove-background (default): transparent PNG cut-outs; bria-rmbg-2: cut-outs from a model trained on licensed data. Call list_models for what each model costs.
extrasobjectOptional—Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here.
confirmbooleanOptionalfalseSet true to accept a quote above 500 credits

restore_image

Repair an old or damaged photo from its https URL: remove scratches, fix or add colors (colorize) and raise the resolution. Models: photo-restoration (default): repairing and colorizing old photos. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.

Price: 8 credits an image (≈ $0.08)

Parameters (8)
Parameters of restore_image
ParameterTypeRequiredDefaultDescription
image_urlstringRequired—The old or damaged photo (https)
colorizebooleanOptionaltrueFix or add colors
remove_scratchesbooleanOptionaltrue—
enhance_resolutionbooleanOptionaltrue—
aspect_ratio1:1 | 16:9 | 9:16 | 4:3 | 3:4Optional—Output aspect ratio; the model's default when omitted
modelphoto-restorationOptionalphoto-restorationphoto-restoration (default): repairing and colorizing old photos. Call list_models for what each model costs.
extrasobjectOptional—Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here.
confirmbooleanOptionalfalseSet true to accept a quote above 500 credits

create_video

Generate a video from a prompt, animate an image (image_url is the first frame, end_image_url the last), or keep subjects consistent with reference_image_urls. Models: gemini-omni-flash (default): video with sound; veo-3.1: Veo at up to 4K; veo-3.1-fast: Veo quality at a lower price, up to 4K; veo-3.1-lite: cheap clips with sound, or silent b-roll; wan-3: single shots up to 30 s at native 1080p; happyhorse-1.1: talking characters with lip-sync; minimax-h3-max: fast image-to-video with sound; minimax-h3-max-turbo: the cheapest H3 Max clips; minimax-h3: the open-weights H3, up to 4K; seedance-2.5: ads up to 30 s with many reference images; seedance-2: cinematic multi-shot clips; seedance-2-fast: Seedance 2.0 at a lower price; seedance-2-mini: cheap Seedance drafts; kling-3-pro: cinematic motion; kling-3-turbo: faster Kling with sound; kling-o3: consistent characters from reference images; grok-imagine-video-1.5: short clips with sound from text or images; flux-3: cinematic clips from text or a first and last frame; ltx-2.5: open-weights clips up to 20 s and 4K; pixverse-6: cheap social clips with optional sound; vidu-q3: clips up to 16 s with start and end frames; luma-ray-3.2: cinematic silent shots; creatify-boreal: product, UGC and presenter ads from a script. Duration, resolution and aspect ratio are fitted to what the model makes, and any change is listed in warnings. Returns a job_id at once: videos take about 1–5 minutes, so call get_job with that job_id to get the fixed URL, kept until its expires_at. Call list_models for prices and describe_model for each model's options. Quotes above 500 credits need confirm: true.

Price: from 2 credits a second (≈ $0.02)

Parameters (12)
Parameters of create_video
ParameterTypeRequiredDefaultDescription
promptstringRequired—What happens in the video: subject, motion, camera, soundUp to 5,000 characters
modelgemini-omni-flash | veo-3.1 | veo-3.1-fast | veo-3.1-lite | wan-3 | happyhorse-1.1 | minimax-h3-max | minimax-h3-max-turbo | minimax-h3 | seedance-2.5 | seedance-2 | seedance-2-fast | seedance-2-mini | kling-3-pro | kling-3-turbo | kling-o3 | grok-imagine-video-1.5 | flux-3 | ltx-2.5 | pixverse-6 | vidu-q3 | luma-ray-3.2 | creatify-borealOptionalgemini-omni-flashgemini-omni-flash (default): video with sound; veo-3.1: Veo at up to 4K; veo-3.1-fast: Veo quality at a lower price, up to 4K; veo-3.1-lite: cheap clips with sound, or silent b-roll; wan-3: single shots up to 30 s at native 1080p; happyhorse-1.1: talking characters with lip-sync; minimax-h3-max: fast image-to-video with sound; minimax-h3-max-turbo: the cheapest H3 Max clips; minimax-h3: the open-weights H3, up to 4K; seedance-2.5: ads up to 30 s with many reference images; seedance-2: cinematic multi-shot clips; seedance-2-fast: Seedance 2.0 at a lower price; seedance-2-mini: cheap Seedance drafts; kling-3-pro: cinematic motion; kling-3-turbo: faster Kling with sound; kling-o3: consistent characters from reference images; grok-imagine-video-1.5: short clips with sound from text or images; flux-3: cinematic clips from text or a first and last frame; ltx-2.5: open-weights clips up to 20 s and 4K; pixverse-6: cheap social clips with optional sound; vidu-q3: clips up to 16 s with start and end frames; luma-ray-3.2: cinematic silent shots; creatify-boreal: product, UGC and presenter ads from a script. Call list_models for what each model costs.
image_urlstringOptional—First frame: animate this image
end_image_urlstringOptional—Last frame: the video ends on this image (needs image_url on most models)
reference_image_urlsstring[]Optional—Images of subjects or products to keep consistent (not frames); see describe_model for each model's limit
durationintegerOptional—Seconds (default 5); fitted to what the model makes1–30
resolutionstringOptional—360p, 480p, 540p, 720p, 768p, 1080p, 1440p, 2160p, 2k, 4k; fitted to the model's nearest; default: the model's standard one
aspect_ratiostringOptional—"16:9", "9:16", "1:1"…; fitted to the nearest ratio the model makes
audiobooleanOptional—Sound on (the default wherever the model can) or off; off costs less on some models
seedintegerOptional—0–2,147,483,647
extrasobjectOptional—Model-specific parameters passed through (see describe_model). Billed parameters (duration, resolution, aspect_ratio, audio, frames, references) are not accepted here; use the top-level fields.
confirmbooleanOptionalfalseSet true to accept a quote above 500 credits

cut_video

Keep one part of a video as an MP4 that plays everywhere, cut at the exact frame: give start and end, or start and duration (seconds like 65.5 or "1:05.5"; negative counts from the end). Also trims an audio file, returned as MP3, M4A or WAV (up to 60 min; WAV up to 15 min). The file is an https link to a Sakaira file or any public file, up to 500 MB; a video cut is Full HD at most and up to 45 s of 1080p at 30 fps (longer at lower resolutions). 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.

Price: 10 credits an edit (≈ $0.11)

Parameters (5)
Parameters of cut_video
ParameterTypeRequiredDefaultDescription
video_urlstringRequired—The video, or audio file, to cut: an https link to a Sakaira file or any public file, up to 500 MB
startnumber | stringOptional—Where the part to keep starts: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; 0 by default
endnumber | stringOptional—Where it ends: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; the end of the file by default
durationnumber | stringOptional—How long the part is: seconds (10) or "mm:ss" ("0:10"); end wins when both are given
audio_trackintegerOptional—Which audio track to use when the file has several, counted from 1≥ 1

resize_video

Reframe or resize a video for a platform or a size, as an H.264 MP4, with pad, crop or a blurred background: give a preset (tiktok, reels, shorts, youtube, square, instagram_portrait…), an aspect_ratio ("9:16") or a width and height (up to 1920). fit auto, the default, crops when that keeps at least 70% of the picture and otherwise sets it on a blurred copy of itself. The video is an https link to a Sakaira file or any public file, up to 500 MB; the result is Full HD at most and up to 45 s of 1080p at 30 fps (30 s with the blurred background). 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.

Price: 10 credits an edit (≈ $0.11)

Parameters (9)
Parameters of resize_video
ParameterTypeRequiredDefaultDescription
video_urlstringRequired—The video to resize: an https link to a Sakaira file or any public file, up to 500 MB
presettiktok | reels | shorts | story | vertical | youtube | landscape | square | instagram_portraitOptional—A platform's size: tiktok, reels, shorts, story, vertical 1080×1920; youtube, landscape 1920×1080; square 1080×1080; instagram_portrait 1080×1350
aspect_ratiostring | numberOptional—Width to height, like "9:16", "4:5" or 1.78, from 1:4 to 4:1; with width or height it sets the other side, and alone it never enlarges
widthintegerOptional—Output width in pixels, 128–1920128–1,920
heightintegerOptional—Output height in pixels, 128–1920128–1,920
fitauto | crop | pad | blurOptionalautoHow the picture fills the new shape: auto crops when that keeps at least 70% of it, else blur; crop cuts the edges; pad adds bars in pad_color; blur puts it on a blurred copy of itself
positioncenter | top | bottom | left | rightOptionalcenterWhich part a crop keeps
pad_colorstringOptionalblackThe bars' colour with fit pad: black, white or #RRGGBB
audio_trackintegerOptional—Which audio track to use when the file has several, counted from 1≥ 1

extract_frames

Save still images from a video as JPG (or PNG): at the timestamps you give, a count of frames spread evenly (the middle frame when nothing else is given), or one every_seconds, optionally between start and end. Each time gives the frame a player shows at that moment, at the video's size (up to 3840 px on the long side); up to 20 frames per call. The video is an https link to a Sakaira file or any public file, up to 500 MB. 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL per frame, each kept until its expires_at, plus the cost and your remaining balance.

Price: 10 credits an edit (≈ $0.11)

Parameters (7)
Parameters of extract_frames
ParameterTypeRequiredDefaultDescription
video_urlstringRequired—The video: an https link to a Sakaira file or any public file, up to 500 MB
timestampsnumber | string | (number | string)[]Optional—The times to save, one or up to 20: seconds (12.5), "mm:ss", "start" or "end"; each gives the frame a player shows then
countintegerOptional—How many frames, spread evenly over the video (or from start to end), up to 20; 1, the middle frame, when nothing else is given1–20
every_secondsnumberOptional—One frame every this many seconds (at least 0.1)≥ 0.1
startnumber | stringOptional—Where count and every_seconds begin: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; the start of the video by default
endnumber | stringOptional—Where they stop: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; the end of the video by default
output_formatjpg | jpeg | pngOptionaljpgjpg (the default) or png

video_to_gif

Make a short looping GIF from part of a video: start and end, or duration (the first 10 s by default, up to 30 s); width 64–800 px (by default it fits 480×480 and never enlarges) and fps 1–25 (12 by default); loop false plays it once. A long or large GIF gets a lower frame rate, then a smaller size, to stay light, with a note in the reply. The video is an https link to a Sakaira file or any public file, up to 500 MB. 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.

Price: 10 credits an edit (≈ $0.11)

Parameters (8)
Parameters of video_to_gif
ParameterTypeRequiredDefaultDescription
video_urlstringRequired—The video: an https link to a Sakaira file or any public file, up to 500 MB
startnumber | stringOptional—Where the GIF starts: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; 0 by default
endnumber | stringOptional—Where it ends: seconds (65.5) or "mm:ss" ("1:05.5"), negative from the end; the first 10 s by default; a GIF is up to 30 s long
durationnumber | stringOptional—How long the GIF is, up to 30 s: seconds (10) or "mm:ss" ("0:10"); end wins when both are given
widthintegerOptional—GIF width in pixels, 64–800; by default it fits a 480×480 box, and it never enlarges64–800
heightintegerOptional—GIF height in pixels, when no width is given64–800
fpsintegerOptional—Frames per second, 1–25; 12 by default, never above the video's1–25
loopbooleanOptionaltrueLoop forever (the default); false plays once

stitch_media

Combine media into one file. add_audio puts music or a voiceover (audio_url) on a video (video_url), mixed with its sound or replacing it (audio_mode), with volumes, a start time and an optional loop; a sound that runs to the video's end fades out over its last second (less on a video under 4 s), by itself. join_videos joins 2–10 videos (video_urls) into one MP4 of one shape (aspect_ratio, fit), with optional crossfades and optional music or a voiceover over it (audio_url, as in add_audio); join_audio joins 2–10 audio files (audio_urls) as MP3 or WAV. operation is read from the links when missing. Up to 10 min of video for add_audio when its picture is kept as it is (most H.264 and HEVC videos; others are re-encoded, up to 45 s of 1080p at 30 fps), 45 s of 1080p for join_videos and 20 min for join_audio. Every file is an https link to a Sakaira file or any public file, up to 500 MB each and 1 GB in all. 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.

Price: 10 credits an edit (≈ $0.11)

Parameters (14)
Parameters of stitch_media
ParameterTypeRequiredDefaultDescription
operationadd_audio | join_videos | join_audioOptional—add_audio, join_videos or join_audio; read from the links when missing
video_urlstringOptional—add_audio: the video (https link)
audio_urlstringOptional—add_audio: the music or voiceover; join_videos: optional music or voiceover over the joined clips (https link)
video_urlsstring[]Optional—join_videos: 2 to 10 links to videos, joined in this order
audio_urlsstring[]Optional—join_audio: 2 to 10 links to audio files, joined in this order
audio_modemix | replaceOptional—add_audio, and join_videos with an audio_url: mix with the video's own sound (the default when it has sound) or replace it
video_volumenumberOptional1add_audio, and join_videos with an audio_url: the video's own sound, 0–2; 1 keeps it as it is0–2
audio_volumenumberOptional1add_audio, and join_videos with an audio_url: the added audio, 0–2; 1 keeps it as it is0–2
audio_start_secondsnumberOptional0add_audio, and join_videos with an audio_url: when the added audio starts, in seconds from the start of the video≥ 0
loop_audiobooleanOptionalfalseadd_audio, and join_videos with an audio_url: repeat a short track until the video ends (by default silence follows it)
fitpad | cropOptionalpadjoin_videos: clips of another shape get bars (pad, the default) or are cropped
aspect_ratiofirst | 9:16 | 16:9 | 1:1 | 4:5Optionalfirstjoin_videos: the shape of the joined video; first (the default) follows the first clip
crossfade_secondsnumberOptional0join_videos and join_audio: a crossfade between clips, 0–2 s (0, a plain cut, by default)0–2
output_formatmp3 | wavOptionalmp3join_audio: mp3 (the default) or wav

extract_audio

Save a video's sound, or convert an audio file, as MP3, M4A or WAV (output_format, mp3 by default; bitrate_kbps 64–320, 192 by default). An MP3 stays as it is and AAC goes into an M4A without re-encoding. Up to 60 min (WAV up to 15 min); audio_track picks a track when there are several. The file is an https link to a Sakaira file or any public file, up to 500 MB. 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.

Price: 10 credits an edit (≈ $0.11)

Parameters (4)
Parameters of extract_audio
ParameterTypeRequiredDefaultDescription
video_urlstringRequired—The video, or an audio file to convert: an https link to a Sakaira file or any public file, up to 500 MB
output_formatmp3 | m4a | wavOptionalmp3mp3 (the default), m4a or wav (lossless, up to 15 min)
bitrate_kbpsnumberOptional—MP3 or M4A bitrate, 64–320 kbps (192 by default), rounded to a standard rate64–320
audio_trackintegerOptional—Which audio track to use when the file has several, counted from 1≥ 1

remove_audio

Mute a video: remove its sound (mode remove, the default) or replace it with a silent track (mode mute), so it plays without audio. Most H.264, HEVC and WebM videos keep their picture as it is, so they lose nothing and can be up to 60 min long, with results up to 250 MB; other videos are re-encoded, up to 45 s of 1080p at 30 fps. The video is an https link to a Sakaira file or any public file, up to 500 MB. 10 credits per edit; a refused request costs nothing and a failed edit is refunded. Returns a fixed URL, kept until its expires_at, plus the cost and your remaining balance.

Price: 10 credits an edit (≈ $0.11)

Parameters (2)
Parameters of remove_audio
ParameterTypeRequiredDefaultDescription
video_urlstringRequired—The video: an https link to a Sakaira file or any public file, up to 500 MB
moderemove | muteOptionalremoveremove (the default) drops the sound; mute keeps a silent sound track instead

create_voiceover

Turn text into speech: voiceovers, narration, ads. Models: gemini-3.8-flash-tts (default): natural voices directed in plain English; gemini-3.8-flash-lite-tts: the same voices, cheaper; elevenlabs-v3: expressive voices with emotion tags and word timings; elevenlabs-multilingual-v2: steady narration with speed control; minimax-speech-2.8-hd: emotional voices for long texts; minimax-speech-2.8-turbo: MiniMax voices at a lower price; xai-tts: cheap voices with laughs and whispers; inworld-tts-1.5: low-cost voices, 73 in English; kokoro: fast English drafts; chatterbox-hd: dramatic voices with adjustable intensity; dia: two-speaker dialogue; orpheus: open-source English narration. Pick a voice with voice (describe_model lists each model's voices); style gives the Gemini voices directions in plain English; speed where the model has it. Priced per character of text. No voice cloning. Returns a fixed audio URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.

Price: from 2 credits per 1,000 characters (≈ $0.02)

Parameters (7)
Parameters of create_voiceover
ParameterTypeRequiredDefaultDescription
textstringRequired—The words to speak, verbatim. Each model has its own length cap (describe_model).Up to 15,000 characters
voicestringOptional—Voice name from the model's list (describe_model); the model's default when omittedUp to 100 characters
stylestringOptional—How to say it, in plain English, e.g. 'warm and slow, like a bedtime story' (Gemini models)Up to 1,000 characters
speednumberOptional—Speaking speed, 1 is normal (ElevenLabs Multilingual v2 0.7–1.2, MiniMax and Kokoro 0.5–2)0.5–2
modelgemini-3.8-flash-tts | gemini-3.8-flash-lite-tts | elevenlabs-v3 | elevenlabs-multilingual-v2 | minimax-speech-2.8-hd | minimax-speech-2.8-turbo | xai-tts | inworld-tts-1.5 | kokoro | chatterbox-hd | dia | orpheusOptionalgemini-3.8-flash-ttsgemini-3.8-flash-tts (default): natural voices directed in plain English; gemini-3.8-flash-lite-tts: the same voices, cheaper; elevenlabs-v3: expressive voices with emotion tags and word timings; elevenlabs-multilingual-v2: steady narration with speed control; minimax-speech-2.8-hd: emotional voices for long texts; minimax-speech-2.8-turbo: MiniMax voices at a lower price; xai-tts: cheap voices with laughs and whispers; inworld-tts-1.5: low-cost voices, 73 in English; kokoro: fast English drafts; chatterbox-hd: dramatic voices with adjustable intensity; dia: two-speaker dialogue; orpheus: open-source English narration. Call list_models for what each model costs. describe_model lists each model's voices.
extrasobjectOptional—Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here.
confirmbooleanOptionalfalseSet true to accept a quote above 500 credits

create_music

Generate a music track from a prompt (genre, mood, instruments, tempo), with lyrics or as an instrumental. Models: lyria-3.5 (default): songs or instrumental tracks up to about 3 minutes; elevenlabs-music-2.5: tracks with an exact length for ads and videos; minimax-music-2.6: songs with lyrics or instrumental tracks; stable-audio-3: instrumental beds and ambience with an exact length. duration_seconds is exact on elevenlabs-music-2.5 and stable-audio-3 (30 s by default there) and a hint on lyria-3.5. Returns a fixed MP3 URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.

Price: from 8 credits a track (≈ $0.08)

Parameters (7)
Parameters of create_music
ParameterTypeRequiredDefaultDescription
promptstringRequired—The music to make: genre, mood, instruments, tempo, vocals, structureUp to 5,000 characters
lyricsstringOptional—Lyrics to sing, one line per line; [Verse] and [Chorus] tags helpUp to 3,500 characters
instrumentalbooleanOptionalfalseNo vocals
duration_secondsintegerOptional—Length in seconds: exact on elevenlabs-music-2.5 (3–600) and stable-audio-3 (1–380), 30 by default there; a hint on lyria-3.5; minimax-music-2.6 picks its own length1–600
modellyria-3.5 | elevenlabs-music-2.5 | minimax-music-2.6 | stable-audio-3Optionallyria-3.5lyria-3.5 (default): songs or instrumental tracks up to about 3 minutes; elevenlabs-music-2.5: tracks with an exact length for ads and videos; minimax-music-2.6: songs with lyrics or instrumental tracks; stable-audio-3: instrumental beds and ambience with an exact length. Call list_models for what each model costs.
extrasobjectOptional—Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here.
confirmbooleanOptionalfalseSet true to accept a quote above 500 credits

transcribe

Transcribe an audio file (https URL) into text with word timings and speaker labels. Models: scribe-v2 (default): transcripts with word timings and speakers. Returns the text plus an SRT subtitle file and a JSON file with every word's timing. Priced per started minute of the file, whose length is read before any charge; keyterms (names, jargon) add 30%. Call list_models for prices and describe_model for a model's options.

Price: 1.6 credits a minute (≈ $0.02)

Parameters (8)
Parameters of transcribe
ParameterTypeRequiredDefaultDescription
audio_urlstringRequired—The audio file to transcribe (https)
languagestringOptional—ISO 639 language code (en, es, …); detected when omitted2–8 characters
speakersbooleanOptionaltrueLabel who is speaking
audio_eventsbooleanOptionaltrueTag sounds like (laughter) or (applause)
keytermsstring[]Optional—Names or jargon to spell right, up to 100; adds 30% to the price
modelscribe-v2Optionalscribe-v2scribe-v2 (default): transcripts with word timings and speakers. Call list_models for what each model costs.
extrasobjectOptional—Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here.
confirmbooleanOptionalfalseSet true to accept a quote above 500 credits

enhance_audio

Clean a voice recording from an audio file (https URL): elevenlabs-audio-isolation removes background noise, music and reverb; deepfilternet-3 removes noise, more cheaply. Models: elevenlabs-audio-isolation (default): removing noise and music from a voice; deepfilternet-3: cheap noise removal. Priced per minute of the file, whose length is read before any charge. Returns a fixed audio URL, kept until its expires_at, plus the cost and your remaining balance. Call list_models for prices and describe_model for a model's options.

Price: from 12 credits a minute (≈ $0.13)

Parameters (5)
Parameters of enhance_audio
ParameterTypeRequiredDefaultDescription
audio_urlstringRequired—The voice recording to clean: an audio file (https)
output_formatmp3 | wav | flac | m4aOptionalmp3deepfilternet-3 only; Audio Isolation returns its own format
modelelevenlabs-audio-isolation | deepfilternet-3Optionalelevenlabs-audio-isolationelevenlabs-audio-isolation (default): removing noise and music from a voice; deepfilternet-3: cheap noise removal. Call list_models for what each model costs.
extrasobjectOptional—Model-specific parameters passed through (see describe_model). Priced or top-level parameters are not accepted here.
confirmbooleanOptionalfalseSet true to accept a quote above 500 credits

save_brand_kit

Create or update the account's brand kit (one per account). Call it when the user wants to save or change their brand. Send only what changes: a field left out or null keeps its saved value. The fields: name (needed the first time), up to 6 colors as #RRGGBB, up to 3 fonts by name (heading, body or accent), tone (up to 500 characters), notes (up to 1,000) and voice (a create_voiceover model and one of its voices). colors and fonts replace the whole list, and [] clears one; "" clears tone or notes; clear_voice: true removes the voice. With a paid plan the kit also takes images by https URL (PNG, JPEG or WebP, up to 20 MB each): one logo, which replaces the current one, and up to 10 reference images; remove_image_ids removes saved ones. Returns the kit and edit_url, the Brand kit page where the user can drop files, plus, with a paid plan, upload: a ready command to upload a file from this computer. Free.

Price: Free

Parameters (9)
Parameters of save_brand_kit
ParameterTypeRequiredDefaultDescription
namestringOptional—The brand's name, needed when the kit is created. Left out or null keeps the saved name; it cannot be clearedUp to 60 characters
colorsobject[]Optional—Up to 6 brand colors. Replaces the saved list; [] clears it, null keeps it
fontsobject[]Optional—Up to 3 fonts. Replaces the saved list; [] clears it, null keeps it
tonestringOptional—How the brand talks, e.g. friendly, short sentences, no jargon. Left out or null keeps the saved tone; "" clears itUp to 500 characters
notesstringOptional—Style notes: what to do and what to avoid. Left out or null keeps the saved notes; "" clears themUp to 1,000 characters
voiceobjectOptional—The voice for the brand's voiceovers. Left out or null keeps the saved voice; clear_voice removes it
clear_voicebooleanOptional—true removes the saved voice (send it without voice)
add_imagesobject[]Optional—Images to add by URL, with a paid plan: one logo and up to 10 reference images per kit
remove_image_idsstring[]Optional—Ids of saved images to remove, as get_brand_kit lists them

get_brand_kit

Return the account's brand kit: name, colors, fonts, tone, notes, voice, and its logo and reference images with their ids and URLs. Call it before making anything for the user's brand (an image, a video, a voiceover, a post) and apply it: put its colors, fonts and tone into the prompt; pass the logo or reference image URLs as reference images only when the piece should show them; never ask a model to redraw the logo from memory; use the kit's voice for voiceovers unless the user picks another. The kit is null when there is none yet (create one with save_brand_kit). Also returns edit_url, the Brand kit page in the user's Library where they can drop files, how_to_use and, with a paid plan, upload: a ready command to upload a file from this computer. Free.

Price: Free

delete_brand_kit

Delete the account's brand kit for good, with its logo and reference images: their URLs stop working. Call it only when the user asks to delete their brand kit; to change it, call save_brand_kit. Files in the user's library are not touched. Free.

Price: Free

delete_asset

Delete a file for good: it leaves your library and its URL stops working. Pass asset_id or the file's url. Free; the credits it cost are not refunded.

Price: Free

Parameters (2)
Parameters of delete_asset
ParameterTypeRequiredDefaultDescription
asset_idstringOptional—The file's asset_id, as create_image or get_job returned it
urlstringOptional—Or the file's URL, exactly as Sakaira returned it. Pass asset_id or url, not both

list_models

List the available models with vendor, category, price in credits and which tools use them. Filter by category (image, video, voice, music, audio, utility) or free text. Free.

Price: Free

Parameters (2)
Parameters of list_models
ParameterTypeRequiredDefaultDescription
categoryimage | video | voice | music | audio | utilityOptional——
querystringOptional—Free-text filter on name, vendor or idUp to 100 characters

describe_model

Return a model’s parameters (name, type, default), pricing rule and the tools that use it. Free.

Price: Free

Parameters (1)
Parameters of describe_model
ParameterTypeRequiredDefaultDescription
modelstringRequired—Model id, e.g. nano-banana-2

check_balance

Return your plan and credits: the subscription's plan with its renewal or end date, your balance, and each lot of credits with its expiry (a plan's credits at the end of their month, a pack's 90 days after purchase, the free ones 30 days after signup), and without a subscription the date your next file is deleted. Optionally the deterministic cost of a tool call given its input. Free.

Price: Free

Parameters (2)
Parameters of check_balance
ParameterTypeRequiredDefaultDescription
toolstringOptional—Optional: estimate the cost of calling this tool…
inputobjectOptional—…with this input

buy_credits

Credit packs are for subscribers: create a secure Stripe Checkout link for a pack of 700 to 7,000 credits, which expire 90 days after purchase. Without a subscription it returns the plans link instead, where the user subscribes; plans are changed there too. The checkout page shows the price. Free.

Price: Free

Parameters (1)
Parameters of buy_credits
ParameterTypeRequiredDefaultDescription
packpack_10 | pack_25 | pack_50 | pack_100Optionalpack_10pack_10 (700 credits), pack_25 (1,750), pack_50 (3,500), pack_100 (7,000)

get_job

Return the status (queued, running, succeeded, failed) and, when done, the fixed URLs (each kept until its expires_at) and cost of a job created by create_video or any other asynchronous tool. Without job_id, list your 10 most recent jobs, newest first, with their status, cost and file URLs: use it to recover a result whose reply was lost or timed out, instead of generating again. Free.

Price: Free

Parameters (1)
Parameters of get_job
ParameterTypeRequiredDefaultDescription
job_idstringOptional—Omit job_id to list your 10 most recent jobs, e.g. after a lost reply

spend_report

Summarize credits spent today, in the last 7 or 30 days, or all time, broken down by tool. Free.

Price: Free

Parameters (1)
Parameters of spend_report
ParameterTypeRequiredDefaultDescription
periodtoday | 7d | 30d | allOptional30d—

send_feedback

Send feedback to the Sakaira team from inside the assistant: kind (bug, missing, confusing, praise) and a message. Free.

Price: Free

Parameters (2)
Parameters of send_feedback
ParameterTypeRequiredDefaultDescription
kindbug | missing | confusing | praiseRequired——
messagestringRequired—3–4,000 characters

Credits

  • Every result carries cost.credits and balance.credits; balance.low turns true below 50 credits.
  • check_balance with tool and input returns the exact cost of that call before you make it.
  • A job above 500 credits returns ok: false with needs_confirmation: true and an estimate (its credits and a cost breakdown); call again with confirm: true to run it.
  • A failed job's credits usually come back automatically; error.refunded_credits gives the exact number, which can be less than the job's cost, arrive later instead of in that reply, or be zero if the original payment was itself refunded or disputed.
  • Free tools: save_brand_kit, get_brand_kit, delete_brand_kit, delete_asset, list_models, describe_model, check_balance, buy_credits, get_job, spend_report, send_feedback.

Errors

A failure is { ok: false, error: { code, message, retryable, refunded_credits? }, balance? }.

Error codes, what they mean and whether to retry
CodeMeaningRetry
invalid_inputUsually the input failed validation before any charge, and the message names the field: fix it, then call again. The model can also reject the input after you were charged; that message may not name a field, retryable is false, and error.refunded_credits says what came back.No
insufficient_creditsNot enough credits for the job. The message links to the plans or a credit pack; call again once the account has credits.No
daily_free_capAn account that never paid reached its daily spending cap. It resets daily, and a subscription lifts it.No
too_many_active_jobsThe account already has 3 jobs running. Wait for one to finish (get_job), then call again.Yes
provider_failedThe model's provider failed, timed out, or its result could not be saved. What comes back varies: error.refunded_credits gives the exact number, which can be less than the job's cost, arrive later instead of in this reply, or be zero if the original payment was itself refunded or disputed. Call again.Yes
tool_disabledThe tool, or the model you chose, is switched off for now: pick another model (list_models) or try again later. buy_credits returns this too when it can't sell a pack.No
maintenancePlanned downtime. Call again in a few minutes.Yes
rate_limitedToo many calls in a short time. Back off, then call again.Yes
not_foundThe job, file or model id doesn't exist, or the job or file belongs to another account. The same code covers a brand-kit image id that isn't in your kit, and a kit that was deleted while it was being saved.No
unauthorizedA missing, invalid or expired token never reaches this code: the server rejects those before any tool runs, as an HTTP 401 challenge. In a tool's reply, it means the account was deleted; its token still verifies for up to an hour afterwards.No
internalAn unexpected server error, logged as a bug. Call again — unless the message names a job: call get_job first, since that job may have already finished and been charged, and calling again could charge it twice.Yes

Each failure's own retryable field is what decides whether to call again — the table shows the usual value for that code.

For machines

Listed on

Updated October 2026 · Changelog

Your first 100 credits are waiting.

Get 100 free credits

No card · 60-second setup