beatraDocs

MCP tool reference

Every tool on the Beatra MCP server, generated from its tool definitions: what each tool does, its arguments, what it returns, and whether it consumes credits.

The Beatra MCP server at https://mcp.beatra.ai/mcp offers the tools below. This page is generated from the Beatra MCP server's tool list each time the docs are published. The live list is GET https://mcp.beatra.ai/tools, or tools/list on the MCP endpoint.

The installed Beatra Skill connects to this server and calls these tools for your agent, after one sign-in in the browser. Set it up with Install the Beatra Skill. Read this page to see what a call does before it runs; if a call fails, find its error code on Troubleshooting.

How to read each tool

RowMeaning
CreditsWhether a successful call consumes Beatra credits. Generation prices come from beatra.models.list; social data prices from beatra.social.tools.get.
Runs asAn asynchronous task you poll with beatra.tasks.get, or a direct result.
EffectWhether the call only reads, adds data to the account, or changes work in progress.
Repeat-safeWhether an identical repeated call has the same effect. Task tools take a client_request_id for this.
ScopesThe permissions the sign-in must grant. A missing one returns insufficient_scope.

Images

beatra.images.generate

Generate one to four images from a text prompt.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, images:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoOmit or use 'auto' unless the user explicitly requests a concrete model. An explicit model is evaluated exactly as requested and is never substituted.
Default: auto
Values: auto, gpt-image-2.5-flare, gpt-image-2.5-sunburst, gpt-image-2, image-01-live, wan2.7-image-pro, wan2.7-image, qwen-image-3.0-pro, qwen-image-3.0, qwen-image-2.0-pro, qwen-image-2.0
promptstringYesRequired prompt containing at least one non-whitespace character.
Limits: length ≥ 1
countintegerNoRequested output image count. The public range is one through four, and the selected model must support the exact count; Beatra does not split the request.
Default: 1
Limits: 1–4
canvasImagePresetCanvas | ImageTargetCanvasNoDesired output canvas. Presets are quality tiers, and target dimensions may be normalized or vary; inspect output images for actual dimensions.
Default: {"type":"preset","tier":"2K","aspect":"16:9"}
seedintegerNoOptional random seed. Supplying it constrains model eligibility; omit it for model-managed randomness.
Limits: 0–2147483647
negative_promptstringNoOptional content or qualities to avoid. Supplying it constrains model eligibility and is rejected when no compatible model is available.
enhance_promptbooleanNoAsk the model to rewrite the prompt before generation. Omit or use null to keep the prompt exactly as written; an explicit boolean constrains model eligibility.
palettearray of ImagePaletteColorNoThree to ten weighted RGB colors. Runtime validation requires the weights to sum exactly to 1.0000.
Limits: items 3–10
output_relationshipImageOutputRelationshipNoUse independent for unrelated results, or sequence for a related image set. An explicit value constrains model eligibility and is rejected when unsupported.
Default: independent
Values: independent, sequence
reasoningbooleanNoOmit or use null to retain the selected model's documented default; an explicit boolean constrains model eligibility.
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Generate one to four images from text without source images. Omit model unless the user explicitly requests one; call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.images.transform

Create new images from one to four ordered reference images and a prompt.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, images:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoOmit or use 'auto' unless the user explicitly requests a concrete model. An explicit model is evaluated exactly as requested and is never substituted.
Default: auto
Values: auto, gpt-image-2.5-flare, gpt-image-2.5-sunburst, gpt-image-2, image-01-live, wan2.7-image-pro, wan2.7-image, qwen-image-3.0-pro, qwen-image-3.0, qwen-image-2.0-pro, qwen-image-2.0
promptstringYesRequired prompt containing at least one non-whitespace character.
Limits: length ≥ 1
countintegerNoRequested output image count. The public range is one through four, and the selected model must support the exact count; Beatra does not split the request.
Default: 1
Limits: 1–4
canvasImageTransformPresetCanvas | ImageTargetCanvasNoDesired output canvas. Preset source inherits the last input image's ratio; the omitted default is 2K at 16:9.
Default: {"type":"preset","tier":"2K","aspect":"16:9"}
seedintegerNoOptional random seed. Supplying it constrains model eligibility; omit it for model-managed randomness.
Limits: 0–2147483647
negative_promptstringNoOptional content or qualities to avoid. Supplying it constrains model eligibility and is rejected when no compatible model is available.
enhance_promptbooleanNoAsk the model to rewrite the prompt before generation. Omit or use null to keep the prompt exactly as written; an explicit boolean constrains model eligibility.
palettearray of ImagePaletteColorNoThree to ten weighted RGB colors. Runtime validation requires the weights to sum exactly to 1.0000.
Limits: items 3–10
imagesarray of ImageMediaInputUrl | ImageMediaInputArtifact | ImageMediaInputDataUriYesOrdered artifact, HTTPS URL, or data URI references.
Limits: items 1–4
output_relationshipImageOutputRelationshipNoUse independent for unrelated results, or sequence for a related image set. An explicit value constrains model eligibility and is rejected when unsupported.
Default: independent
Values: independent, sequence
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Transform one to four ordered reference images with a prompt; when canvas aspect is source, the last reference anchors the ratio. Omit model unless the user explicitly requests one; call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.images.edit

Edit a base image by instruction, optionally guided by more reference images and marked regions.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, images:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoOmit or use 'auto' unless the user explicitly requests a concrete model. An explicit model is evaluated exactly as requested and is never substituted.
Default: auto
Values: auto, gpt-image-2.5-flare, gpt-image-2.5-sunburst, gpt-image-2, image-01-live, wan2.7-image-pro, wan2.7-image, qwen-image-3.0-pro, qwen-image-3.0, qwen-image-2.0-pro, qwen-image-2.0
promptstringYesRequired prompt containing at least one non-whitespace character.
Limits: length ≥ 1
countintegerNoRequested output image count. The public range is one through four, and the selected model must support the exact count; Beatra does not split the request.
Default: 1
Limits: 1–4
canvasImageEditPresetCanvas | ImageTargetCanvasNoDesired output canvas. The default is a 2K tier derived from the first base image's ratio; actual output dimensions remain authoritative.
Default: {"type":"preset","tier":"2K","aspect":"source"}
seedintegerNoOptional random seed. Supplying it constrains model eligibility; omit it for model-managed randomness.
Limits: 0–2147483647
negative_promptstringNoOptional content or qualities to avoid. Supplying it constrains model eligibility and is rejected when no compatible model is available.
enhance_promptbooleanNoAsk the model to rewrite the prompt before generation. Omit or use null to keep the prompt exactly as written; an explicit boolean constrains model eligibility.
palettearray of ImagePaletteColorNoThree to ten weighted RGB colors. Runtime validation requires the weights to sum exactly to 1.0000.
Limits: items 3–10
imagesarray of ImageMediaInputUrl | ImageMediaInputArtifact | ImageMediaInputDataUriYesOrdered inputs; images[0] is the base and later entries are references.
Limits: items 1–4
edit_regionsarray of ImageEditRegionNoFlat normalized rectangles keyed by an input image_index. Runtime validation enforces cross-coordinate and collection relations.
Limits: items 1–8
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Edit images[0] as the base image; later images are ordered references and optional regions use normalized coordinates. Omit model unless the user explicitly requests one; call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.images.understand

Answer questions about one to eight images.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, images:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoOmit or use 'auto' unless the user explicitly requests a concrete model. An explicit model is evaluated exactly as requested and is never substituted.
Default: auto
Values: auto, MiniMax-M3
promptstringYesRequired question or instruction containing non-whitespace characters.
Limits: length 1–4000
imagesarray of MediaInputUrl | MediaInputArtifact | ImageUnderstandingDataUriYesOne through eight ordered image inputs. Each admitted image is billed once.
Limits: items 1–8
detailstringNoVisual detail preference. It does not change Beatra's per-image price.
Default: default
Values: default, low, high
response_formatstringNoValues: text, json
temperaturenumberNoLimits: 0–2
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Answer questions about one to eight ordered images, each limited to 10 MiB. Upload a local image with beatra.assets.upload first and pass it as an artifact; use data_uri only for very small images. Successful tasks cost 5 credits per admitted image; detail does not affect price. Omit model unless the user explicitly requests one; call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

Video

beatra.videos.enhance_prompt

Rewrite a video prompt into a fuller one, optionally using image, video, or audio context. The result is the rewritten text.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, videos:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelanyNoCompatibility input only. Its value and type are ignored in the first release; Beatra resolves the available prompt-enhancement model internally.
Default: auto
promptstringYesRequired creative intent to expand into a production-ready video prompt.
Limits: length 1–7000
durationintegerYesTarget video duration in integer seconds.
Limits: 4–15
aspect_ratiostringYesTarget video aspect ratio. Text-only requests cannot use adaptive.
Values: adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
first_frameMediaInputUrl | MediaInputArtifact | MediaInputDataUriNoOptional strict first-frame context image.
last_frameMediaInputUrl | MediaInputArtifact | MediaInputDataUriNoOptional strict last-frame context image.
referencesarray of VideoReferenceNoOptional ordered image, video, or audio context. Reference mode and strict-frame mode are mutually exclusive.
Limits: items ≤ 11
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Enhance a creative video prompt from optional image, video, or audio context. This creates an asynchronous text-only task and does not generate video. The model compatibility field is ignored. This asynchronous task consumes Beatra credits; successful completion is charged afterward from actual input and output tokens; failed or canceled tasks are not charged. Submit exactly once, then poll with beatra.tasks.get. Reuse client_request_id only for an identical retry.

beatra.videos.generate

Generate a video from a text prompt, with optional driving audio on models that support it.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, videos:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoUse auto for request-dependent selection from the ordered live candidates. A concrete model is evaluated exactly as requested and is never substituted.
Default: auto
Values: auto, minimax-h3, wan3.0-video, wan3.0-video-prime, happyhorse-1.1-t2v, wan2.7-t2v, seedance-2, seedance-2-fast, seedance-2-mini, seedance-2.5
negative_promptstringNoContent or qualities to avoid when supported by the selected model.
Limits: length ≤ 500
durationinteger | "auto"NoRequested output duration as integer seconds, or 'auto' when the selected model may choose its documented duration. Omit to use the selected model default.
aspect_ratiostringNoExplicit output ratio when the selected model accepts it. Omit for a declared model default, source-derived ratio, or fixed model behavior.
Values: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 21:9, 9:21, adaptive
resolutionstringNoRequested model-defined output resolution tier. Omit to use the selected model's declared default; unsupported tiers are rejected rather than coerced.
Values: 480p, 720p, 1080p, 2k, 4k
seedintegerNoLimits: 0–2147483647
enhance_promptbooleanNoAsk the selected model to rewrite the prompt before generation. Omit or use null to keep the prompt exactly as written.
watermarkbooleanNoWhether generated video should include the model watermark.
generate_audiobooleanNoWhether the selected model should generate synchronized audio.
web_searchbooleanNoWhether the selected model may use web search during generation.
return_last_framebooleanNoWhether to return the generated video's last frame as an image artifact.
output_formatstringNoOptional output container. Omit or use mp4 for the existing default; models that advertise mov can return MOV without transcoding.
Values: mp4, mov
promptstringYesRequired description of the video to generate without source image or video media.
Limits: length 1–20000
audioMediaInputUrl | MediaInputArtifact | MediaInputDataUriNoOptional driving audio for models that support audio-conditioned generation.
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Generate from text when there is no source image or video. Supports optional driving audio on compatible models. Omit model unless the user explicitly requests one; call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.videos.animate

Generate a video that starts from one image, optionally with driving audio.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, videos:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoUse auto for request-dependent selection from the ordered live candidates. A concrete model is evaluated exactly as requested and is never substituted.
Default: auto
Values: auto, minimax-h3, wan3.0-video, wan3.0-video-prime, happyhorse-1.1-i2v, wan2.7-i2v, seedance-2, seedance-2-fast, seedance-2-mini, seedance-2.5
negative_promptstringNoContent or qualities to avoid when supported by the selected model.
Limits: length ≤ 500
durationinteger | "auto"NoRequested output duration as integer seconds, or 'auto' when the selected model may choose its documented duration. Omit to use the selected model default.
aspect_ratiostringNoExplicit output ratio when the selected model accepts it. Omit for a declared model default, source-derived ratio, or fixed model behavior.
Values: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 21:9, 9:21, adaptive
resolutionstringNoRequested model-defined output resolution tier. Omit to use the selected model's declared default; unsupported tiers are rejected rather than coerced.
Values: 480p, 720p, 1080p, 2k, 4k
seedintegerNoLimits: 0–2147483647
enhance_promptbooleanNoAsk the selected model to rewrite the prompt before generation. Omit or use null to keep the prompt exactly as written.
watermarkbooleanNoWhether generated video should include the model watermark.
generate_audiobooleanNoWhether the selected model should generate synchronized audio.
web_searchbooleanNoWhether the selected model may use web search during generation.
return_last_framebooleanNoWhether to return the generated video's last frame as an image artifact.
output_formatstringNoOptional output container. Omit or use mp4 for the existing default; models that advertise mov can return MOV without transcoding.
Values: mp4, mov
promptstringNoOptional motion, scene, and camera instructions for animating the opening image.
Limits: length ≤ 20000
imageMediaInputUrl | MediaInputArtifact | MediaInputDataUriYesRequired strict first-frame image; this is not a loose visual reference.
driving_audioMediaInputUrl | MediaInputArtifact | MediaInputDataUriNoOptional driving audio. Supplying it requires a model that supports this control.
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Animate a first-frame image, optionally with driving audio; use interpolate instead when both first and last frames are supplied. Call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.videos.generate_from_references

Generate a video from ordered image, video, and audio references.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, videos:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoUse auto for request-dependent selection from the ordered live candidates. A concrete model is evaluated exactly as requested and is never substituted.
Default: auto
Values: auto, minimax-h3, wan3.0-video, wan3.0-video-prime, happyhorse-1.1-r2v, wan2.7-r2v, seedance-2, seedance-2-fast, seedance-2-mini, seedance-2.5
negative_promptstringNoContent or qualities to avoid when supported by the selected model.
Limits: length ≤ 500
durationinteger | "auto"NoRequested output duration as integer seconds, or 'auto' when the selected model may choose its documented duration. Omit to use the selected model default.
aspect_ratiostringNoExplicit output ratio when the selected model accepts it. Omit for a declared model default, source-derived ratio, or fixed model behavior.
Values: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 21:9, 9:21, adaptive
resolutionstringNoRequested model-defined output resolution tier. Omit to use the selected model's declared default; unsupported tiers are rejected rather than coerced.
Values: 480p, 720p, 1080p, 2k, 4k
seedintegerNoLimits: 0–2147483647
enhance_promptbooleanNoAsk the selected model to rewrite the prompt before generation. Omit or use null to keep the prompt exactly as written.
watermarkbooleanNoWhether generated video should include the model watermark.
generate_audiobooleanNoWhether the selected model should generate synchronized audio.
web_searchbooleanNoWhether the selected model may use web search during generation.
return_last_framebooleanNoWhether to return the generated video's last frame as an image artifact.
output_formatstringNoOptional output container. Omit or use mp4 for the existing default; models that advertise mov can return MOV without transcoding.
Values: mp4, mov
promptstringNoOptional instructions describing how the ordered references should guide the output.
Limits: length ≤ 20000
referencesarray of VideoReferenceYesOne to fifty ordered image, video, or audio references. Model-specific kind, count, duration, and combination limits still apply.
Limits: items 1–50
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Generate from ordered image, video, and audio references. Use animate for one strict opening image and interpolate for strict first and last frames. Call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.videos.interpolate

Generate a video that ends on a given last frame, optionally starting from a given first frame.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, videos:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoUse auto for request-dependent selection from the ordered live candidates. A concrete model is evaluated exactly as requested and is never substituted.
Default: auto
Values: auto, minimax-h3, wan3.0-video, wan3.0-video-prime, wan2.7-i2v, seedance-2, seedance-2-fast, seedance-2-mini, seedance-2.5
negative_promptstringNoContent or qualities to avoid when supported by the selected model.
Limits: length ≤ 500
durationinteger | "auto"NoRequested output duration as integer seconds, or 'auto' when the selected model may choose its documented duration. Omit to use the selected model default.
aspect_ratiostringNoExplicit output ratio when the selected model accepts it. Omit for a declared model default, source-derived ratio, or fixed model behavior.
Values: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 21:9, 9:21, adaptive
resolutionstringNoRequested model-defined output resolution tier. Omit to use the selected model's declared default; unsupported tiers are rejected rather than coerced.
Values: 480p, 720p, 1080p, 2k, 4k
seedintegerNoLimits: 0–2147483647
enhance_promptbooleanNoAsk the selected model to rewrite the prompt before generation. Omit or use null to keep the prompt exactly as written.
watermarkbooleanNoWhether generated video should include the model watermark.
generate_audiobooleanNoWhether the selected model should generate synchronized audio.
web_searchbooleanNoWhether the selected model may use web search during generation.
return_last_framebooleanNoWhether to return the generated video's last frame as an image artifact.
output_formatstringNoOptional output container. Omit or use mp4 for the existing default; models that advertise mov can return MOV without transcoding.
Values: mp4, mov
promptstringNoOptional instructions for the motion ending at the required last frame.
Limits: length ≤ 20000
first_frameMediaInputUrl | MediaInputArtifact | MediaInputDataUriNoOptional image that must be the video's first frame. Omit it for a last-frame-only request when the selected model advertises that input combination.
last_frameMediaInputUrl | MediaInputArtifact | MediaInputDataUriYesRequired image that must be the video's last frame.
driving_audioMediaInputUrl | MediaInputArtifact | MediaInputDataUriNoOptional driving audio. Supplying it requires a model that supports this control.
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Generate toward a required last frame, optionally constrained by a first frame and driving audio. Use animate when only a first frame exists. Call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.videos.edit

Edit an existing video by instruction, with optional references.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, videos:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoUse auto for request-dependent selection from the ordered live candidates. A concrete model is evaluated exactly as requested and is never substituted.
Default: auto
Values: auto, wan3.0-video, wan3.0-video-prime, happyhorse-1.0-video-edit, wan2.7-videoedit, seedance-2, seedance-2-fast, seedance-2-mini, seedance-2.5
negative_promptstringNoContent or qualities to avoid when supported by the selected model.
Limits: length ≤ 500
durationinteger | "auto"NoRequested output duration as integer seconds, or 'auto' when the selected model may choose its documented duration. Omit to use the selected model default.
aspect_ratiostringNoExplicit output ratio when the selected model accepts it. Omit for a declared model default, source-derived ratio, or fixed model behavior.
Values: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 21:9, 9:21, adaptive
resolutionstringNoRequested model-defined output resolution tier. Omit to use the selected model's declared default; unsupported tiers are rejected rather than coerced.
Values: 480p, 720p, 1080p, 2k, 4k
seedintegerNoLimits: 0–2147483647
enhance_promptbooleanNoAsk the selected model to rewrite the prompt before generation. Omit or use null to keep the prompt exactly as written.
watermarkbooleanNoWhether generated video should include the model watermark.
generate_audiobooleanNoWhether the selected model should generate synchronized audio.
web_searchbooleanNoWhether the selected model may use web search during generation.
return_last_framebooleanNoWhether to return the generated video's last frame as an image artifact.
output_formatstringNoOptional output container. Omit or use mp4 for the existing default; models that advertise mov can return MOV without transcoding.
Values: mp4, mov
source_videoMediaInputUrl | MediaInputArtifact | MediaInputDataUriYesRequired video whose existing content will be edited.
instructionstringYesRequired instruction describing changes to the source video.
Limits: length 1–20000
referencesarray of VideoReferenceNoOptional ordered image, video, or audio references. The selected model must support every supplied reference kind and count.
Limits: items ≤ 49
audio_settingstringNoOptional edit-audio policy: auto lets a compatible model choose, while origin requests preservation of source audio.
Values: auto, origin
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Edit one source video by instruction, with optional multimodal references; do not use this to extend a clip. Input plus output duration may be billable. Call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.videos.extend

Add new footage before or after an existing clip.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, videos:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoUse auto for request-dependent selection from the ordered live candidates. A concrete model is evaluated exactly as requested and is never substituted.
Default: auto
Values: auto, wan3.0-video, wan3.0-video-prime, wan2.7-i2v, seedance-2, seedance-2-fast, seedance-2-mini, seedance-2.5
negative_promptstringNoContent or qualities to avoid when supported by the selected model.
Limits: length ≤ 500
durationintegerYesRequired final returned-video duration in integer seconds. It must exceed the trusted source-video duration; model-specific admission may narrow the range.
Limits: 2–30
aspect_ratiostringNoExplicit output ratio when the selected model accepts it. Omit for a declared model default, source-derived ratio, or fixed model behavior.
Values: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 21:9, 9:21, adaptive
resolutionstringNoRequested model-defined output resolution tier. Omit to use the selected model's declared default; unsupported tiers are rejected rather than coerced.
Values: 480p, 720p, 1080p, 2k, 4k
seedintegerNoLimits: 0–2147483647
enhance_promptbooleanNoAsk the selected model to rewrite the prompt before generation. Omit or use null to keep the prompt exactly as written.
watermarkbooleanNoWhether generated video should include the model watermark.
generate_audiobooleanNoWhether the selected model should generate synchronized audio.
web_searchbooleanNoWhether the selected model may use web search during generation.
return_last_framebooleanNoWhether to return the generated video's last frame as an image artifact.
output_formatstringNoOptional output container. Omit or use mp4 for the existing default; models that advertise mov can return MOV without transcoding.
Values: mp4, mov
videoMediaInputUrl | MediaInputArtifact | MediaInputDataUriYesThe single source video to continue.
directionstringYesGenerate new content immediately before or after the source video's content.
Values: before, after
instructionstringYesRequired instruction describing how the source video should continue.
Limits: length 1–20000
referencesarray of VideoReferenceNoOptional ordered image, video, or audio references. The selected model must support every supplied reference kind and count.
Limits: items ≤ 49
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Generate footage immediately before or after one source clip. Use edit to alter existing frames. Duration is a required integer final returned-video duration, must exceed the trusted source duration, and does not accept auto. Call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.videos.compose

Join your own clips into one MP4, with optional narration, background music, and burned-in subtitles.

CreditsFree
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, videos:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
clipsarray of ComposeClipYesLimits: items 1–12
narrationMediaInputArtifactNo—
musicComposeMusicNo—
subtitlesarray of ComposeSubtitleNoLimits: items ≤ 200
canvasstringNoDefault: 9:16
Values: 9:16, 16:9, 1:1, 3:4
modelstringNoDefault: auto
Values: auto, beatra-compose-v1
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Join your own video clips into one MP4 with optional narration, ducked music, and burned-in subtitles. Set keep_audio on a clip to keep that clip's own sound, such as a lip-synced presenter take; other clips are muted. This call does not consume Beatra credits. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.videos.understand

Answer questions about one video.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, videos:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoOmit or use 'auto' unless the user explicitly requests MiniMax-M3.
Default: auto
Values: auto, MiniMax-M3
promptstringYesRequired question or instruction containing non-whitespace characters.
Limits: length 1–32000
videoMediaInputUrl | MediaInputArtifact | VideoUnderstandingDataUriYesThe single video input. Beatra samples internally at 1 fps, 0.5 fps from 120 seconds, and 0.2 fps from 240 seconds.
detailstringNoVisual detail preference. It does not change Beatra's per-second price.
Default: default
Values: default, low, high
response_formatstringNoValues: text, json
temperaturenumberNoLimits: 0–2
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Answer questions about one video limited to 50 MiB and 360 seconds. Upload a local video with beatra.assets.upload first and pass it as an artifact; use data_uri only for very small videos. Beatra samples at 1 fps, or 0.5 fps from 120s and 0.2 fps from 240s; successful tasks cost 0.4 credits per rounded-up admitted second and detail does not affect price. Omit model unless the user explicitly requests one; call beatra.models.list before model or cost comparisons. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

Music

beatra.music.generate

Generate music from a prompt, with optional lyrics or reference audio.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, music:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
modelstringNoOmit unless the user requests a model.
Default: auto
Values: auto, minimax-music-3.0, suno-6, suno-5.5, suno-v6
promptstringYesStyle, mood, genre, and instrumentation. When lyrics are supplied (or Suno custom mode is on) this maps to the provider's style-conditioning field; otherwise it is the song description the model writes the song from. Either way it is not an instruction field: execution directives written here (for example "do not omit anything", "sing it verbatim", "make chapter three differ from chapter one") are not read as instructions and will not be obeyed. Put the words to be sung in lyrics, or set instrumental to true for a track with no vocals.
Limits: length 1–2000
lyricsstringNoOptional lyrics text. Must be omitted for instrumental music.
Limits: length ≤ 5000
instrumentalbooleanNoWhen true, generate instrumental music without vocals.
Default: false
titlestringNoLimits: length ≤ 100
model_optionsMusicModelOptionsNoOptions grouped by public music model family.
reference_audioMediaInputUrl | MediaInputArtifact | MediaInputDataUriNo—
client_request_idstringYesLimits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Generate music from a prompt, with optional lyrics or reference audio. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

Speech

beatra.speech.prepare_script

Turn text into a speech script directed for a voice and model (emotion, pauses, pronunciation) that beatra.speech.synthesize takes as it is. It can also recommend voices.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, speech:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
inputstringYesText to perform, in any supported language, 1 to 50,000 characters. It may already contain Beatra speech markup such as {pause 0.5} or {pron 行 hang2}; the AI Director keeps it and only adds to it. The words themselves are never changed.
Limits: length 1–50000
instructionsstringNoOptional requirements in natural language, in any language, up to 2,000 characters, for example "a bit suspenseful, whisper the last line". Without them the AI Director performs the text by its meaning.
Limits: length ≤ 2000
voicestringNoOptional voice to perform for: a voice_id from beatra.voices.list, a preset or one of your own cloned voices. Same meaning as voice in beatra.speech.synthesize. Omit it to let the AI Director recommend a voice.
modelstringNoOmit unless the user requests a model. Same values as model in beatra.speech.synthesize; auto or omitted: resolved from the voice, or recommended together with the voice.
Default: auto
Values: auto, minimax-speech-2.8-hd, minimax-speech-2.8-turbo, doubao-seed-tts-2.0, elevenlabs-v4-turbo, elevenlabs-v4
languagestringNoLanguage of the input as a BCP-47 tag. Usually omit it (auto, the default): the language is detected. Send it only when the user names the language or a dialect the text cannot show, such as Cantonese (yue).
Default: auto
Limits: length 2–32
contextSpeechScriptContextNoOptional, advanced: the text around the input when a long text is directed in parts, used only to understand the tone. It is not annotated, read aloud or returned. The end of before is also suggested as previous_text when the target model supports it.
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Use before beatra.speech.synthesize to make speech sound natural and human. Beatra's AI Director reads the text and the user's optional instructions, then returns a script that is ready to synthesize, written in Beatra speech markup for the target voice and model: emotion, performance, sound effects, pauses and pronunciation. It never changes the words. Without voice or model it recommends one, with alternatives, each with a name, a preview link and a reason. Call beatra.speech.synthesize with each returned script's synthesis object as the arguments, unchanged, plus your own client_request_id; a script whose synthesis is null cannot be synthesized as is (read warnings). To try another voice within two days, call again with the same arguments, changing only voice (and model if needed): the earlier reading is reused and not charged again. This asynchronous task consumes Beatra credits: successful completion is charged afterward from actual tokens; nothing is charged when the result has directed false or reuses an earlier reading. To start, the balance must cover Beatra's estimate for the text (per 1,000 characters, counting at least 1,000) plus that of any other AI Director task in progress, also when an earlier reading is reused; an insufficient_balance refusal states the amount needed. An account runs at most 2 AI Director tasks at a time. Submit exactly once, then poll with beatra.tasks.get. Reuse client_request_id only for an identical retry.

beatra.speech.synthesize

Synthesize speech from text with a Beatra voice.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, speech:generate, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
model_optionsobjectNoPer-model-family passthrough options; opaque to the platform, validated per model
voicestringYesOpaque beatra voice_id (preset or cloned)
inputstringYesText to synthesize. It may contain speech markup such as {pause 0.5}, {laugh}, {pron 行 hang2} or {sub W3C 万维网联盟}; read the vocabulary and limits from the model card (beatra.models.list). Some models also accept inline emotion and performance markup, listed under script_markup on their card; other models skip it with a warning. Malformed markup is corrected or skipped with a markup_adjusted warning instead of failing the request. Some models accept fewer characters; read constraints.input_max_characters on the model card (ElevenLabs models: 10,000).
Limits: length 1–50000
modelstringNoOmit unless the user requests a model.
Default: auto
Values: auto, minimax-speech-2.8-hd, minimax-speech-2.8-turbo, doubao-seed-tts-2.0, elevenlabs-v4-turbo, elevenlabs-v4
languagestringNoOptional BCP-47 language tag, for example zh-CN, yue-HK, or en-US. 'auto' explicitly asks the engine to detect the spoken language. Read supported_languages from the selected model's catalog card. When omitted, the voice or provider chooses the language.
Limits: length 2–32
formatstringNoDefault: mp3
Values: mp3, wav, flac, opus, pcm
sample_rateintegerNoValues: 8000, 16000, 22050, 24000, 32000, 44100
speednumberNoDefault: 1
Limits: 0.5–2
volumenumberNoDefault: 1
Limits: ≤ 10, > 0
pitchnumberNoPitch adjustment from -1 to 1: 0 keeps the voice's original pitch, -1 is the lowest and 1 the highest the selected model supports. Use decimals such as 0.25 or -0.5 for subtle tuning.
Default: 0
Limits: -1–1
emotionstringNoProvider-neutral discrete speaking emotion
Values: happy, sad, angry, fearful, disgusted, surprised, calm, fluent
subtitle_enablebooleanNoRequest sentence-level subtitles with the audio. Subtitles are free; when present, output.subtitles carries the subtitle file URL and format.
Default: false
directionstringNoOptional natural-language performance direction for the whole request, for example '像在耳边说悄悄话一样,轻声地说' or 'read it like breaking news'. Models and voices that follow it list direction under controls on their model card (with direction_max_characters); anywhere else it is ignored with an option_ignored warning. Effects vary with the voice and the text and are not a guarantee of intensity.
previous_textstringNoOptional text that comes right before this clip, for example the previous line of a dialogue or the previous paragraph, so separate calls keep a continuous tone. It is never spoken and never billed; any length is accepted and only its end is used (previous_text_tail_characters on the model card). Models and voices that do not use it ignore it with an option_ignored warning.
client_request_idstringYesLimits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Synthesize speech using a Beatra voice ID. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry. The input accepts speech markup. Read the vocabulary and limits from the model card returned by beatra.models.list. beatra.speech.validate checks the input before you submit and does not charge credits.

beatra.speech.validate

Check a speech request before submitting it: parse the markup, list warnings, and return the credit price.

CreditsFree
Runs asDirect result
EffectRead-only
Repeat-safeYes
Scopesmcp:tools, speech:generate

Arguments

NameTypeRequiredDescription
voicestringYesOpaque beatra voice_id (preset or cloned)
inputstringYesText to synthesize. It may contain speech markup such as {pause 0.5}, {laugh}, {pron 行 hang2} or {sub W3C 万维网联盟}; read the vocabulary and limits from the model card (beatra.models.list). Some models also accept inline emotion and performance markup, listed under script_markup on their card; other models skip it with a warning. Malformed markup is corrected or skipped with a markup_adjusted warning instead of failing the request. Some models accept fewer characters; read constraints.input_max_characters on the model card (ElevenLabs models: 10,000).
Limits: length 1–50000
modelstringNoModel to check against (default auto)
Default: auto
Values: auto, minimax-speech-2.8-hd, minimax-speech-2.8-turbo, doubao-seed-tts-2.0, elevenlabs-v4-turbo, elevenlabs-v4
languagestringNoBCP-47 language hint
Limits: length 2–32
formatstringNoAudio format the create call would use
Default: mp3
Values: mp3, wav, flac, opus, pcm
sample_rateintegerNoSample rate in Hz for the chosen format
Values: 8000, 16000, 22050, 24000, 32000, 44100
speednumberNoSpeaking rate (0.5 to 2.0)
Default: 1
Limits: 0.5–2
volumenumberNoVolume (0 to 10)
Default: 1
Limits: ≤ 10, > 0
pitchnumberNoNormalized pitch (-1.0 to 1.0)
Default: 0
Limits: -1–1
emotionstringNoEmotion preset for the whole request
Values: happy, sad, angry, fearful, disgusted, surprised, calm, fluent
subtitle_enablebooleanNoWhether the create call would request subtitles
Default: false
directionstringNoOptional natural-language performance direction for the whole request, for example '像在耳边说悄悄话一样,轻声地说' or 'read it like breaking news'. Models and voices that follow it list direction under controls on their model card (with direction_max_characters); anywhere else it is ignored with an option_ignored warning. Effects vary with the voice and the text and are not a guarantee of intensity.
previous_textstringNoOptional text that comes right before this clip, for example the previous line of a dialogue or the previous paragraph, so separate calls keep a continuous tone. It is never spoken and never billed; any length is accepted and only its end is used (previous_text_tail_characters on the model card). Models and voices that do not use it ignore it with an option_ignored warning.
model_optionsobjectNoExpert provider options, same as the create call

Returns McpSpeechValidateOutput: valid, warnings, weighted_characters, price_credits, execution, script_markup, limitations, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Check a speech request before paying for it: parse the markup, list warnings, count weighted characters, and return the credit price. This call does not create a task, charge credits, or call the speech engine. The markup vocabulary is on the model card from beatra.models.list.

Voices

beatra.voices.clone

Clone a voice from a clean single-speaker sample, once the user confirms they have the rights to that voice.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, voices:write, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
model_optionsobjectNoOnly for model doubao-voice-clone-2.0: {"doubao": {...}} with the model_options.doubao keys its clone card lists in controls. Ignored for every other model.
sampleMediaInputUrl | MediaInputArtifact | MediaInputDataUriYesClean single-speaker voice sample (uploaded artifact or HTTPS URL), ~10s-5min
promptVoiceClonePromptNoOptional short aligned excerpt: audio shorter than 8 seconds plus its verbatim transcript. Used only by models whose card sets prompt_accepted=true; other models ignore it and return an option_ignored warning.
display_namestringYesLimits: length 1–255
modelstringNoClone engine. Omit unless the user explicitly asks for a specific clone engine; 'auto' (the default) lets the platform choose.
Default: auto
Values: auto, minimax-voice-clone, doubao-voice-clone-2.0, elevenlabs-voice-clone
languagestringNoOptional BCP-47 language hint for the cloned voice
Limits: length 2–32
consent_attestedtrueYesCaller asserts it has the rights to clone this voice. Recorded, not verified.
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Clone a voice from a clean single-speaker sample. With the default engine (omit model or use 'auto') the cloned voice is ready for speech as soon as the task succeeds. A few explicitly selected models need a separate paid activation before the voice can be used; the result explains the next step. Call only after the user explicitly confirms they have the rights to clone it, and set consent_attested=true. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

beatra.voices.activate

Activate a cloned voice whose clone result asks for activation, once the user agrees to the quoted price.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, voices:write, wallet:spend, tasks:read

Arguments

NameTypeRequiredDescription
voice_idstringYesThe voice_id from the clone result.
Limits: length 1–64
confirmation_tokenstringNoThe confirmation_token from the clone result's activation.quote (or a later quote); valid for 24 hours. Omit it to get a new quote; nothing is charged.
Limits: length 1–1024
confirm_creditsintegerNoThe quoted price_credits, repeated to confirm the user agreed to exactly that price.
Limits: ≥ 0
client_request_idstringYesStable retry identity for this billable operation. Reuse only for the exact same generation arguments.
Limits: length 1–128

Returns VoiceActivateOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error, voice, charged_credits, quote

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Activate a cloned voice whose clone result says activation is required (status pending_activation). Voices that are already ready, including every MiniMax clone, every ElevenLabs clone, and every preset voice, never need this; calling it on them charges nothing and changes nothing. The clone result already carries the quote (activation.quote: price, terms, preview, confirmation_token). Only after the user explicitly agrees to the price and terms, call once with voice_id, confirmation_token and confirm_credits; this consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get; reuse the same client_request_id only for an identical retry. Called without confirmation_token (the token is gone or older than 24 hours), it returns a new quote and charges nothing.

beatra.voices.list

List the preset and cloned voices available for speech.

CreditsFree
Runs asDirect result
EffectRead-only
Repeat-safeYes
Scopesmcp:tools, voices:read

Arguments

NameTypeRequiredDescription
languagestringNoLimits: length ≤ 32
genderstringNoValues: male, female, neutral
categorystringNoValues: preset, cloned
querystringNoLimits: length ≤ 128
modelstringNoCompatible model id
age_groupstringNochild, youth, adult, or senior
voice_idstringNoExact voice_id
Limits: length ≤ 64
limitintegerNoPage size
Default: 50
Limits: 1–500
cursorstringNovoice_id of the last voice on the previous page
Limits: length ≤ 64
use_casestringNoVoices tagged with this use case
searchstringNoCase-insensitive text found in the display name or the persona
Limits: length ≤ 64
statusstringNoWhich voices to list: ready (default, usable for speech), pending_activation (cloned previews that need activation), expired, or any.
Default: ready
Values: ready, pending_activation, expired, any

Returns VoiceListOutput: voices, default_voice_id, error, next_cursor, total_count

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

List preset and tenant-owned voices available for speech synthesis. By default only voices ready for speech are listed; pass status to include cloned voices that are waiting for activation.

beatra.voices.update

Rename a cloned voice, or make a voice the account's default.

CreditsFree
Runs asDirect result
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, voices:write

Arguments

NameTypeRequiredDescription
voice_idstringYesLimits: length 1–64
display_namestringNoNew name for one of this account's cloned voices.
Limits: length 1–40
make_defaultbooleanNotrue makes this voice the account's default; false or omitted leaves the default as it is. Clearing the default is console-only.

Returns VoiceUpdateOutput: voice_id, display_name, is_default, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Rename one of this account's cloned voices, or make a voice (cloned or preset) the account's default. Call only when the user asked for that change. This call is non-billable and cannot delete a voice; deleting happens in the Beatra console.

Avatars

beatra.avatars.list

List the portraits saved as avatars for presenter videos, each with its paired voice.

CreditsFree
Runs asDirect result
EffectRead-only
Repeat-safeYes
Scopesmcp:tools, artifacts:read

Arguments

This tool takes no arguments.

Returns AvatarListOutput: avatars, default_avatar_id, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

List the portraits this account saved as avatars for talking-presenter videos, the default first, each with its image artifact and paired voice. Pass image.artifact_id as the portrait to beatra.videos.animate after checking the image against the live model card. This call is read-only and does not charge.

beatra.avatars.save

Save an image in the account as a named avatar for later presenter videos, once the user confirms the portrait consent.

CreditsFree
Runs asDirect result
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, artifacts:write

Arguments

NameTypeRequiredDescription
artifact_idstringYesAn image artifact_id in this account, from beatra.assets.upload or an earlier task.
Limits: length 1–64
display_namestringYesThe name the user gave this avatar.
Limits: length 1–40
purposestringNoOptional use, such as 'course lecturer'.
Limits: length ≤ 60
voice_idstringNoOptional voice to pair with this avatar.
Limits: length 1–64
make_defaultbooleanNoAlso make this the account's default avatar.
Default: false
consent_attestedtrueYesSet true only after the user confirmed the portrait consent sentence.
consent_subjectstringYesself: the user is the person pictured. authorized_other: the user has that person's separate consent.
Values: self, authorized_other

Returns AvatarSaveOutput: avatar, default_avatar_id, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Save one image already in this account as a named avatar the user can reuse in later sessions. Call only after the user agreed to save it and confirmed the portrait consent sentence: they are the person pictured (consent_subject=self) or they have that person's separate consent (authorized_other). Saving the same image again updates and returns the same avatar. This call is non-billable and cannot delete anything.

Public social data

Search the public social data tools by platform, keyword, or capability family.

CreditsFree
Runs asDirect result
EffectRead-only
Repeat-safeYes
Scopesmcp:tools

Arguments

NameTypeRequiredDescription
querystringNoLimits: length ≤ 256
platformstringNoValues: tiktok, douyin, xiaohongshu, instagram, youtube, twitter
capability_familystringNoValues: content, creator, comments, trends, captions
limitintegerNoDefault: 10
Limits: 1–20
cursorstringNoLimits: length ≤ 256

Returns SocialToolsSearchOutput: items, next_cursor, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Search public social data tools by platform, keyword, or capability_family. This call is not billable.

beatra.social.tools.get

Read one public social data tool: its arguments, schema_hash, and credit price.

CreditsFree
Runs asDirect result
EffectRead-only
Repeat-safeYes
Scopesmcp:tools

Arguments

NameTypeRequiredDescription
operation_keystringYesLimits: length 1–128

Returns SocialToolsGetOutput: operation, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Read one public social data tool, including its arguments, schema_hash, and credit price. This call is not billable.

beatra.social.execute

Run one public social data lookup as a task.

CreditsConsumes credits
Runs asAsynchronous task: poll beatra.tasks.get until it ends
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools, wallet:spend, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
operation_keystringYesLimits: length 1–128
schema_hashstringYes—
argumentsobjectNo—
client_request_idstringYesSubmit exactly once, then poll with beatra.tasks.get.
Limits: length 1–128

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Look up public social data and create a task. This billable call consumes Beatra credits and creates an asynchronous task. Submit exactly once, then poll with beatra.tasks.get. Reuse the same client_request_id only for an identical retry.

Models

beatra.models.list

List the models selectable for one capability, with their live controls, limits, and credit prices.

CreditsFree
Runs asDirect result
EffectRead-only
Repeat-safeYes
Scopesmcp:tools

Arguments

NameTypeRequiredDescription
capabilitystringYesGeneration capability such as text_to_image.
include_activation_requiredbooleanNoAlso list voice clone models that are not in the default list: models whose voices need a separate paid activation before use, and models that must be chosen explicitly and are never picked by auto.
Default: false

Returns ModelListOutput: account_offer, top_up, capability, default_model, auto, models, max_output_images, max_canvas_pixels, starting_credits, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

List models currently selectable for one Beatra generation capability, including live supported controls, constraints, customer credit prices, and billing basis. capability is required and must be an exact generation capability from this tool's input schema enum. For image prices, select the pricing.options entry whose dimensions match the admitted output; Use before choosing or comparing a model or estimating cost; otherwise keep model=auto.

Tasks

beatra.tasks.list

List recent tasks created by this connection.

CreditsFree
Runs asDirect result
EffectRead-only
Repeat-safeYes
Scopesmcp:tools, tasks:read

Arguments

NameTypeRequiredDescription
cursorstringNo—
limitintegerNoDefault: 10
Limits: 1–50
statusstringNoValues: queued, running, succeeded, failed, canceled
capabilitystringNo—

Returns TaskListOutput: items, next_cursor, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

List recent Beatra tasks created by this MCP connection.

beatra.tasks.get

Read one task created by this connection: its status, results, and charge.

CreditsFree
Runs asDirect result
EffectRead-only
Repeat-safeYes
Scopesmcp:tools, tasks:read, artifacts:read

Arguments

NameTypeRequiredDescription
task_idstringYesLimits: length ≥ 1

Returns TaskToolOutput: task_id, status, terminal, resolved_model, usage, billing, task, artifacts, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Read a Beatra task created by this MCP connection.

beatra.tasks.cancel

Cancel a task created by this connection.

CreditsFree
Runs asDirect result
EffectChanges work in progress
Repeat-safeYes
Scopesmcp:tools, tasks:cancel

Arguments

NameTypeRequiredDescription
task_idstringYesLimits: length ≥ 1

Returns TaskCancelOutput: task_id, status, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Cancel a task created by this MCP connection. In-flight work is canceled only when the remote stop is confirmed; a 409 means continue polling the same task.

Credits

beatra.wallet.get

Read the account's credit balance and the next batch of credits to expire.

CreditsFree
Runs asDirect result
EffectRead-only
Repeat-safeYes
Scopesmcp:tools

Arguments

This tool takes no arguments.

Returns WalletGetOutput: balance_credits, expiring_credits, non_expiring_credits, next_expiry_at, next_expiry_credits, topup_url, concurrent_task_limit, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Read the current Beatra credit balance for this account, including the next expiring batch. Also returns how many unfinished creations this account can keep at a time. This call is read-only and does not charge. It does not top up, change the wallet, or estimate a generation; use beatra.models.list for prices. On insufficient_balance, relay that error's message instead of calling this tool as a substitute. After the user says they have topped up, call this tool once before retrying: the balance_credits in an earlier refusal is the balance at that moment, not the current one.

beatra.wallet.ledger

List the account's credit history, newest first: charges, refunds, top-ups, and expiry.

CreditsFree
Runs asDirect result
EffectRead-only
Repeat-safeYes
Scopesmcp:tools

Arguments

NameTypeRequiredDescription
cursorstringNo—
limitintegerNoDefault: 20
Limits: 1–50

Returns WalletLedgerOutput: items, next_cursor, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

List this account's credit ledger newest first: charges, refunds, top-ups, and expiry. This call is read-only and does not charge. Page with the returned next_cursor. Ledger amounts are not a price estimate; use beatra.models.list before comparing models or quoting a generation.

Uploads

beatra.assets.upload

Get a short-lived upload URL for a local image, audio, or video file. The upload's response returns the artifact ID that other tools take as input.

CreditsFree
Runs asDirect result
EffectAdds data to the account
Repeat-safeNo: each call has its own effect
Scopesmcp:tools, artifacts:write

Arguments

NameTypeRequiredDescription
filenamestringNoLimits: length 1–255
mime_typestringYesExact media MIME type. Published aliases are accepted and normalized to their canonical MIME in the grant and artifact.
size_bytesintegerYesExact local file byte length; the upload must match it.
Limits: 1–104857600

Returns AssetUploadOutput: grant_id, upload, media_type, mime_type, size_bytes, expires_at, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Create a short-lived upload grant for an image, audio, or video file. Follow the returned HTTP PUT instructions; its response returns the artifact_id.

Skill installation

beatra.installations.register

Register the installed Beatra Skill package and version for this connection.

CreditsFree
Runs asDirect result
EffectAdds data to the account
Repeat-safeYes
Scopesmcp:tools

Arguments

NameTypeRequiredDescription
package_slugstringYesLimits: length 1–64
package_versionstringYesLimits: length 5–64
platformstringYesLimits: length 1–64
external_installation_refstringYesLimits: length 1–255
channelanyNo—
channel_localeanyNo—
routeanyNo—
route_basisanyNo—
install_sourceanyNo—
install_source_basisanyNo—
environmentanyNo—

Returns InstallationRegisterOutput: package_slug, package_version, recognized, first_seen_at, last_seen_at, error

Error codes and what to do about each one: Errors & retries.

Tool description sent to the agent

Idempotently register the current Skill package for this authenticated installation, with optional channel, install source, network route and runtime environment. This telemetry call is non-billable.

Last updated