Skip to main content
Glama

Server Details

Magic Hour MCP lets AI agents create and edit images, videos, and audio using Magic Hour’s hosted generation tools.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

TDQS

A3.7/5.0

Scored across 44 tools

Disambiguation4/5

Most create tools map to clearly distinct products (clothes changer, gif generator, headshot, meme, lip sync, etc.), so selection is largely unambiguous. However, there is mild overlap between ai_image_editor_create_image and ai_face_editor_edit_image, and the result-retrieval surface (wait_for_*_project, *_projects_retrieve_details, fetch_*_download) requires careful reading to distinguish polling from status-checking from byte-fetching.

Naming Consistency4/5

Names follow a predictable snake_case {domain}_{action}_{type} convention (e.g., image_projects_retrieve_details, face_swap_create_video, wait_for_image_project). Minor deviations exist: animation_create_video lacks a product prefix and ai_talking_photo_create_talking_photo redundantly repeats the noun, but overall the pattern is readable and consistent.

Tool Count3/5

At 44 tools the set is heavy and pushes well past the comfortable 3-15 range, which raises selection and context-loading costs. The count is partly justified because each tool corresponds to a genuinely distinct AI product plus a coherent async lifecycle (create/poll/wait/fetch/delete per image, video, and audio), but it still feels crowded.

Completeness4/5

Lifecycle coverage is strong: create, retrieve details, wait/poll, fetch binary downloads, and delete exist for image, video, and audio projects, plus account info and a presigned upload flow. Gaps remain — there is no list-projects operation and no cancel tool despite 'canceled' being a documented status — but core workflows are covered.

Available Tools

44 tools
account_retrieveAInspect

Get the current credit balance and subscription details of the account that owns the API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the account that owns the API key.
tierYesSubscription tier in effect for the account. `free` if there is no active subscription, including while a subscription is `past_due`.
emailYesEmail address of the account.
creditsYesCredits currently available to spend. Includes subscription credits and any purchased credit packs.
subscriptionYesDetails of the account's subscription plan. `null` if the account has no subscription, e.g. a free account, an account that only purchased credit packs, or an account on usage-based API pricing. Reflects the plan currently configured on the subscription. If a plan change is scheduled, `tier` stays on the current plan until the next payment succeeds, so `tier` and `name` can briefly disagree.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose this is a read operation scoped to the API key's owning account, but says nothing about auth/permission requirements, rate limits, or whether the balance is real-time. Return values are covered by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. Every word contributes: verb, both returned resources, and the precise account scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with an output schema documenting the response, the description is nearly complete. It could be richer about auth scope, but nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the only parameter is a meta 'context' field for analytics, not a functional input. The description adds no parameter meaning, but none is needed, so the basline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') with two concrete resources ('credit balance and subscription details') and names the exact scope ('the account that owns the API key'). This is fully distinguishable from every sibling, which are all media-generation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and the described scope, but the description gives no explicit when-to-use guidance, prerequisites, or alternative tools. For a uniquely-scoped account query with no close sibling, the implied usage is adequate but thin.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_clothes_changer_create_imageAInspect

Change outfits in photos in seconds with just a photo reference. Each photo costs 25 credits.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Clothes Changer - dateTime
assetsYesProvide the assets for clothes changer
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it does so well: it discloses that this is an async job, that it returns `id` and `credits_charged` immediately, the terminal statuses to poll for (`complete`, `error`, `canceled`), that completed projects include `downloads` URLs with expiration metadata, and the 25-credit cost per photo. That is substantial operational context an agent would otherwise have to discover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with the value proposition and cost, then organized into bulleted workflow guidance. Every sentence is actionable, though the file-path paragraph is dense and repeats the upload-guide reference twice, which slightly dilutes conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async, nested-asset, credit-charging tool, the description covers the async job lifecycle, helper-tool routing, status values, output URLs, and asset-preparation prerequisites. The presence of an output schema means return values need not be fully enumerated, so nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining how `*_file_path` values should be sourced: prefer an existing Magic Hour path or the `file_path` from the upload-URL endpoint, and warning that hotlinked public URLs can fail. It does not add detail on the `garment_type` enum or `context` field, which the schema already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The definition states a specific verb+resource combination ('Change outfits in photos') and identifies the two inputs required: a person photo and a garment reference. This is unambiguously distinct from sibling tools such as face_swap_photo, head_swap, and body_swap, so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The MCP guidance explicitly routes the agent: 'If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET endpoint.' It also gives clear when-to-use context for file paths (prefer Magic Hour paths; use the presigned upload flow when in doubt). It stops short of contrasting against sibling image tools, so not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_face_editor_edit_imageAInspect

Edit facial features of an image using AI. Each edit costs 1 frame. The height/width of the output image depends on your subscription. Please refer to our pricing page for more details

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Face Editor - dateTime
styleYesFace editing parameters
assetsYesProvide the assets for face editor
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so richly: it discloses the per-edit cost (1 frame), subscription-dependent output dimensions, the immediate return of id plus credits_charged, the terminal statuses to poll for, that completed projects include downloads with direct URLs, and that the wait helper's exact_download_urls differ from expiration metadata. These are exactly the behavioral traits an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and cost, followed by operational guidance in compact bullets. Slightly long, but each section (async flow, file path handling) earns its place; no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained, and the description complements it by covering the async lifecycle, the cost model, and asset-provisioning caveats. Given a noisy 40+ sibling namespace with no annotations, this is complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds genuine meaning beyond the schema for `assets.image_file_path`: it warns that hotlinked public URLs can fail and that the presigned upload flow should be used when in doubt. It adds little about the `style` sub-parameters, which the schema already documents thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Edit facial features of an image using AI.' This is clearly distinct from mutation siblings like face_swap_create_video or head_swap_create_image, which replace identities rather than adjust facial pose/expression parameters. It stops short of explicitly naming those siblings to route the agent, so it is clear but not maximally differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The MCP guidance gives concrete usage context: this starts an async job, and for results call wait_for_image_project or poll the GET endpoint until complete/error/canceled. It also advises using the presigned upload flow for file_path values. It does not, however, state when to prefer this over sibling editors such as ai_image_editor_create_image or face_swap_photo_create_image.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_gif_generator_create_imageAInspect

Create an AI GIF. Each GIF costs 50 credits.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your gif a custom name for easy identification.Ai Gif - dateTime
styleYes
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
output_formatNoThe output file format for the generated animation.gif

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the 50-credit cost, that the call is async and returns `id` plus `credits_charged` immediately, the terminal statuses (`complete`, `error`, `canceled`), and that completed projects expose `downloads`/`exact_download_urls`. This is rich behavioral context beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the essential verb and cost, then organized as labeled guidance. Slightly verbose in the polling detail but every element is actionable rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async generation tool with a nested schema and an output schema already describing return values, the description supplies exactly the missing lifecycle knowledge (async start, polling/wait helper, statuses). Nothing an agent needs to invoke and complete the job is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, so the schema largely documents the four parameters (name, style.prompt, context, output_format). The description adds no parameter-level meaning, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Create an AI GIF') and the GIF-specific scope cleanly separates it from siblings like ai_image_generator_create_image and text_to_video_create_video. An agent can identify what it produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational guidance for the async workflow and explicitly names the follow-up alternative (`wait_for_image_project`) versus manual polling of `GET /v1/image-projects/{id}`. It does not, however, explain when to choose this GIF generator over other generation siblings, so it stops short of full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_headshot_generator_create_imageAInspect

Create an AI headshot. Each headshot costs 50 credits.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Ai Headshot - dateTime
styleNo
assetsYesProvide the assets for headshot photo
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that this starts an async job, returns 'id' plus 'credits_charged' immediately, what the terminal statuses are ('complete', 'error', or 'canceled'), and what completed projects include ('downloads' with direct URLs). It also warns that hotlinked URLs can fail. This is rich, non-obvious behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and cost, which is good. However, the MCP guidance section is quite dense and mixes workflow instructions with file-path advice; it could be structured more crisply. It's not excessively wordy, but the second bullet is a long block of text that requires careful parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (so return values needn't be fully explained), the description still covers the async lifecycle, the polling/waiting behavior, and the file-path sourcing rules. Combined with the schema and output schema, an agent has everything needed to call this correctly and handle the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, so the schema already defines most parameters well. However, the description adds critical operational context for the 'assets' parameter's 'image_file_path' value ('prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint... when in doubt, use the presigned upload flow first'), which goes beyond the schema's field-level description. This compensates for the remaining coverage gap and adds real value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create an AI headshot') and discloses cost (50 credits). It distinguishes itself from siblings like ai_image_generator_create_image by being headshot-specific, but it doesn't explicitly contrast with the nearest sibling, like ai_face_editor_edit_image. Clear purpose, but sibling differentiation relies on domain knowledge.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The MCP guidance explicitly describes the async workflow and routes the agent to the right helper ('call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint'). It also gives clear rules for when to use the presigned upload flow versus direct URLs. This is actionable when/when-not guidance for a complex workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_image_editor_create_imageAInspect

Edit images with AI.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Ai Image Editor - dateTime
modelNoThe AI model to use for image editing. Each model has different capabilities and costs. **Models:** - `default` - Use the model we recommend, which will change over time. This is recommended unless you need a specific model. This is the default behavior. - `flux-2-klein` - from 5 credits/image - Supported resolutions: 640px, 1k, 2k - Available for tiers: free, creator, pro, business - Max additional input images: 5 - `gpt-image-2` - from 50 credits/image - Supported resolutions: 640px, 1k, 2k, 4k - Available for tiers: creator, pro, business - Max additional input images: 9 - `gpt-image-2.5-flare` - from 100 credits/image - Supported resolutions: 640px, 1k, 2k, 4k - Available for tiers: creator, pro, business - Max additional input images: 9 - `nano-banana` - from 50 credits/image - Supported resolutions: 640px, 1k - Available for tiers: creator, pro, business - Max additional input images: 9 - `nano-banana-2` - from 100 credits/image - Supported resolutions: 640px, 1k, 2k, 4k - Available for tiers: creator, pro, business - Max additional input images: 9 - `nano-banana-2-lite` - from 50 credits/image - Supported resolutions: 640px, 1k - Available for tiers: creator, pro, business - Max additional input images: 9 - `nano-banana-pro` - from 150 credits/image - Supported resolutions: 1k, 2k, 4k - Available for tiers: creator, pro, business - Max additional input images: 9 - `qwen-edit` - from 10 credits/image - Supported resolutions: 640px, 1k, 2k - Available for tiers: free, creator, pro, business - Max additional input images: 2 - `seedream-v4` - from 40 credits/image - Supported resolutions: 640px, 1k, 2k, 4k - Available for tiers: creator, pro, business - Max additional input images: 9 - `seedream-v4.5` - from 50 credits/image - Supported resolutions: 640px, 1k, 2k, 4k - Available for tiers: creator, pro, business - Max additional input images: 9 - `seedream-v5-pro` - from 75 credits/image - Supported resolutions: 640px, 1k, 2k - Available for tiers: creator, pro, business - Max additional input images: 9
styleYes
assetsYesProvide the assets for image edit
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
resolutionNoMaximum resolution (longest edge) for the output image. **Options:** - `640px` — up to 640px - `1k` — up to 1024px - `2k` — up to 2048px - `4k` — up to 4096px - `auto` — **Deprecated.** Mapped server-side from your subscription tier to the best matching resolution the model supports **Per-model support:** - `flux-2-klein` - 640px, 1k, 2k - `gpt-image-2` - 640px, 1k, 2k, 4k - `gpt-image-2.5-flare` - 640px, 1k, 2k, 4k - `nano-banana` - 640px, 1k - `nano-banana-2` - 640px, 1k, 2k, 4k - `nano-banana-2-lite` - 640px, 1k - `nano-banana-pro` - 1k, 2k, 4k - `qwen-edit` - 640px, 1k, 2k - `seedream-v4` - 640px, 1k, 2k, 4k - `seedream-v4.5` - 640px, 1k, 2k, 4k - `seedream-v5-pro` - 640px, 1k, 2k Note: Resolution availability depends on the model and your subscription tier.
image_countNoNumber of images to generate. Maximum varies by model. Defaults to 1 if not specified.
aspect_ratioNoThe aspect ratio of the output image(s). If not specified, defaults to `auto`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses that the call is asynchronous, immediately returns id and credits_charged, enumerates the terminal statuses, and notes that completed projects expose downloads with direct URLs and that the wait helper surfaces exact_download_urls separately from expiration metadata. It stops short of covering auth requirements, rate limits, or why hotlinked URLs fail beyond a general warning.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The structure is front-loaded and scannable: a one-line purpose followed by two labeled bullets separating the async lifecycle from file-path rules. It is slightly verbose in the second bullet, but every clause (presigned upload fallback, raw-bytes requirement, hotlink failure risk) carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter nested tool with an output schema, the description supplies the operational context an agent actually needs to run the async flow correctly, so return-value details are appropriately left to the output schema. The remaining gap is selection context: nothing tells the agent when this general editor is the right choice versus the more specific editing tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 88%, so model, resolution, aspect_ratio, image_count, and the assets shape are thoroughly self-documented. The description reinforces the *_file_path sourcing rule (prefer an existing Magic Hour path or an upload-URL file_path) but adds little the schema does not already state, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opener gives a clear verb+resource ('Edit images with AI'), so the agent knows this mutates an existing image rather than generating one from scratch. However, it offers no differentiation from the many adjacent siblings (ai_face_editor, ai_clothes_changer, ai_image_upscaler, ai_image_generator), leaving the agent to infer scope from the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The guidance block explicitly describes the post-call workflow — call wait_for_image_project with the returned id, or poll GET /v1/image-projects/{id} until a terminal status — and prescribes the presigned upload flow when unsure about file paths. That is real when/how guidance for the async flow, but there is no guidance at all on choosing this tool over its image-editing siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_image_generator_create_imageAInspect

Create an AI image with advanced model selection and quality controls.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Ai Image - dateTime
modelNoThe AI model to use for image generation. Each model has different capabilities and costs. **Models:** - `default` - Use the model we recommend, which will change over time. This is recommended unless you need a specific model. This is the default behavior. - `flux-2-klein` - from 5 credits/image - Supported resolutions: 640px, 1k, 2k - Available for tiers: free, creator, pro, business - Image count allowed: 1 - `flux-schnell` - from 5 credits/image - Supported resolutions: 640px, 1k, 2k - Available for tiers: free, creator, pro, business - Image count allowed: 1, 2, 3, 4 - `gpt-image-2` - from 50 credits/image - Supported resolutions: 640px, 1k, 2k, 4k - Available for tiers: creator, pro, business - Image count allowed: 1, 2, 3, 4 - `gpt-image-2.5-flare` - from 100 credits/image - Supported resolutions: 640px, 1k, 2k, 4k - Available for tiers: creator, pro, business - Image count allowed: 1, 2, 3, 4 - `nano-banana` - from 50 credits/image - Supported resolutions: 640px, 1k - Available for tiers: creator, pro, business - Image count allowed: 1, 2, 3, 4 - `nano-banana-2` - from 100 credits/image - Supported resolutions: 640px, 1k, 2k, 4k - Available for tiers: creator, pro, business - Image count allowed: 1, 4, 9, 16 - `nano-banana-2-lite` - from 50 credits/image - Supported resolutions: 640px, 1k - Available for tiers: creator, pro, business - Image count allowed: 1, 2, 3, 4 - `nano-banana-pro` - from 150 credits/image - Supported resolutions: 1k, 2k, 4k - Available for tiers: creator, pro, business - Image count allowed: 1, 4, 9, 16 - `seedream-v4` - from 40 credits/image - Supported resolutions: 640px, 1k, 2k, 4k - Available for tiers: creator, pro, business - Image count allowed: 1, 2, 3, 4 - `seedream-v5-pro` - from 75 credits/image - Supported resolutions: 640px, 1k, 2k - Available for tiers: creator, pro, business - Image count allowed: 1, 2, 3, 4 - `z-image-turbo` - from 5 credits/image - Supported resolutions: 640px, 1k, 2k - Available for tiers: free, creator, pro, business - Image count allowed: 1, 2, 3, 4 **Deprecated Enum Values:** - `seedream` - Use `seedream-v4` instead.
styleYesThe art style to use for image generation.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
resolutionNoMaximum resolution (longest edge) for the output image. **Options:** - `640px` — up to 640px - `1k` — up to 1024px - `2k` — up to 2048px - `4k` — up to 4096px - `auto` — **Deprecated.** Mapped server-side from your subscription tier to the best matching resolution the model supports **Per-model support:** - `flux-2-klein` - 640px, 1k, 2k - `flux-schnell` - 640px, 1k, 2k - `gpt-image-2` - 640px, 1k, 2k, 4k - `gpt-image-2.5-flare` - 640px, 1k, 2k, 4k - `nano-banana` - 640px, 1k - `nano-banana-2` - 640px, 1k, 2k, 4k - `nano-banana-2-lite` - 640px, 1k - `nano-banana-pro` - 1k, 2k, 4k - `seedream-v4` - 640px, 1k, 2k, 4k - `seedream-v5-pro` - 640px, 1k, 2k - `z-image-turbo` - 640px, 1k, 2k Note: Resolution availability depends on the model and your subscription tier.auto
image_countYesNumber of images to generate. Maximum varies by model.
aspect_ratioNoThe aspect ratio of the output image(s). If not specified, defaults to `1:1` (square).

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses that the call is asynchronous, returns id plus credits_charged immediately (cost signal), lists the terminal statuses (complete, error, canceled), and states that completed projects include download URLs with expiration metadata. This is exactly the behavioral context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded: one purpose sentence followed by a tight async-handling block. It is dense but every sentence serves a purpose; the only minor cost is that the guidance block is slightly prose-heavy for what could be a shorter instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async-generation tool with rich schema, nested objects, and an output schema, the description covers the remaining unknowns: async nature, immediate return shape, follow-up path, and terminal states. Nothing needed to invoke or follow up correctly appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter including the verbose model/resolution tables. The description adds only 'model selection and quality controls,' which adds no syntax or format detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create an AI image') plus a scope note about model selection and quality controls. It does not explicitly differentiate itself from the many sibling image-generation tools (ai_image_editor, ai_image_upscaler, ai_meme_generator), but the generic framing implies a general-purpose generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The guidance block gives explicit next-step routing: if the user wants the finished result, call wait_for_image_project with the returned id or poll the GET endpoint until a terminal status. It names the sibling and the condition. It does not, however, say when to prefer this general generator over the specialized image siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_image_upscaler_create_imageAInspect

Upscale your image using AI. Each 2x upscale costs 50 credits for balanced/creative modes, and 25 credits for preserve. 4x upscale costs 200 and 100 credits respectively.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Image Upscaler - dateTime
styleNoStyle settings for the upscale. Use `mode` (`"preserve"`, `"balanced"`, or `"creative"`). Defaults to `"balanced"`.
assetsYesProvide the assets for upscaling
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
scale_factorYesHow much to scale the image. Must be either 2 or 4. Note: 4x upscale is only available on Creator, Pro, or Business tier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses async job semantics, that it returns id plus credits_charged immediately, terminal statuses, and that completed projects carry downloads URLs. It does not state auth/permission requirements, but credit cost and async lifecycle are the higher-value disclosures here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and cost, then a clearly delineated 'MCP guidance' block. Efficient, though the credit-cost enumeration in the first paragraph is somewhat verbose relative to the schema's own mode descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the description still explains the async completion model, polling targets, and returned fields, which is exactly what an agent needs to sequence this call with wait_for_image_project. Nothing material is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description goes beyond it by clarifying the credit multiplier relationship between mode and cost, and by explaining how *_file_path values should be sourced. This adds semantic value the schema alone does not connect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb (upscale) plus resource (image) and immediately pairs it with concrete cost behavior. It is unmistakable against siblings like ai_image_generator_create_image or ai_image_editor_create_image, since upscaling is the distinct operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states this is an async job and names the exact follow-up path ('call wait_for_image_project with the returned id, or poll GET /v1/image-projects/{id} until status is complete/error/canceled'). It also gives when-to-use guidance on asset sourcing, recommending the presigned upload flow over direct hotlinked URLs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_meme_generator_create_imageAInspect

Create an AI generated meme. Each meme costs 10 credits.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoThe name of the meme.
styleYes
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers well: it discloses the 10-credit cost per meme, that the call is asynchronous, what is returned immediately (id, credits_charged), the terminal statuses to wait for, and that completed projects expose download URLs. Gaps remain around authentication requirements, rate limits, and whether credits are refunded on error/cancel.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and cost, then a clearly delineated guidance block. Sentences are mostly tight, though the polling clause enumerating statuses and the note about exact_download_urls are slightly verbose for the value they add.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async, credit-metered generation tool with an output schema and nested style object, the description covers cost, async semantics, result retrieval, and terminal states. It is close to complete; the only notable omission is any note about permissions or the practical meaning of the large template enum beyond what the schema states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%, so the schema already documents name, topic, template, and searchWeb itself, including the very large template enum. The description adds no parameter-level meaning (no guidance on topic phrasing or when to enable searchWeb), so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb + resource ("Create an AI generated meme") and adds the credit cost, which is real information not in the name. The meme-specific resource distinguishes it in practice from generic siblings like ai_image_generator_create_image, but the description never explicitly names or contrasts that alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The "MCP guidance" block gives concrete usage context: the call is async, it returns immediately, and results are obtained either via wait_for_image_project or by polling GET /v1/image-projects/{id} until complete/error/canceled. It does not state when to prefer this over sibling generators, but the operational guidance is clear and actionable, matching the 4 anchor (clear context, no exclusions).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_qr_code_generator_create_imageAInspect

Create an AI QR code. Each QR code costs 0 credits.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Qr Code - dateTime
styleYes
contentYesThe content of the QR code.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so well: it discloses async job semantics, immediate return of id and credits_charged, the terminal status values (complete/error/canceled), that completed projects include downloads URLs, and the cost (0 credits). This is the key behavioral trait for an async generation tool and it is fully surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose in one line, then a clearly delimited MCP guidance block. Efficient overall, though the final sentence about exact_download_urls versus expiration metadata is somewhat niche and only marginally earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async image-generation tool with no annotations, the description supplies everything an agent needs to invoke and consume it: the async nature, the follow-up tool, status handling, and return fields. An output schema exists, so the return-value detail is arguably redundant, but nothing required is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, near the baseline threshold, and the schema already documents name, content, style.art_style, and context in detail. The description adds no additional parameter meaning (e.g., format of 'content', how style templates interact with custom values), so the schema does the heavy lifting and baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create an AI QR code'), which is a distinct resource among the many create_image siblings. However, it never explicitly differentiates itself from tools like ai_image_generator_create_image or ai_meme_generator_create_image, leaving selection to the reader's inference from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear workflow context: it tells the agent this starts an async job and names the concrete follow-up (call wait_for_image_project with the returned id, or poll GET /v1/image-projects/{id}). It lacks guidance on when to choose this QR tool over other image-generation siblings, so it is clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_talking_photo_create_talking_photoAInspect

Create a talking photo from an image and audio or text input.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Talking Photo - dateTime
styleNoAttributes used to dictate the style of the output
assetsYesProvide the assets for creating a talking photo
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
end_secondsYesThe end time of the input audio in seconds. Maximum clip length depends on style.generation_mode: realistic 300s, prompted 45s.
start_secondsYesThe start time of the input audio in seconds. Maximum clip length depends on style.generation_mode: realistic 300s, prompted 45s.
max_resolutionNoConstrains the larger dimension (height or width) of the output video. Allows you to set a lower resolution than your plan's maximum if desired. The value is capped by your plan's max resolution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so well: it discloses that the call starts an async job, returns `id` and `credits_charged` immediately, enumerates the terminal states, and notes that completed projects carry `downloads` URLs with expiration metadata. It also warns that hotlinked public URLs can fail, a genuine behavioral caveat an agent could not infer from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in a single line, followed by two tightly scoped bullets covering result handling and file-path handling. It is slightly redundant (it mentions both the wait helper and raw polling of the same endpoint), but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter nested-schema mutation with an output schema, the description supplies everything an agent needs that structured fields do not: async lifecycle, what the immediate response contains, how to obtain the finished artifact, and how to prepare valid file inputs. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds real value on top of that by explaining what a valid `*_file_path` value is and steering the agent to the presigned upload flow when direct URLs are unreliable, which is semantics the schema does not capture.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource ("Create a talking photo") and names the required inputs (image plus audio/text), so an agent immediately knows the operation. It does not, however, distinguish itself from the similarly-scoped siblings `lip_sync_create_video` or `image_to_video_create_video`, leaving the agent to infer the difference from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The MCP guidance gives clear operational context: this is async, so it tells the agent to call `wait_for_video_project` or poll `GET /v1/video-projects/{id}` until a terminal status. It also gives concrete advice on when to prefer the presigned upload flow over direct URLs. It stops short of any when-not-to-use guidance or explicit routing away from sibling creation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_video_editor_create_videoAInspect

What this API does

Create the same Video Editor you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow.

Good for

  • Automation and batch processing

  • Adding video editor into apps, pipelines, or tools

How it works (3 steps)

  1. Upload your inputs (video, image, or audio) with Generate Upload URLs and copy the file_path.

  2. Send a request to create a video editor job with the basic fields.

  3. Check the job status until it's complete, then download the result from downloads.

Key options

  • Inputs: usually a file, sometimes a YouTube link, depending on project type

  • Resolution: free users are limited to 576px; higher plans unlock HD and larger sizes

  • Extra fields: e.g. face_swap_mode, start_seconds/end_seconds, or a text prompt

Cost
Credits are only charged for the frames that actually render. You'll see an estimate when the job is queued, and the final total after it's done.

For detailed examples, see the product page.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your video a custom name for easy identification.Video Editor - dateTime
modelNoEditing model. Defaults to `ltx-2.3` for free tier and `gemini-omni-1.1` for paid. `gemini-omni` is deprecated; use `gemini-omni-1.1` instead.
styleYes
assetsYesProvide the assets for video editing.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
resolutionNoOutput resolution. Defaults to `480p` for free tier and `720p` for paid. `gemini-omni-1.1` and deprecated `gemini-omni` support 720p and 1080p; LTX-2.3 supports 480p, 720p, and 1080p.
end_secondsYesEnd time of your clip in seconds. Must be greater than `start_seconds`. Minimum duration depends on model: `gemini-omni-1.1`: 3s, `ltx-2.3`: 0.5s. Maximum duration depends on model: `gemini-omni-1.1`: 10s, `ltx-2.3`: 45s.
start_secondsNoStart time of your clip (seconds). Must be ≥ 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations to lean on, the description carries the full burden and does so well: it discloses that this starts an async job returning id plus credits_charged immediately, lists terminal states (complete/error/canceled), explains that downloads contain direct URLs and that the wait helper returns exact_download_urls separately from expiration metadata, and describes the cost model (charged only for rendered frames, estimate at queue time, final total after completion).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well structured and front-loaded with headers ('What this API does', 'How it works', 'Key options', 'Cost', MCP guidance), so an agent can scan it quickly. It is longer than strictly necessary for a tool definition, with product-page links and marketing phrasing that are only marginally useful, but nothing is egregiously redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description correctly does not need to spell out return fields, and it fills the genuine gaps instead: the presigned upload prerequisite for *_file_path values, the async job lifecycle, and the wait helper. It stops short of documenting failure handling or whether hotlinked URL failures are recoverable, but the coverage is strong for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 88%, so the schema already documents nearly every parameter, making 3 the correct baseline. The description adds useful context about input types (file vs YouTube link) and names start_seconds/end_seconds and a text prompt, but its claim that free users are limited to '576px' does not match the 480p/720p/1080p enum, creating minor confusion rather than added precision.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: programmatically create the same Video Editor available in the browser, with the prompt-driven edit intent conveyed via the style field. It is clear on its own, but it never contrasts itself with the many neighboring video-creation tools (video_to_video_create_video, text_to_video_create_video, character_replace_create_video), so an agent must infer which video sibling applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Good for' bullets (automation, batch processing, embedding in apps) and the 3-step workflow imply when this tool fits, and the MCP guidance routes follow-up to wait_for_video_project or the GET endpoint. However, there is no explicit when-to-use versus the other create_video siblings, which is the key selection decision for an agent in this catalog.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_voice_cloner_create_audioAInspect

Clone a voice from an audio sample and generate speech.

  • Each character costs 0.1 credits.

  • The cost is rounded up to the nearest whole number

MCP guidance:

  • This starts an async audio generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_audio_project helper with the returned id, or poll the matching GET /v1/audio-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your audio a custom name for easy identification.Voice Cloner - dateTime
styleYes
assetsYesProvide the assets for voice cloning.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the audio. Use it with the [Get audio Project API](https://docs.magichour.ai/api-reference/audio-projects/get-audio-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the audio. We charge credits right when the request is made. If an error occurred while generating the audio, credits will be refunded and this field will be updated to include the refund.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that this is an async job returning id + credits_charged immediately, the cost model (0.1 credits/character, rounded up), terminal statuses (complete/error/canceled), and file-path failure modes with hotlinked URLs. It omits auth/permission requirements, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, pricing follows, then operational guidance. Every sentence is load-bearing and there's no redundancy, though the guidance block is dense enough to slow scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-parameter async generation tool with an output schema, the description covers the essential call flow, follow-up polling, return fields, and file-path pitfalls. Release/download retrieval is only partially described, but the output schema and wait helper cover the rest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%. The description adds real meaning beyond the schema: the cost-per-character rule ties to the length of style.prompt, and the MCP guidance explains the accepted forms of the assets.audio_file_path value plus presigned-upload fallback, which the schema only states abstractly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+action: 'Clone a voice from an audio sample and generate speech.' The 'from an audio sample' clause implicitly distinguishes it from the plain voice generator sibling, but it never names that sibling explicitly, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The MCP guidance gives useful workflow context (call wait_for_audio_project with the returned id, or poll the GET endpoint) and file-path prerequisites. However, it never states when to choose this over ai_voice_generator_create_audio, so the alternative-selection guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_voice_generator_create_audioAInspect

Generate speech from text. Each character costs 0.1 credits. The cost is rounded up to the nearest whole number.

MCP guidance:

  • This starts an async audio generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_audio_project helper with the returned id, or poll the matching GET /v1/audio-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your audio a custom name for easy identification.Voice Generator - dateTime
styleYesThe content used to generate speech.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the audio. Use it with the [Get audio Project API](https://docs.magichour.ai/api-reference/audio-projects/get-audio-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the audio. We charge credits right when the request is made. If an error occurred while generating the audio, credits will be refunded and this field will be updated to include the refund.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so richly: it discloses async job creation, immediate return of id and credits_charged, per-character credit cost with rounding, polling statuses (complete, error, canceled), and that completed projects include downloads. Missing auth/rate-limit details are minor given the depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with purpose and cost, then uses a labelled 'MCP guidance' section for the async workflow. It is appropriately sized and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description still explains the async flow and follow-up steps. Given the nested style object and huge voice enum are fully documented in the schema, the description is complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents name, style.prompt, style.voice_name, and context. The description adds pricing tied to prompt length but no additional parameter syntax or meaning beyond the schema; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource: 'Generate speech from text' and clarifies it starts an async audio generation job. However it does not explicitly differentiate from the sibling ai_voice_cloner_create_audio, which also generates audio from text, so sibling differentiation is missing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear post-invocation routing: if the user wants the finished result, call wait_for_audio_project or poll the GET endpoint. It does not state when to choose this tool over the voice-cloner sibling, and gives no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

animation_create_videoAInspect

Create a Animation video. The estimated frame cost is calculated based on the fps and end_seconds input.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsYesThe desire output video frame rate
nameNoGive your video a custom name for easy identification.Animation - dateTime
styleYesDefines the style of the output video
widthYesThe width of the final output video. The maximum width depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
assetsYesProvide the assets for animation.
heightYesThe height of the final output video. The maximum height depends on your subscription. Please refer to our [pricing page](https://magichour.ai/pricing) for more details
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
end_secondsYesThis value determines the duration of the output video.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the async job model, the immediate return of id plus credits_charged, terminal statuses (complete/error/canceled), availability of download URLs, and warns that hotlinked URLs can fail. This is exactly the behavioral context an agent needs before invoking a long-running generation job.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the one-line purpose before the guidance, and the bulleted structure keeps async handling and file-path rules scannable. Slightly verbose, but each guidance block is actionable rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, nested, async generation tool with an output schema already covering return values, the description completes the picture on lifecycle and asset input rules. The only meaningful omission is guidance on selecting this over sibling video-generation tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter. The description adds a small amount of meaning by linking fps and end_seconds to cost estimation, but contributes nothing beyond that. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb and resource ("Create a Animation video") and adds a useful cost-model detail (frame cost derived from fps and end_seconds). It does not, however, differentiate this from the crowded set of *_create_video siblings such as text_to_video, image_to_video, or video_to_video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The MCP guidance gives strong operational direction (async job, poll or wait_for_video_project, file_path vs URL handling), but it never states when to choose this tool over an alternative video-generation sibling. Usage is implied by resource type rather than contrasted against alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audio_projects_deleteBInspect

Permanently delete the rendered audio file(s). This action is not reversible, please be sure before deleting.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique ID of the audio project. This value is returned by all of the POST APIs that create an audio.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description must carry the full behavioral burden. It does disclose the single most important trait — irreversibility ('Permanently delete... not reversible') — but omits auth/permission requirements, whether the parent project record survives, and cascading effects on related assets.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the destructive action front-loaded and zero padding. The trailing 'please be sure before deleting' is slightly redundant with 'permanently... not reversible' but earns its place as a caution for a destructive tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a delete tool with no annotations and no output schema, the description covers irreversibility but leaves real gaps: permission/auth needs, scope of deletion (project vs. rendered files), and post-deletion state. The naming tension between 'audio_projects_delete' and 'rendered audio file(s)' is left unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters (id, context) are already documented in the schema, making the baseline 3. The description's phrase 'rendered audio file(s)' adds a small hint about what the id points to, but it never clarifies whether the id identifies the project or the rendered output — a meaningful ambiguity for a destructive call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) and resource (rendered audio files), using 'permanently' to sharpen the meaning. It is cleanly distinguishable from siblings like image_projects_delete and video_projects_delete purely by resource, and from audio_projects_retrieve_details by action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description issues a warning ('be sure before deleting') but gives no when-to-use guidance, no prerequisites, and no alternatives. There is no mention of the sibling retrieve or download tools an agent might use to verify what is about to be destroyed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audio_projects_retrieve_detailsAInspect

Check the progress of a audio project. The downloads field is populated after a successful render.

Statuses

  • queued — waiting to start

  • rendering — in progress

  • complete — ready; see downloads

  • error — a failure occurred (see error)

  • canceled — user canceled

  • draft — not used

MCP guidance:

  • Use this after a create tool to poll job status. When status is complete, surface the downloads URLs to the user; if status is error, surface the error message.

  • Each downloads[n].url is already the full signed download URL. Use it exactly as returned. Do not shorten it, strip query parameters, or append expires_at onto the URL string.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique ID of the audio project. This value is returned by all of the POST APIs that create an audio.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the audio. Use it with the [Get audio Project API](https://docs.magichour.ai/api-reference/audio-projects/get-audio-details) to fetch status and downloads.
nameYesThe name of the audio.
typeYesThe type of the audio project. Possible values are VOICE_GENERATOR, VOICE_CHANGER, VOICE_CLONER, VIDEO_TO_AUDIO, MUSIC_GENERATOR
errorYesIn the case of an error, this object will contain the error encountered during video render
statusYesThe status of the audio. - `draft` - the project was created but has not been submitted for rendering - `queued` - the job is waiting for an available server - `rendering` - the job is being processed; the `audio.started` webhook event fires when rendering begins - `complete` - the job finished successfully; fires `audio.completed` - `error` - the job failed during processing; fires `audio.errored` - `canceled` - the job was manually canceled (for example from the Magic Hour web app) **Note:** `rendering`, `complete`, and `error` have matching webhook events; `canceled` does not - a canceled job emits no webhook event, so poll this endpoint to detect cancellation.
enabledYesWhether this resource is active. If false, it is deleted.
downloadsYes
created_atYes
credits_chargedYesThe amount of credits deducted from your account to generate the audio. We charge credits right when the request is made. If an error occurred while generating the audio, credits will be refunded and this field will be updated to include the refund.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it enumerates every status value and its meaning, states that the `downloads` field only populates after a successful render, and warns that download URLs are pre-signed and must be used verbatim (no shortening, no query stripping, no appending expires_at). It does not mention auth requirements or rate limits, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The status table and guidance bullets are front-loaded and scannable, and every bullet carries operational meaning except the low-value "draft — not used" entry. A minor typo ("a audio project") is the only other friction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained, yet the description still covers the two things an agent must know to interpret results: what each status means and how to handle the download URLs. Combined with the error-path instruction, an agent can act on the response without further inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema — including that `id` comes from the POST create APIs. The description adds no parameter-level detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line states a specific verb and resource ("Check the progress of a audio project") and the status list makes the read-only job-inspection scope unmistakable. It does not, however, name or differentiate itself from the sibling wait_for_audio_project, which covers overlapping polling territory. Clear purpose, but no explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The MCP guidance explicitly says when to call it (after a create tool, to poll job status) and prescribes actions per outcome (surface downloads on complete, surface the error on error). It omits the alternative wait_for_audio_project, so it gives clear context but no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audio_to_video_create_videoAInspect

What this API does

Create the same Audio To Video you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow.

Good for

  • Automation and batch processing

  • Adding audio to video into apps, pipelines, or tools

How it works (3 steps)

  1. Upload your inputs (video, image, or audio) with Generate Upload URLs and copy the file_path.

  2. Send a request to create a audio to video job with the basic fields.

  3. Check the job status until it's complete, then download the result from downloads.

Key options

  • Inputs: usually a file, sometimes a YouTube link, depending on project type

  • Resolution: free users are limited to 576px; higher plans unlock HD and larger sizes

  • Extra fields: e.g. face_swap_mode, start_seconds/end_seconds, or a text prompt

Cost
Credits are only charged for the frames that actually render. You'll see an estimate when the job is queued, and the final total after it's done.

For detailed examples, see the product page.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your video a custom name for easy identification.Audio To Video - dateTime
styleNoAttributes used to dictate the style of the output
assetsYesProvide the audio file and an optional reference image.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
resolutionNoOutput video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers.
end_secondsYesEnd time of your clip (seconds). Must be greater than start_seconds.
start_secondsNoStart time of your clip (seconds). Must be ≥ 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses async job semantics, that it returns id plus credits_charged immediately, that the job must be polled to completion, that credits are charged only for rendered frames with an estimate at queue time, and that completed projects expose downloads URLs. It also warns about hotlinked URL failures and prescribes the presigned upload flow, which is actionable behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is well front-loaded and header-structured, but noticeably bloated with marketing copy, a separate Cost section, and repeated doc links that overlap with the schema and product page. Several bullets restate what the 3-step workflow already implies, so not every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description still covers the async lifecycle, the helper alternative, file-path handling, and credit estimation. For a 7-parameter async generation tool with no annotations, nothing essential for a correct call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains the resolution plan gating (free tier limits vs HD), names optional fields (face_swap_mode, start_seconds/end_seconds, prompt), and gives explicit guidance on *_file_path values and when direct URLs can fail. The only blemish is a minor mismatch (description says free tier is 576px while the schema enum lists 480p).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (“Create the same Audio To Video ... programmatically”) and clearly frames the tool as audio-plus-video synthesis. It does not explicitly contrast itself with the many sibling video-creation tools (image_to_video, text_to_video, video_to_video), so an agent must infer the distinction from the name rather than the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete 'Good for' list (automation, batch processing, embedding in apps) and a 3-step workflow for use, plus an explicit routing rule: call wait_for_video_project or poll GET /v1/video-projects/{id} if the user wants the finished result. It stops short of stating when NOT to use this tool versus the other create_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auto_subtitle_generator_create_videoAInspect

Automatically generate subtitles for your video in multiple languages.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your video a custom name for easy identification.Auto Subtitle - dateTime
styleYesStyle of the subtitle. At least one of `.style.template` or `.style.custom_config` must be provided. * If only `.style.template` is provided, default values for the template will be used. * If both are provided, the fields in `.style.custom_config` will be used to overwrite the fields in `.style.template`. * If only `.style.custom_config` is provided, then all fields in `.style.custom_config` will be used. To use custom config only, the following `custom_config` params are required: * `.style.custom_config.font` * `.style.custom_config.text_color` * `.style.custom_config.vertical_position` * `.style.custom_config.horizontal_position`
assetsYesProvide the assets for auto subtitle generator
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
end_secondsYesEnd time of your clip (seconds). Must be greater than start_seconds.
start_secondsYesStart time of your clip (seconds). Must be ≥ 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description fully discloses the async behavior, what's returned immediately (id, credits_charged), how to get results (wait_for_video_project or polling), completion states, and download URL availability. It also explains the file path preference and failure modes for direct URLs. This is rich behavioral context that goes well beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and follows with structured MCP guidance sections. It's efficient and well-organized, though the guidance section is fairly long relative to the simple core purpose. No significant wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async video generation tool with 6 parameters (4 required) and an output schema, the description covers the full lifecycle: invocation, async handling, result retrieval, and input file handling. Combined with the detailed schema, an agent has everything needed to call and use this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameter semantics thoroughly. The description's file path guidance adds some practical context about the `*_file_path` parameters, but doesn't provide additional syntax or format details beyond what's in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'generate subtitles for your video in multiple languages.' This is clear and distinctive from most siblings. However, it doesn't explicitly distinguish itself from other video creation siblings like ai_video_editor or character_replace — the task type is obvious from the name but the description doesn't reinforce the distinction explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The MCP guidance section provides explicit operational instructions: it's an async job returning `id` and `credits_charged` immediately, with clear polling instructions and helper tool references. The file path guidance is also actionable with a fallback strategy. This is thorough when-to-use and how-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

body_swap_create_imageAInspect

Swap a person into a scene image using Nano Banana 2 Lite (640px/1k) or Nano Banana 2 (2k/4k). Credits depend on resolution (from 50 credits at 640px upward).

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Body Swap - dateTime
assetsYesPerson image and scene image for body swap
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
resolutionYesOutput resolution. Determines credits charged for the run.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does it well: it discloses the async job model, that id and credits_charged return immediately, credit scaling from resolution (50 at 640px upward), the terminal statuses, that downloads/expiration metadata come back on completion, and the hotlinked-URL failure caveat. It omits auth/permission requirements and any rate limits or error-handling specifics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and cost model are front-loaded in the first sentence, followed by clearly grouped MCP guidance bullets. Every sentence is informative, though the polling/file-path advice is verbose enough to be tightened slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async generation tool with an output schema, no annotations, and a nested asset schema, the description covers the async lifecycle, how to retrieve results, and file-input pitfalls. Missing only auth/prerequisite context, which would be the last piece needed for fully self-sufficient invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including detailed file-path semantics for both nested assets, so the baseline is 3. The description adds value mainly for resolution by tying it to credit cost, but does not add syntax or meaning beyond what the schema already documents for assets/name/context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Swap a person into a scene image') plus the underlying models and resolution tiers, so an agent knows exactly what it produces. It stops short of explicitly contrasting with close siblings like head_swap_create_image or face_swap_photo_create_image, leaving differentiation to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives solid operational guidance (call wait_for_image_project or poll GET /v1/image-projects/{id} until complete/error/canceled, and prefer a presigned upload file_path when in doubt), but this is post-call workflow rather than when-to-choose-this-tool. Nothing tells the agent when to pick body swap over head_swap or face_swap_photo, so selection guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

character_replace_create_videoAInspect

What this API does

Create the same Character Replace you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow.

Good for

  • Automation and batch processing

  • Adding character replace into apps, pipelines, or tools

How it works (3 steps)

  1. Upload your inputs (video, image, or audio) with Generate Upload URLs and copy the file_path.

  2. Send a request to create a character replace job with the basic fields.

  3. Check the job status until it's complete, then download the result from downloads.

Key options

  • Inputs: usually a file, sometimes a YouTube link, depending on project type

  • Resolution: free users are limited to 576px; higher plans unlock HD and larger sizes

  • Extra fields: e.g. face_swap_mode, start_seconds/end_seconds, or a text prompt

Cost
Credits are only charged for the frames that actually render. You'll see an estimate when the job is queued, and the final total after it's done.

For detailed examples, see the product page.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your video a custom name for easy identification.Character Replace - dateTime
styleNoOptional style controls for replace vs animate mode and subject selection.
assetsYesSource video and reference character image for the job.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
resolutionNoOutput video resolution. Defaults to 480p, the lowest resolution available on your plan.
end_secondsYesEnd time of your clip (seconds). Must be greater than start_seconds.
start_secondsNoStart time of your clip (seconds). Must be ≥ 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that this is an async job returning id plus credits_charged immediately, the terminal statuses (complete/error/canceled), that completed projects include downloads, and the credit cost model (charged only for rendered frames, with an estimate at queue time). It omits auth/permission requirements and rate-limit behavior, keeping it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded and clearly sectioned, but marketing framing ('Good for', 'Cost', product-page links) and the 3-step walkthrough add bulk beyond what an agent needs. Roughly half the text earns its place; the rest is promotional padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter async generation tool with an output schema and nested style/assets objects, the description supplies the async lifecycle, follow-up routing, cost behavior, and asset-path expectations. The main omission is any statement about required credentials or scope, but otherwise an agent has what it needs to invoke and then wait for the job.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the 3 baseline is met by the schema alone. The description adds value beyond it by steering the agent on *_file_path values (prefer an existing Magic Hour path or a presigned-upload file_path; hotlinked URLs may fail) and by noting resolution plan limits, though the stated '576px' free-tier cap sits slightly awkwardly against the schema's 480p/720p enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create the same Character Replace you can make in the browser, but programmatically'), making the operation identifiable at a glance. It does not, however, differentiate itself from close siblings such as face_swap_create_video or face_swap_photo_create_image, which an agent may confuse with this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear conditions for use ('Automation and batch processing', 'Adding character replace into apps, pipelines, or tools') and explicitly routes the agent to the follow-up helper: call wait_for_video_project with the returned id, or poll GET /v1/video-projects/{id}. There is no explicit 'when not to use' or sibling-alternative comparison, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

face_detection_detect_facesAInspect

Detect faces in an image or video.

Use this API to get the list of faces detected in the image or video to use in the face swap photo or face swap video API calls for multi-face swaps.

Note: Face detection is free to use for the near future. Pricing may change in the future.

MCP guidance:

  • This starts an async face-detection task and returns an id. Use the face-detection details endpoint with that id to retrieve detected faces before doing individual face swaps.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsYesProvide the assets for face detection
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
confidence_scoreNoConfidence threshold for filtering detected faces. * Higher values (e.g., 0.9) include only faces detected with high certainty, reducing false positives. * Lower values (e.g., 0.3) include more faces, but may increase the chance of incorrect detections.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesThe id of the task. Use this value in the [get face detection details API](https://docs.magichour.ai/api-reference/files/get-face-detection-details) to get the details of the face detection task.
credits_chargedYesThe credits charged for the task.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses that this starts an async task, returns an `id` for later retrieval via face_detection_retrieve_details, and notes the free-now/pricing-may-change condition. It stops short of permissions/auth or rate-limit detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the one-line purpose, then layers use case, pricing, and MCP flow in clearly labeled form. Slightly verbose (the pricing note is marginal), but each section is skimmable and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description does not need to explain return values, and it covers the missing pieces: async task/id lifecycle, the retrieval sibling, and file-path sourcing rules. An agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds operational value for target_file_path beyond the schema: prefer an existing Magic Hour file_path or an upload-URL result, and warns that hotlinked/public URLs can fail so the presigned upload flow is safer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Detect faces in an image or video') and immediately names the downstream use case (multi-face swaps via the face-swap photo/video APIs). This clearly differentiates it from siblings like face_swap_photo_create_image and face_detection_retrieve_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when to reach for it (to get a face list before doing individual multi-face swaps) and routes the agent to the companion retrieve-details step. It gives clear positive context but no explicit exclusions or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

face_detection_retrieve_detailsAInspect

Get the details of a face detection task.

Use this API to get the list of faces detected in the image or video to use in the face swap photo or face swap video API calls for multi-face swaps.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe id of the task. This value is returned by the [face detection API](https://docs.magichour.ai/api-reference/files/face-detection#response-id).
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesThe id of the task. This value is returned by the [face detection API](https://docs.magichour.ai/api-reference/files/face-detection#response-id).
facesYesThe faces detected in the image or video. The list is populated as faces are detected.
statusYesThe status of the detection.
credits_chargedYesThe credits charged for the task.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose the return content ('list of faces detected in the image or video'), which is genuine behavioral context, but says nothing about permissions, failure modes, or whether the task result is retained/expires. Adequate but incomplete for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and followed by the use case. The inline documentation links add length but earn their place by pointing to the consuming swap APIs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers purpose plus downstream integration. It stops short of clarifying the relationship to the detect_faces sibling, but is otherwise complete for a single-id retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the id (with its provenance link to the face detection API) and the analytics-only context field are already documented in the schema. The description adds no parameter-level meaning beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the details of a face detection task'), which cleanly separates it from the sibling face_detection_detect_faces, which creates the task. It does not name that sibling explicitly, but the 'task details' framing makes the retrieval role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the downstream purpose clearly ('to use in the face swap photo or face swap video API calls for multi-face swaps'), which implies why an agent would call it. However, it never states when to use it versus siblings like face_detection_detect_faces, nor any prerequisites (e.g., an id already returned from detection).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

face_swap_create_videoAInspect

What this API does

Create the same Face Swap you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow.

Good for

  • Automation and batch processing

  • Adding face swap into apps, pipelines, or tools

How it works (3 steps)

  1. Upload your inputs (video, image, or audio) with Generate Upload URLs and copy the file_path.

  2. Send a request to create a face swap job with the basic fields.

  3. Check the job status until it's complete, then download the result from downloads.

Key options

  • Inputs: usually a file, sometimes a YouTube link, depending on project type

  • Resolution: free users are limited to 576px; higher plans unlock HD and larger sizes

  • Extra fields: e.g. face_swap_mode, start_seconds/end_seconds, or a text prompt

Cost
Credits are only charged for the frames that actually render. You'll see an estimate when the job is queued, and the final total after it's done.

For detailed examples, see the product page.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your video a custom name for easy identification.Face Swap - dateTime
styleNoStyle of the face swap video.
assetsYesProvide the assets for face swap. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
end_secondsYesEnd time of your clip (seconds). Must be greater than start_seconds.
start_secondsYesStart time of your clip (seconds). Must be ≥ 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses that this starts an async job returning id plus credits_charged immediately, that completion requires polling or the wait helper, that credits are charged only for rendered frames, and that free-tier resolution is capped at 576px. These are exactly the behavioral traits an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded and organized with headers, but it is long and somewhat redundant — the 'How it works' steps overlap heavily with the MCP guidance paragraph, and marketing links/product-page references add bulk. Most sentences earn their place, but the piece could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description need not explain return values, and it instead covers the async lifecycle, the wait helper, cost behavior, and input-path conventions. For a nested-object, 6-parameter async generation tool with no annotations, this is complete enough to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real value beyond the schema: the file_path vs. direct-URL guidance for *_file_path values, the upload-URL workflow, and the mention of face_swap_mode, start/end_seconds, and resolution constraints. It is above baseline without being exhaustive on every field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Create ... Face Swap') and explicitly frames it as the programmatic/video variant, which distinguishes it from the sibling face_swap_photo_create_image and other create_* tools. An agent can tell what it produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Good for' list gives clear usage contexts (automation, batch, pipelines) and the MCP guidance names the concrete follow-up path (wait_for_video_project or poll GET /v1/video-projects/{id}). It does not explicitly state when NOT to use this versus e.g. face_swap_photo_create_image, so it falls short of a full when/when-not treatment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

face_swap_photo_create_imageAInspect

Create a face swap photo. Each photo costs 10 credits. The height/width of the output image depends on your subscription. Please refer to our pricing page for more details

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Face Swap - dateTime
assetsYesProvide the assets for face swap photo
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does a solid job: it discloses the credit cost (10 credits per photo), that output dimensions depend on subscription, that the job is asynchronous with a specific terminal status set, and that hotlinked URLs may fail. It stops short of stating auth requirements or what happens on a failed/charged job.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and cost are front-loaded in the first two sentences, followed by two focused guidance bullets covering the async result flow and file-path sourcing. Every sentence carries actionable content with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be restated, and the description still adds the async polling path and download-URL notes. Combined with full schema coverage for a 3-parameter nested tool, this is nearly complete, missing only sibling-selection guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description exceeds that by adding meaning the schema lacks: prefer an existing Magic Hour file_path or a presigned-upload file_path over direct public URLs, which may fail when hotlinked. That directly informs how to populate the *_file_path parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Create a face swap photo") that maps cleanly to the tool name. It is clear what the tool does, but it never differentiates itself from close siblings like head_swap_create_image, body_swap_create_image, ai_face_editor_edit_image, or face_swap_create_video, so an agent must infer the boundary from names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The MCP guidance gives strong operational context (async job, use wait_for_image_project or poll GET /v1/image-projects/{id}, prefer presigned upload flow for file paths), but it never says when to pick this tool over the many sibling image-generation tools. Usage is implied by the workflow rather than by explicit selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_audio_downloadAInspect

Fetch a audio downloads[n].url from a completed audio project and return it as inline MCP audio content for compatible clients. Pass the exact full signed URL from downloads[n].url without trimming query parameters; expires_at is separate metadata, not part of the URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
max_bytesNo
download_urlYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden; it discloses that output is inline MCP audio content, that only compatible clients can consume it, and the critical gotcha that the signed URL must be passed verbatim with query parameters intact. It omits error/expiry behavior and how max_bytes constrains the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first states purpose and return type, the second front-loads the most common failure mode (URL trimming) plus the expires_at clarification. No filler, and the highest-value guidance comes early.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description correctly describes the return form (inline audio) and the key call-time pitfall. It is nearly complete but leaves the max_bytes size-limit behavior and any failure mode for expired/signed URLs unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (only 'context' is documented), so the description must compensate. It does explain the required download_url semantics (exact full signed URL, do not trim query params) but says nothing about max_bytes, leaving one of three parameters undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Fetch') plus resource ('audio downloads[n].url from a completed audio project') and the resulting form ('inline MCP audio content'). The audio scoping cleanly distinguishes it from the parallel fetch_image_download and fetch_video_download siblings without needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear prerequisite ('from a completed audio project') and a client constraint ('for compatible clients'), which tells the agent when the tool is applicable. It stops short of explicitly naming when to prefer a sibling or what to do if the project is not complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_image_downloadAInspect

Fetch a image downloads[n].url from a completed image project and return it as inline MCP image content for compatible clients. Pass the exact full signed URL from downloads[n].url without trimming query parameters; expires_at is separate metadata, not part of the URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
max_bytesNo
download_urlYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden and does add real value: it discloses the return type (inline MCP image content for compatible clients) and the signed-URL handling rule (do not trim query parameters, expires_at is separate). It omits error/expiry behavior and says nothing about the max_bytes limit, so it is not complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose then the critical URL-handling caveat, with essentially no filler. The minor grammatical slip ('a image') does not impede comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description correctly explains the return value and the source of the required URL. It leaves the max_bytes parameter and failure cases (expired URL, size limits) unexplained, which is a gap for a fetch tool with three parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 33%, and the description usefully compensates for the undocumented download_url by specifying it must be the exact full signed URL from downloads[n].url without trimming. It adds nothing, however, for max_bytes, so one of three parameters remains unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch), a specific resource (an image download from a completed image project), and the delivery mechanism (inline MCP image content). This clearly separates it from siblings like fetch_audio_download, fetch_video_download, and image_projects_retrieve_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'from a completed image project' implies a prerequisite (the project must have finished) and points to the downloads[n].url source, giving usable context. However, it never names an alternative tool or states when not to use this tool, so routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_video_downloadAInspect

Fetch a video downloads[n].url from a completed video project and return it as an embedded MCP binary resource for compatible clients. Pass the exact full signed URL from downloads[n].url without trimming query parameters; expires_at is separate metadata, not part of the URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
max_bytesNo
download_urlYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose meaningful traits: the result is an embedded MCP binary resource, it is limited to compatible clients, and the URL is signed and time-limited. It omits auth requirements, behavior on expired URLs, and error handling, leaving notable gaps for a fetch tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose and followed by the crucial URL-passing caveat; every clause earns its place. The phrase 'for compatible clients' is slightly vague but does not waste much space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema or annotations, and three parameters exist, so the description should do heavy lifting. It covers purpose, return type, and URL format well but leaves max_bytes behavior and failure modes undocumented, making it adequate rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (just the context field), so the description must compensate, and it does for the critical parameter: it explains that download_url must be the exact full signed URL without trimming query parameters and that expires_at is separate metadata. It adds nothing for max_bytes, but the key parameter is well covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Fetch) and resource (a video download from a completed video project) and describes the return as an embedded binary resource, clearly distinguishing it from siblings like fetch_image_download, fetch_audio_download, and video_assets_generate_presigned_url.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage by scoping to 'a completed video project' and noting it is 'for compatible clients', which gives context. However, it never states when to prefer this over video_assets_generate_presigned_url or what to do for incompatible clients, so the routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

head_swap_create_imageAInspect

Swap a head onto a body image. Each image costs 10 credits. Output resolution depends on your subscription; you may set max_resolution lower than your plan maximum if desired.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Head Swap - dateTime
assetsYesProvide the body and head images for head swap
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
max_resolutionNoConstrains the larger dimension (height or width) of the output. Omit to use the maximum allowed for your plan (capped at 2048px). Values above your plan maximum are clamped down to your plan's maximum.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does so well: it discloses the 10-credit cost per image, that the job is asynchronous, that it returns `id` plus `credits_charged` immediately, the terminal statuses to poll for, that completed projects include `downloads`, and the failure mode of hotlinked URLs. This is well beyond what structured fields convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and cost before the more detailed MCP guidance, and each sentence serves a purpose. It runs long, but the length is justified by the number of behaviors (async flow, credit cost, file handling) that must be communicated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description still goes further by describing the async lifecycle and how to obtain results. Combined with 100% schema coverage on all four parameters, an agent has everything needed to invoke and follow up correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds genuine value on top: it clarifies that `max_resolution` may be set lower than the plan maximum, and it gives file-source guidance (prefer a Magic Hour file path or an upload-URL `file_path`; hotlinked URLs can fail) that enriches the `*_file_path` semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Swap a head onto a body image.' This is unmistakably distinct from siblings like face_swap_photo_create_image and body_swap_create_image, since the head-onto-body operation is named directly. An agent can identify the tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the post-invocation workflow (poll or call wait_for_image_project), which is useful process guidance, but never states when this tool should be chosen over siblings such as face_swap_photo_create_image or body_swap_create_image. Usage is implied by the operation name rather than explicitly scoped.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_background_remover_create_imageAInspect

Remove background from image. Each image costs 5 credits.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Background Remover - dateTime
assetsYesProvide the assets for background removal
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that this starts an async job, returns id plus credits_charged immediately, costs 5 credits per image, the terminal statuses, and that completed projects include download URLs and expiration metadata. It omits auth requirements and rate limits, so not a full 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the one-line purpose and cost, then uses a structured bullet block for the MCP workflow. It is somewhat long, but every sentence (async return shape, wait helper, file path policy) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async, nested-asset tool with an output schema present, the description supplies the workflow, cost, status lifecycle, and input-path rules an agent needs. It does not need to explain return values since the output schema covers them; minor gaps remain around auth and failure handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it advises preferring an existing Magic Hour file path or a file_path returned by the upload-URL endpoint, and warns that hotlinked public URLs can fail. This interpretation of the *_file_path semantics goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Remove background from image'), which is naturally distinct from siblings like ai_image_upscaler or ai_face_editor. It does not explicitly name or contrast siblings, so it falls just short of the top score, but an agent can identify the purpose immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The guidance explains the async workflow (call wait_for_image_project or poll the matching endpoint) and how to supply file paths, which is useful operational context. However, it never states when to choose this tool over the many sibling image tools, nor any exclusion conditions, so the when-to-use dimension is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_projects_deleteBInspect

Permanently delete the rendered image(s). This action is not reversible, please be sure before deleting.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique ID of the image project. This value is returned by all of the POST APIs that create an image.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the single most important trait: the deletion is permanent and irreversible. It stops there, saying nothing about permission requirements, whether child renders/downloads are also removed, or whether the resource is recoverable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by the irreversible warning; nothing is padded. Could be marginally tighter, but it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive delete with full schema coverage and no output schema, the description gives an agent enough to call it safely: what it does and that it cannot be undone. Behavioral edge cases (cascade effects, auth) remain unspecified, keeping it short of complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the id parameter is fully documented as the project ID returned by create APIs, so the schema does the heavy lifting. The description adds no parameter meaning beyond what the schema already states (it does not even confirm that "rendered image(s)" maps to the project id).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Permanently delete the rendered image(s)") that clearly separates it from sibling reads like image_projects_retrieve_details. It does not, however, explicitly acknowledge the parallel delete siblings (audio_projects_delete, video_projects_delete) or the "project" granularity, so the resource naming is slightly loose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus alternatives (e.g., retrieve details first, or fetch_image_download to just get the file). The only usage-adjacent sentence is the caution "please be sure before deleting," which is a warning rather than routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_projects_retrieve_detailsAInspect

Check the progress of a image project. The downloads field is populated after a successful render.

Statuses

  • queued — waiting to start

  • rendering — in progress

  • complete — ready; see downloads

  • error — a failure occurred (see error)

  • canceled — user canceled

  • draft — not used

MCP guidance:

  • Use this after a create tool to poll job status. When status is complete, surface the downloads URLs to the user; if status is error, surface the error message.

  • Each downloads[n].url is already the full signed download URL. Use it exactly as returned. Do not shorten it, strip query parameters, or append expires_at onto the URL string.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique ID of the image project. This value is returned by all of the POST APIs that create an image.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
nameYesThe name of the image.
typeYesThe type of the image project. Possible values are FACE_EDITOR, AI_IMAGE_EDITOR, AI_SELFIE, AI_HEADSHOT, AI_INFLUENCER, AI_IMAGE, AI_MEME, CLOTHES_CHANGER, BACKGROUND_REMOVER, FACE_SWAP, IMAGE_UPSCALER, IMAGE_ENHANCER, AI_GIF, QR_CODE, PHOTO_EDITOR, PHOTO_COLORIZER, IMAGE_COLOR_GRADER, HEAD_SWAP, BODY_SWAP, STORYBOARD, IMAGE_EXPANDER
errorYesIn the case of an error, this object will contain the error encountered during video render
statusYesThe status of the image. - `draft` - the project was created but has not been submitted for rendering - `queued` - the job is waiting for an available server - `rendering` - the job is being processed; the `image.started` webhook event fires when rendering begins - `complete` - the job finished successfully; fires `image.completed` - `error` - the job failed during processing; fires `image.errored` - `canceled` - the job was manually canceled (for example from the Magic Hour web app) **Note:** `rendering`, `complete`, and `error` have matching webhook events; `canceled` does not - a canceled job emits no webhook event, so poll this endpoint to detect cancellation.
enabledYesWhether this resource is active. If false, it is deleted.
downloadsYes
created_atYes
image_countYesNumber of images generated
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it enumerates every status value with its meaning, notes that `downloads` is only populated after a successful render, and warns that each `downloads[n].url` is a full signed URL that must not be shortened or have parameters stripped/appended. It omits auth/permission requirements and any rate-limit or polling-interval guidance, which would have closed the gap completely.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the one-line purpose, then uses tight headers and bullets for statuses and operational guidance. Every line — including 'draft — not used' — carries actionable information, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the full polling workflow, per-status handling, error surfacing, and the signed-URL caveat; the output schema exists so return-value structure need not be restated. The only meaningful omission is guidance relative to the wait_for_image_project alternative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema, and the description adds no syntax or format detail for `id` or `context`. The baseline 3 applies when the schema does the heavy lifting and the description contributes nothing extra about parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check the progress of a image project') that immediately distinguishes it from the audio/video retrieve_details siblings. The added note that `downloads` populates after a successful render pins down exactly what the tool reports on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it 'after a create tool to poll job status' and instructs what to do per status (surface downloads on complete, surface error on error). It does not, however, acknowledge the wait_for_image_project sibling or explain when to poll vs. when to wait, leaving the most relevant alternative undifferentiated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_to_video_create_videoAInspect

What this API does

Create the same Image To Video you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow.

Good for

  • Automation and batch processing

  • Adding image to video into apps, pipelines, or tools

How it works (3 steps)

  1. Upload your inputs (video, image, or audio) with Generate Upload URLs and copy the file_path.

  2. Send a request to create a image to video job with the basic fields.

  3. Check the job status until it's complete, then download the result from downloads.

Key options

  • Inputs: usually a file, sometimes a YouTube link, depending on project type

  • Resolution: free users are limited to 576px; higher plans unlock HD and larger sizes

  • Extra fields: e.g. face_swap_mode, start_seconds/end_seconds, or a text prompt

Cost
Credits are only charged for the frames that actually render. You'll see an estimate when the job is queued, and the final total after it's done.

For detailed examples, see the product page.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your video a custom name for easy identification.Image To Video - dateTime
audioNoWhether to include audio in the video. Defaults to `false` if not specified. Audio support varies by model: * **`gemini-omni-1.1`**: Not supported * **`kling-2.6`**: Not supported * **`kling-3.0`**: Toggle-able: audio adds extra credits when enabled * **`ltx-2.3`**: Toggle-able: no additional credits for audio * **`ltx-2.5`**: Toggle-able: no additional credits for audio * **`minimax-h3`**: Toggle-able: no additional credits for audio * **`seedance-1.5`**: Toggle-able: audio adds extra credits when enabled * **`seedance-2.0`**: Toggle-able: no additional credits for audio * **`seedance-2.0-mini`**: Toggle-able: no additional credits for audio * **`seedance-2.5`**: Toggle-able: no additional credits for audio * **`sora-2`**: Toggle-able: no additional credits for audio * **`veo3.1`**: Toggle-able: audio adds extra credits when enabled * **`veo3.1-lite`**: Toggle-able: audio adds extra credits when enabled * **`wan-2.2`**: Not supported
modelNoThe AI model to use for video generation. * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. * `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration. * `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration. * `minimax-h3`: Great for reference-driven clips with native audio and longer durations. * `seedance-1.5`: Best for smooth, consistent motion with an end frame. * `seedance-2.0`: Best for reference-led clips with precise subject control. * `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio. * `seedance-2.5`: Best for premium realism, detail, and natural motion. * `sora-2`: Best for creative concepts and longer clips with audio. * `veo3.1`: Best for romantic interactions and expressive action, with realistic detail. * `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1. * `wan-2.2`: Best for physical motion, action, and camera movement. If you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`.default
styleNoAttributed used to dictate the style of the output
assetsYesProvide the assets for image-to-video. Sora 2 only supports images with an aspect ratio of `9:16` or `16:9`.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
resolutionNoControls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers. * **`gemini-omni-1.1`**: Supports 360p, 720p, 1080p, 4k. * **`kling-2.6`**: Supports 720p, 1080p. * **`kling-3.0`**: Supports 720p, 1080p, 4k. * **`ltx-2.3`**: Supports 480p, 720p, 1080p. * **`ltx-2.5`**: Supports 480p, 720p, 1080p. * **`minimax-h3`**: Supports 480p, 720p, 1080p. * **`seedance-1.5`**: Supports 480p, 720p, 1080p. * **`seedance-2.0`**: Supports 480p, 720p. * **`seedance-2.0-mini`**: Supports 480p, 720p. * **`seedance-2.5`**: Supports 480p, 720p. * **`sora-2`**: Supports 720p. * **`veo3.1`**: Supports 720p, 1080p. * **`veo3.1-lite`**: Supports 720p, 1080p. * **`wan-2.2`**: Supports 480p, 720p, 1080p.
end_secondsYesThe total duration of the output video in seconds. Supported durations depend on the chosen model: * **`gemini-omni-1.1`**: 3, 4, 5, 6, 7, 8, 9, 10 * **`kling-2.6`**: 5, 10 * **`kling-3.0`**: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`ltx-2.3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30 * **`ltx-2.5`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 * **`minimax-h3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30 * **`seedance-1.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12 * **`seedance-2.0`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`seedance-2.0-mini`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`seedance-2.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 * **`sora-2`**: 4, 8, 12, 24, 36, 48, 60 * **`veo3.1`**: 4, 6, 8, 16, 24, 32, 40, 48, 56 * **`veo3.1-lite`**: 4, 6, 8, 16, 24, 32, 40, 48, 56 * **`wan-2.2`**: 3, 4, 5, 6, 7, 8, 9, 10, 15

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden — and it discharges it: it discloses that the call starts an async job returning id plus credits_charged immediately, how to await the result, the terminal statuses, and that credits are billed only for rendered frames. It also warns that hotlinked URLs may fail, which is a real operational caveat.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well sectioned and front-loaded with the operation, workflow, and cost, so an agent can extract the essentials quickly. It carries some marketing framing ('Good for automation and batch processing', 'see the product page') that does not strictly earn its place, keeping it below a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter async generation tool with heavy per-model matrix behavior, the description covers the create/await lifecycle, cost model, asset sourcing, and return handling. With an output schema present it appropriately does not need to enumerate return fields, and it points to the retrieval path instead.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuinely non-redundant guidance about *_file_path values — prefer an existing Magic Hour path or a file_path from the upload-URL endpoint — which is not captured by the schema. It does not add meaning beyond the schema for the model/resolution/duration enums, which the schema already documents exhaustively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create the same Image To Video ... programmatically') and the required image input distinguishes it from text_to_video_create_video, video_to_video_create_video, and audio_to_video_create_video siblings without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear 3-step workflow, names the wait_for_video_project helper and the polling endpoint, and explains when to prefer the presigned upload flow. It lacks an explicit 'use this instead of X when...' comparison against the other *_create_video siblings, so it stops just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lip_sync_create_videoAInspect

What this API does

Create the same Lip Sync you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow.

Good for

  • Automation and batch processing

  • Adding lip sync into apps, pipelines, or tools

How it works (3 steps)

  1. Upload your inputs (video, image, or audio) with Generate Upload URLs and copy the file_path.

  2. Send a request to create a lip sync job with the basic fields.

  3. Check the job status until it's complete, then download the result from downloads.

Key options

  • Inputs: usually a file, sometimes a YouTube link, depending on project type

  • Resolution: free users are limited to 576px; higher plans unlock HD and larger sizes

  • Extra fields: e.g. face_swap_mode, start_seconds/end_seconds, or a text prompt

Cost
Credits are only charged for the frames that actually render. You'll see an estimate when the job is queued, and the final total after it's done.

For detailed examples, see the product page.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your video a custom name for easy identification.Lip Sync - dateTime
styleNoAttributes used to dictate the style of the output
assetsYesProvide the assets for lip-sync. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
end_secondsYesEnd time of your clip (seconds). Must be greater than start_seconds.
max_fps_limitNoDefines the maximum FPS (frames per second) for the output video. If the input video's FPS is lower than this limit, the output video will retain the input FPS. This is useful for reducing unnecessary frame usage in scenarios where high FPS is not required.
start_secondsYesStart time of your clip (seconds). Must be ≥ 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so well: it discloses async behavior (returns id and credits_charged immediately), the terminal statuses (complete/error/canceled), that downloads carry direct URLs, that credits are charged only for rendered frames with an estimate at queue time, resolution limits by plan tier, and generation_mode tier availability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Headers and the 3-step flow are well front-loaded, but the piece is long and mixes marketing copy ('the same Lip Sync you can make in the browser') and cost details that duplicate the schema's generation_mode pricing. The genuinely load-bearing MCP guidance is buried at the bottom.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool starts an async job, an output schema exists, and the schema is fully described, the description supplies everything else an agent needs: the immediate return shape, the waiting/polling path, the completed-project downloads, and how to obtain valid file_path values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters, making 3 the baseline. The 'Key options' section adds some framing (inputs, resolution, start_seconds/end_seconds) but it also lists a field like 'face_swap_mode' that does not exist on this schema, adding noise rather than the missing detail the schema could not supply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Create the same Lip Sync... programmatically') and scopes it as an automated/batch/embedded capability. It is clearly distinguishable from siblings like face_swap_create_video or ai_video_editor_create_video because the resource (lip sync) and its async nature are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete when-to-use guidance ('Automation and batch processing', 'Adding lip sync into apps, pipelines, or tools') and an explicit routing rule: call wait_for_video_project or poll GET /v1/video-projects/{id} when the finished result is wanted. It also states when to prefer the presigned upload flow over hotlinked URLs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_colorizer_create_imageAInspect

Colorize image. Each image costs 10 credits.

MCP guidance:

  • This starts an async image generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_image_project helper with the returned id, or poll the matching GET /v1/image-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Photo Colorizer - dateTime
assetsYesProvide the assets for photo colorization
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and delivers: it is async, returns id plus credits_charged immediately, costs 10 credits per image, and includes downloads with direct URLs on completion. It also discloses the fragility of direct public URLs. This is unusually rich disclosure for a mutation/generation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and cost are front-loaded in a single crisp sentence, then structured bullet guidance follows. The guidance is somewhat long, but each bullet carries distinct actionable information rather than padding, so it stays efficient without being maximally terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async generation tool with nested asset params and an output schema, the description covers the missing pieces an agent needs: async lifecycle, retrieval path, credit cost, and file-input sourcing. Output values needn't be re-explained because an output schema exists, yet the description still notes downloads and exact_download_urls, leaving nothing critical unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description nevertheless adds real value about how to populate *_file_path values (prefer existing Magic Hour paths or upload-URL file_path; hotlinks can fail), which is operational meaning beyond the schema's field text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Colorize image') and adds a concrete cost fact (10 credits). It is specific enough to distinguish from sibling image tools like ai_headshot_generator or image_background_remover, though it never explicitly names or contrasts against them. Slightly close to restating the tool name, which caps it below 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly explains the async workflow, names the alternative retrieval paths (the wait_for_image_project helper or polling GET /v1/image-projects/{id}), and clarifies termination statuses. It also gives conditional guidance on file_path sourcing, preferring Magic Hour paths or upload-URL results over hotlinked URLs, with an explicit fallback ('when in doubt, use the presigned upload flow first').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingAInspect

Check that the Magic Hour MCP server is reachable.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does convey that this is a harmless diagnostic read (a reachability probe implies no mutation), but it does not state side effects, latency, or what a failure response looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; nothing redundant and nothing that could be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter health check with an output schema already covering the return value, the description is nearly sufficient; the only real gap is the absence of any guidance on when an agent should invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'context' parameter is exhaustively documented in the schema itself, so the description adds no parameter meaning. Baseline 3 applies when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (check) and a specific resource (Magic Hour MCP server reachability), which is unambiguous and immediately distinguishable from every sibling tool, all of which are media generation/retrieval operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer you call this when connectivity is in doubt, but the description never says when to reach for it (e.g., before retrying a failed generation, after an auth change) nor names any alternative diagnostic path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_to_video_create_videoAInspect

What this API does

Create the same Text To Video you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow.

Good for

  • Automation and batch processing

  • Adding text to video into apps, pipelines, or tools

How it works (3 steps)

  1. Upload your inputs (video, image, or audio) with Generate Upload URLs and copy the file_path.

  2. Send a request to create a text to video job with the basic fields.

  3. Check the job status until it's complete, then download the result from downloads.

Key options

  • Inputs: usually a file, sometimes a YouTube link, depending on project type

  • Resolution: free users are limited to 576px; higher plans unlock HD and larger sizes

  • Extra fields: e.g. face_swap_mode, start_seconds/end_seconds, or a text prompt

Cost
Credits are only charged for the frames that actually render. You'll see an estimate when the job is queued, and the final total after it's done.

For detailed examples, see the product page.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your video a custom name for easy identification.Text To Video - dateTime
audioNoWhether to include audio in the video. Defaults to `false` if not specified. Audio support varies by model: * **`gemini-omni-1.1`**: Not supported * **`kling-2.6`**: Not supported * **`kling-3.0`**: Toggle-able: audio adds extra credits when enabled * **`ltx-2.3`**: Toggle-able: no additional credits for audio * **`ltx-2.5`**: Toggle-able: no additional credits for audio * **`minimax-h3`**: Toggle-able: no additional credits for audio * **`seedance-1.5`**: Toggle-able: audio adds extra credits when enabled * **`seedance-2.0`**: Toggle-able: no additional credits for audio * **`seedance-2.0-mini`**: Toggle-able: no additional credits for audio * **`seedance-2.5`**: Toggle-able: no additional credits for audio * **`sora-2`**: Toggle-able: no additional credits for audio * **`veo3.1`**: Toggle-able: audio adds extra credits when enabled * **`veo3.1-lite`**: Toggle-able: audio adds extra credits when enabled * **`wan-2.2`**: Not supported
modelNoThe AI model to use for video generation. * `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`. * `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output. * `kling-2.6`: Best for action, motion blur, and controlled camera moves. * `kling-3.0`: Best for cinematic stories, references, and optional audio. * `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration. * `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration. * `minimax-h3`: Great for reference-driven clips with native audio and longer durations. * `seedance-1.5`: Best for smooth, consistent motion with an end frame. * `seedance-2.0`: Best for reference-led clips with precise subject control. * `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio. * `seedance-2.5`: Best for premium realism, detail, and natural motion. * `sora-2`: Best for creative concepts and longer clips with audio. * `veo3.1`: Best for romantic interactions and expressive action, with realistic detail. * `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1. * `wan-2.2`: Best for physical motion, action, and camera movement. If you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`.default
styleYes
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
resolutionNoControls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers. * **`gemini-omni-1.1`**: Supports 360p, 720p, 1080p, 4k. * **`kling-2.6`**: Supports 720p, 1080p. * **`kling-3.0`**: Supports 720p, 1080p, 4k. * **`ltx-2.3`**: Supports 480p, 720p, 1080p. * **`ltx-2.5`**: Supports 480p, 720p, 1080p. * **`minimax-h3`**: Supports 480p, 720p, 1080p. * **`seedance-1.5`**: Supports 480p, 720p, 1080p. * **`seedance-2.0`**: Supports 480p, 720p. * **`seedance-2.0-mini`**: Supports 480p, 720p. * **`seedance-2.5`**: Supports 480p, 720p. * **`sora-2`**: Supports 720p. * **`veo3.1`**: Supports 720p, 1080p. * **`veo3.1-lite`**: Supports 720p, 1080p. * **`wan-2.2`**: Supports 480p, 720p, 1080p.
end_secondsYesThe total duration of the output video in seconds. Supported durations depend on the chosen model: * **`gemini-omni-1.1`**: 3, 4, 5, 6, 7, 8, 9, 10 * **`kling-2.6`**: 5, 10 * **`kling-3.0`**: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`ltx-2.3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30 * **`ltx-2.5`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 * **`minimax-h3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30 * **`seedance-1.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12 * **`seedance-2.0`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`seedance-2.0-mini`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 * **`seedance-2.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 * **`sora-2`**: 4, 8, 12, 24, 36, 48, 60 * **`veo3.1`**: 4, 6, 8, 16, 24, 32, 40, 48, 56 * **`veo3.1-lite`**: 4, 6, 8, 16, 24, 32, 40, 48, 56 * **`wan-2.2`**: 3, 4, 5, 6, 7, 8, 9, 10, 15
aspect_ratioNoDetermines the aspect ratio of the output video. * **`gemini-omni-1.1`**: Supports 16:9, 9:16. * **`kling-2.6`**: Supports 9:16, 16:9, 1:1. * **`kling-3.0`**: Supports 9:16, 16:9, 1:1. * **`ltx-2.3`**: Supports 9:16, 16:9, 1:1. * **`ltx-2.5`**: Supports 9:16, 16:9, 1:1. * **`minimax-h3`**: Supports 16:9, 9:16, 1:1. * **`seedance-1.5`**: Supports 9:16, 16:9, 1:1. * **`seedance-2.0`**: Supports 9:16, 16:9, 1:1. * **`seedance-2.0-mini`**: Supports 9:16, 16:9, 1:1. * **`seedance-2.5`**: Supports 9:16, 16:9, 1:1. * **`sora-2`**: Supports 9:16, 16:9. * **`veo3.1`**: Supports 9:16, 16:9. * **`veo3.1-lite`**: Supports 9:16, 16:9. * **`wan-2.2`**: Supports 9:16, 16:9, 1:1.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the async job model (returns id and credits_charged immediately), the polling/wait_for_video_project follow-up, the credit-charging model (charged per rendered frame, estimate at queue time), and that completed projects expose downloads. It omits auth/permission requirements and rate limits, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded and organized under clear headers, but it is long and padded with a template "Key options" section whose input types (file/YouTube upload) do not apply to a text-to-video tool. Some sentences therefore do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, yet the description still helpfully covers the async return shape and how to retrieve results. Combined with the rich parameter schema, an agent has enough to invoke the tool correctly, though the generic input-type boilerplate is a minor mismatch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 88%, so the schema already documents model/resolution/aspect_ratio/end_seconds constraints in depth, establishing a 3 baseline. The description's "Key options" block partly compensates but is largely generic boilerplate (mentions uploading video/image/audio and YouTube links that do not exist in this tool's schema), which risks confusing rather than clarifying the actual parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ("Create ... Text To Video ... programmatically") and frames it as automation of the browser product. This distinguishes it from the many sibling video generators (image_to_video, video_to_video, lip_sync) by the text-driven input, though it never explicitly names those siblings as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The "Good for" block gives context (automation, batch processing, embedding in apps/pipelines), which implies when to reach for an async programmatic job. However there is no explicit when-not guidance and no direct naming of the sibling tools it should be chosen over.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_assets_generate_presigned_urlAInspect

Generates a list of pre-signed upload URLs for the assets required. This API is only necessary if you want to upload to Magic Hour's storage. Refer to the Input Files Guide for more details.

The response array will match the order of items in the request body.

Valid file extensions per asset type:

  • video: mp4, m4v, mov, webm

  • audio: mp3, wav, aac, flac, webm, weba, m4a, opus, ogg, oga, aiff, amr

  • image: png, jpg, jpeg, jfif, heic, heif, webp, avif, jp2, tiff, tif, bmp

  • gif: gif, webp, webm

Note: gif is only supported for face swap API video_file_path field.

Once you receive an upload URL, send a PUT request to upload the file directly.

Example:

curl -X PUT --data '@/path/to/file/video.mp4' \
  https://videos.magichour.ai/api-assets/id/video.mp4?<auth params from the API response>

MCP guidance:

  • This only creates presigned upload URLs. For local files, upload the raw bytes to each returned upload_url outside the generation call, then pass the matching file_path into the create tool.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesThe list of assets to upload. The response array will match the order of items in the request body.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYesThe list of upload URLs and file paths for the assets. The response array will match the order of items in the request body. Refer to the [Input Files Guide](https://docs.magichour.ai/integration/inputs-and-outputs) for more details.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that the response array matches request order, that files must be PUT to the returned URL, and that extension support varies by asset type (including the gif/face-swap caveat). It does not cover auth/permission scope or expiry of the presigned URLs, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose followed by scoping, constraints, and workflow guidance, with clean headings and a concrete curl example. Slightly long and the extension table duplicates schema content, which costs a point but does not obscure the key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description supplies the full end-to-end context an agent needs: why the URL exists, what extensions are legal, how to upload, and how the resulting file path feeds later create calls. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description's per-type extension list largely restates what the schema's extension field says, adding only the ordering guarantee for the response array. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generates a list of pre-signed upload URLs for the assets required') and immediately scopes the tool as only needed when uploading into Magic Hour's storage, separating it from the many *_create_* generation siblings that consume file paths rather than produce upload targets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when it is and is not needed ('only necessary if you want to upload to Magic Hour's storage'), and the MCP guidance tells the agent to prefer existing file paths or direct URLs and to fall back to the presigned flow when hotlinked URLs are unreliable. This routes the agent to alternatives with clear conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_projects_deleteBInspect

Permanently delete the rendered video. This action is not reversible, please be sure before deleting.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique ID of the video project. This value is returned by all of the POST APIs that create a video.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does disclose the key trait: the deletion is permanent and irreversible. It omits other relevant traits for a destructive op, such as required permissions, whether associated assets/renders are also removed, and whether the returned resource is a project or a file.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the destructive action front-loaded, and no wasted words. The second sentence is mildly redundant with 'permanently' but still earns its place as a warning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, single-required-param delete tool with no output schema and no annotations, the description covers permanence and irreversibility adequately. It falls short on auth expectations and what exactly is removed (project vs rendered output), which matters for a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters (id and context) are already fully documented in the schema. The description adds no syntax, format, or meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) and resource (the rendered video), which lets an agent distinguish it from the many create/edit siblings. However, it says 'rendered video' while the tool name and id param describe a 'video project', leaving a small ambiguity about whether the project or its rendered output is deleted, and it names no sibling for contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never says when to use this versus alternatives such as video_projects_retrieve_details, nor any precondition. The caution 'be sure before deleting' is a warning, not usage guidance that routes the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_projects_retrieve_detailsAInspect

Check the progress of a video project. The downloads field is populated after a successful render.

Statuses

  • queued — waiting to start

  • rendering — in progress

  • complete — ready; see downloads

  • error — a failure occurred (see error)

  • canceled — user canceled

  • draft — not used

MCP guidance:

  • Use this after a create tool to poll job status. When status is complete, surface the downloads URLs to the user; if status is error, surface the error message.

  • Each downloads[n].url is already the full signed download URL. Use it exactly as returned. Do not shorten it, strip query parameters, or append expires_at onto the URL string.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique ID of the video project. This value is returned by all of the POST APIs that create a video.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
fpsYesFrame rate of the video. If the status is not 'complete', the frame rate is an estimate and will be adjusted when the video completes.
nameYesThe name of the video.
typeYesThe type of the video project. Possible values are ANIMATION, AUTO_SUBTITLE, VIDEO_TO_VIDEO, FACE_SWAP, TEXT_TO_VIDEO, IMAGE_TO_VIDEO, LIP_SYNC, TALKING_PHOTO, AVATAR, VIDEO_UPSCALER, VIDEO_EDITOR, CHARACTER_REPLACE, VIDEO_COLORIZER, VIDEO_COLOR_GRADER, VIDEO_TRANSLATOR, MUSIC_VIDEO, EXTEND, AUDIO_TO_VIDEO, VIDEO_EXPANDER, UGC_AD
errorYesIn the case of an error, this object will contain the error encountered during video render
widthYesThe width of the final output video. A value of -1 indicates the width can be ignored.
heightYesThe height of the final output video. A value of -1 indicates the height can be ignored.
statusYesThe status of the video. - `draft` - the project was created but has not been submitted for rendering - `queued` - the job is waiting for an available server - `rendering` - the job is being processed; the `video.started` webhook event fires when rendering begins - `complete` - the job finished successfully; fires `video.completed` - `error` - the job failed during processing; fires `video.errored` - `canceled` - the job was manually canceled (for example from the Magic Hour web app) **Note:** `rendering`, `complete`, and `error` have matching webhook events; `canceled` does not - a canceled job emits no webhook event, so poll this endpoint to detect cancellation.
enabledYesWhether this resource is active. If false, it is deleted.
downloadsYes
created_atYes
end_secondsYesEnd time of your clip (seconds). Must be greater than start_seconds.
start_secondsYesStart time of your clip (seconds). Must be ≥ 0.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does a good job: it discloses that `downloads` is only populated after a successful render, defines every status value, and warns that URLs are pre-signed and must be used verbatim. It omits auth/permission requirements and any rate-limit or polling-cadence guidance, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line purpose, then a scannable status bullet list, then operational guidance. Every line contributes; the status enum and the URL-handling warning are both information an agent actually needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained, and the description still adds the status vocabulary and the signed-URL handling rule. For a simple two-parameter polling tool this is fully sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented in the schema, so the baseline is 3. The description adds no extra meaning about `id` or `context` beyond what the schema already states, though it does explain output semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check the progress of a video project') and enumerates the status states the tool reports, which is more informative than a restatement. It does not, however, explicitly differentiate itself from the sibling wait_for_video_project or fetch_video_download, which an agent must disambiguate against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'MCP guidance' block gives a clear trigger ('Use this after a create tool to poll job status') plus explicit follow-up actions for the complete and error cases. It stops short of naming the alternative (wait_for_video_project) or stating when polling is preferable to a blocking wait, so it is clear context rather than full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_to_video_create_videoAInspect

What this API does

Create the same Video To Video you can make in the browser, but programmatically, so you can automate it, run it at scale, or connect it to your own app or workflow.

Good for

  • Automation and batch processing

  • Adding video to video into apps, pipelines, or tools

How it works (3 steps)

  1. Upload your inputs (video, image, or audio) with Generate Upload URLs and copy the file_path.

  2. Send a request to create a video to video job with the basic fields.

  3. Check the job status until it's complete, then download the result from downloads.

Key options

  • Inputs: usually a file, sometimes a YouTube link, depending on project type

  • Resolution: free users are limited to 576px; higher plans unlock HD and larger sizes

  • Extra fields: e.g. face_swap_mode, start_seconds/end_seconds, or a text prompt

Cost
Credits are only charged for the frames that actually render. You'll see an estimate when the job is queued, and the final total after it's done.

For detailed examples, see the product page.

MCP guidance:

  • This starts an async video generation job and returns id plus credits_charged immediately. If the user wants the finished result, call the wait_for_video_project helper with the returned id, or poll the matching GET /v1/video-projects/{id} endpoint until status is complete, error, or canceled. Completed projects include downloads with direct URLs. The custom wait helper also returns exact_download_urls separately from expiration metadata.

  • For *_file_path values, prefer an existing Magic Hour file path or a file_path returned by the upload-URL endpoint after the file bytes are uploaded. Direct public media URLs may work when they are stable, fetchable, and return raw file bytes, but hotlinked URLs can fail; when in doubt, use the presigned upload flow first and pass the returned file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGive your video a custom name for easy identification.Video To Video - dateTime
styleYes
assetsYesProvide the assets for video-to-video. For video, The `video_source` field determines whether `video_file_path` or `youtube_url` field is used
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
end_secondsYesEnd time of your clip (seconds). Must be greater than start_seconds.
start_secondsYesStart time of your clip (seconds). Must be ≥ 0.
fps_resolutionNoDetermines whether the resulting video will have the same frame per second as the original video, or half. * `FULL` - the result video will have the same FPS as the input video * `HALF` - the result video will have half the FPS as the input videoHALF

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique ID of the video. Use it with the [Get video Project API](https://docs.magichour.ai/api-reference/video-projects/get-video-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the video. If the status is not 'complete', this value is an estimate and may be adjusted upon completion based on the actual FPS of the output video. If video generation fails, credits will be refunded, and this field will be updated to include the refund.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so well: it discloses that the job is asynchronous and immediately returns `id` plus `credits_charged`, enumerates terminal statuses (complete/error/canceled), explains the credits-per-rendered-frame cost model with estimate-at-queue vs final total, and warns that hotlinked media URLs can fail. It also flags build-time concerns like the presigned upload flow for `*_file_path` values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is long, but the header-based structure (What it does / Good for / How it works / Key options / Cost / MCP guidance) is front-loaded and scannable, with the core async-return behavior surfaced early. There is some repetition — the presigned upload flow is described in both the numbered steps and the final bullet.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 7 parameters, nested objects, and an output schema, the description covers the end-to-end lifecycle an agent needs: input sourcing, job creation, polling/status handling, and result retrieval via `downloads`. Return-value detail is correctly left to the output schema while the async contract is explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already high (86%), so the baseline is 3; the description adds real value by tying `*_file_path` values to the upload-URL endpoint, warning about unstable hotlinked URLs, and noting constraints like free-tier 576px resolution and start/end second usage. Minor imprecision: it references `face_swap_mode`, which is not among this tool's schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource — programmatically creating a Video To Video job — and describes the workflow, cost, and options. It does not explicitly differentiate itself from close siblings like image_to_video_create_video, text_to_video_create_video, or animation_create_video, so an agent must infer the distinction from the tool name and the 'video source' framing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear when-to-use context (automation, batch processing, embedding in apps/pipelines) and a concrete 3-step invocation path. It also names the follow-up alternative, `wait_for_video_project`, for retrieving the finished result. It stops short of stating when *not* to use this versus the other create_video siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_for_audio_projectAInspect

Poll an audio project until it completes, errors, is canceled, or times out. Returns the final project JSON and, when complete, attempts to inline audio downloads for Inspector or compatible clients. Returns sanitized download fields. Use exact_download_urls[n] or downloads[n].url exactly as returned; do not shorten it, remove query parameters, or append expiration metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
timeout_secondsNo
max_inline_downloadsNo
poll_interval_secondsNo
max_bytes_per_downloadNo
include_inline_downloadsNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose non-obvious traits: it polls, resolves on four terminal states, returns the final project JSON, attempts to inline downloads only when complete, and returns sanitized fields. The URL-integrity warning is a valuable behavioral gotcha, though auth requirements and timeout-failure behavior are not described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose in the first sentence, then layers return behavior and the URL-handling caveat. Every sentence carries information, though the repeated URL warning adds some density without being wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter polling tool with no output schema and very low schema coverage, the description covers return content reasonably but omits parameter meanings and edge-case behavior. It is adequate but leaves real gaps an agent must guess at.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 14% schema description coverage across 7 parameters (only 'context' is documented). The description only vaguely gestures at inline downloads, leaving timeout_seconds, poll_interval_seconds, max_inline_downloads, max_bytes_per_download, and include_inline_downloads unexplained in both schema and description, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Poll an audio project') plus the terminal conditions it resolves on, and the name/description clearly separate it from wait_for_image_project, wait_for_video_project, and audio_projects_retrieve_details. An agent can identify its role without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the polling semantics (call it to block until the project finishes), but there is no explicit when-to-use vs. when-not guidance and no mention of alternatives like audio_projects_retrieve_details or fetch_audio_download. The instruction near the end concerns how to handle returned URLs, not when to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_for_image_projectBInspect

Poll an image project until it completes, errors, is canceled, or times out. Returns the final project JSON and, when complete, attempts to inline image downloads for Inspector or compatible clients. Returns sanitized download fields. Use exact_download_urls[n] or downloads[n].url exactly as returned; do not shorten it, remove query parameters, or append expiration metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
timeout_secondsNo
max_inline_downloadsNo
poll_interval_secondsNo
max_bytes_per_downloadNo
include_inline_downloadsNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does substantial work: it discloses the blocking/polling loop, the four terminal states, that downloads are only inlined on completion, that returned fields are sanitized, and a critical usage constraint about not mutating download URLs. It omits timeout/poll defaults, auth requirements, and rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the polling purpose, followed by return behavior and then the URL-handling warning, which is the one instruction most likely to cause failures. Slightly dense but every sentence carries operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no output schema and no annotations, the description usefully explains the return shape and inlining behavior, which partly offsets the missing output schema. It still leaves six tuning parameters and their units/bounds unexplained, so an agent cannot confidently set anything beyond the required id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14% (only `context` is documented), so the description must compensate for six undocumented parameters. It alludes to inline-download behavior but never explains timeout_seconds, poll_interval_seconds, max_inline_downloads, max_bytes_per_download, or include_inline_downloads, leaving their meaning to bare defaults in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (poll), resource (image project), and the exact terminal conditions (completes, errors, canceled, times out), which is far more than a tautology. It does not name or differentiate itself from the closely related wait_for_video_project/wait_for_audio_project or image_projects_retrieve_details, so the sibling routing is left to the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the polling semantics clear, implying it is called after an image project has been kicked off to block until a terminal state. However, it never states when to prefer this over the non-blocking image_projects_retrieve_details or when to fall back to fetch_image_download, and gives no prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_for_video_projectBInspect

Poll a video project until it completes, errors, is canceled, or times out. Returns sanitized download fields. Use exact_download_urls[n] or downloads[n].url exactly as returned; do not shorten it, remove query parameters, or append expiration metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
timeout_secondsNo
max_inline_downloadsNo
poll_interval_secondsNo
include_inline_downloadsNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose non-obvious behavior: the four termination conditions, that returned fields are sanitized, and a critical warning that download URLs may carry query parameters and expiration metadata that must not be altered. It omits auth requirements, whether the call blocks, and rate/polling limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with purpose then the return/usage warning. Each sentence carries distinct information, though the second sentence is dense with the two URL forms.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter polling tool with no annotations and no output schema, the description covers termination semantics and download-field handling but leaves the timeout, poll interval, and inline-download toggles (which materially change behavior/volume) unexplained, and says nothing about blocking behavior or prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 17%, so the description must compensate, and it largely does not. Five of six parameters (timeout_seconds, max_inline_downloads, poll_interval_seconds, include_inline_downloads) are unexplained; only the downloads concept is touched on obliquely via 'downloads[n].url'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (poll) and resource (video project) and enumerates the terminal states it waits for. The resource qualifier naturally separates it from wait_for_audio_project and wait_for_image_project, but it never references the closest alternative, video_projects_retrieve_details, so sibling differentiation is implicit rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The polling-until-termination framing implies when to use it, and the URL-handling warning is a concrete usage rule. However, there is no explicit guidance on when to choose this over video_projects_retrieve_details or the sibling wait tools, and no stated prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • Changedai_image_editor_create_image3 fields changed
      • changedInput schema / properties / model / description
        Previous value: -"The AI model to use for image editing. Each model has different capabilities and costs.\n\n**Models:**\n- `default` - Use the model we recommend, which will change over time. This is recommended unless you need a specific model. This is the default behavior.\n- `flux-2-klein` - from 5 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: free, creator, pro, business\n  - Max additional input images: 5\n- `gpt-image-2` - from 50 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `nano-banana` - from 50 credits/image\n  - Supported resolutions: 640px, 1k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `nano-banana-2` - from 100 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `nano-banana-2-lite` - from 50 credits/image\n  - Supported resolutions: 640px, 1k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `nano-banana-pro` - from 150 credits/image\n  - Supported resolutions: 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `qwen-edit` - from 10 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: free, creator, pro, business\n  - Max additional input images: 2\n- `seedream-v4` - from 40 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `seedream-v4.5` - from 50 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `seedream-v5-pro` - from 75 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n"New value: +"The AI model to use for image editing. Each model has different capabilities and costs.\n\n**Models:**\n- `default` - Use the model we recommend, which will change over time. This is recommended unless you need a specific model. This is the default behavior.\n- `flux-2-klein` - from 5 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: free, creator, pro, business\n  - Max additional input images: 5\n- `gpt-image-2` - from 50 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `gpt-image-2.5-flare` - from 100 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `nano-banana` - from 50 credits/image\n  - Supported resolutions: 640px, 1k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `nano-banana-2` - from 100 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `nano-banana-2-lite` - from 50 credits/image\n  - Supported resolutions: 640px, 1k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `nano-banana-pro` - from 150 credits/image\n  - Supported resolutions: 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `qwen-edit` - from 10 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: free, creator, pro, business\n  - Max additional input images: 2\n- `seedream-v4` - from 40 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `seedream-v4.5` - from 50 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n- `seedream-v5-pro` - from 75 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: creator, pro, business\n  - Max additional input images: 9\n"
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "default",
        -  "nano-banana-2",
        -  "gpt-image-2",
        -  "flux-2-klein",
        -  "nano-banana-2-lite",
        -  "qwen-edit",
        -  "seedream-v4",
        -  "seedream-v4.5",
        -  "seedream-v5-pro",
        -  "nano-banana",
        -  "nano-banana-pro"
        -]New value: +[
        +  "default",
        +  "nano-banana-2",
        +  "gpt-image-2",
        +  "gpt-image-2.5-flare",
        +  "flux-2-klein",
        +  "nano-banana-2-lite",
        +  "qwen-edit",
        +  "seedream-v4",
        +  "seedream-v4.5",
        +  "seedream-v5-pro",
        +  "nano-banana",
        +  "nano-banana-pro"
        +]
      • changedInput schema / properties / resolution / description
        Previous value: -"Maximum resolution (longest edge) for the output image.\n\n**Options:**\n- `640px` — up to 640px\n- `1k` — up to 1024px\n- `2k` — up to 2048px\n- `4k` — up to 4096px\n- `auto` — **Deprecated.** Mapped server-side from your subscription tier to the best matching resolution the model supports\n\n**Per-model support:**\n- `flux-2-klein` - 640px, 1k, 2k\n- `gpt-image-2` - 640px, 1k, 2k, 4k\n- `nano-banana` - 640px, 1k\n- `nano-banana-2` - 640px, 1k, 2k, 4k\n- `nano-banana-2-lite` - 640px, 1k\n- `nano-banana-pro` - 1k, 2k, 4k\n- `qwen-edit` - 640px, 1k, 2k\n- `seedream-v4` - 640px, 1k, 2k, 4k\n- `seedream-v4.5` - 640px, 1k, 2k, 4k\n- `seedream-v5-pro` - 640px, 1k, 2k\n\nNote: Resolution availability depends on the model and your subscription tier."New value: +"Maximum resolution (longest edge) for the output image.\n\n**Options:**\n- `640px` — up to 640px\n- `1k` — up to 1024px\n- `2k` — up to 2048px\n- `4k` — up to 4096px\n- `auto` — **Deprecated.** Mapped server-side from your subscription tier to the best matching resolution the model supports\n\n**Per-model support:**\n- `flux-2-klein` - 640px, 1k, 2k\n- `gpt-image-2` - 640px, 1k, 2k, 4k\n- `gpt-image-2.5-flare` - 640px, 1k, 2k, 4k\n- `nano-banana` - 640px, 1k\n- `nano-banana-2` - 640px, 1k, 2k, 4k\n- `nano-banana-2-lite` - 640px, 1k\n- `nano-banana-pro` - 1k, 2k, 4k\n- `qwen-edit` - 640px, 1k, 2k\n- `seedream-v4` - 640px, 1k, 2k, 4k\n- `seedream-v4.5` - 640px, 1k, 2k, 4k\n- `seedream-v5-pro` - 640px, 1k, 2k\n\nNote: Resolution availability depends on the model and your subscription tier."
    • Changedai_image_generator_create_image3 fields changed
      • changedInput schema / properties / model / description
        Previous value: -"The AI model to use for image generation. Each model has different capabilities and costs.\n\n**Models:**\n- `default` - Use the model we recommend, which will change over time. This is recommended unless you need a specific model. This is the default behavior.\n- `flux-2-klein` - from 5 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: free, creator, pro, business\n  - Image count allowed: 1\n- `flux-schnell` - from 5 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: free, creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `gpt-image-2` - from 50 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `nano-banana` - from 50 credits/image\n  - Supported resolutions: 640px, 1k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `nano-banana-2` - from 100 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 4, 9, 16\n- `nano-banana-2-lite` - from 50 credits/image\n  - Supported resolutions: 640px, 1k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `nano-banana-pro` - from 150 credits/image\n  - Supported resolutions: 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 4, 9, 16\n- `seedream-v4` - from 40 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `seedream-v5-pro` - from 75 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `z-image-turbo` - from 5 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: free, creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n\n**Deprecated Enum Values:**\n- `seedream` - Use `seedream-v4` instead.\n"New value: +"The AI model to use for image generation. Each model has different capabilities and costs.\n\n**Models:**\n- `default` - Use the model we recommend, which will change over time. This is recommended unless you need a specific model. This is the default behavior.\n- `flux-2-klein` - from 5 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: free, creator, pro, business\n  - Image count allowed: 1\n- `flux-schnell` - from 5 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: free, creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `gpt-image-2` - from 50 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `gpt-image-2.5-flare` - from 100 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `nano-banana` - from 50 credits/image\n  - Supported resolutions: 640px, 1k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `nano-banana-2` - from 100 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 4, 9, 16\n- `nano-banana-2-lite` - from 50 credits/image\n  - Supported resolutions: 640px, 1k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `nano-banana-pro` - from 150 credits/image\n  - Supported resolutions: 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 4, 9, 16\n- `seedream-v4` - from 40 credits/image\n  - Supported resolutions: 640px, 1k, 2k, 4k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `seedream-v5-pro` - from 75 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n- `z-image-turbo` - from 5 credits/image\n  - Supported resolutions: 640px, 1k, 2k\n  - Available for tiers: free, creator, pro, business\n  - Image count allowed: 1, 2, 3, 4\n\n**Deprecated Enum Values:**\n- `seedream` - Use `seedream-v4` instead.\n"
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "default",
        -  "nano-banana-2",
        -  "gpt-image-2",
        -  "z-image-turbo",
        -  "flux-2-klein",
        -  "nano-banana-2-lite",
        -  "seedream-v4",
        -  "seedream-v5-pro",
        -  "nano-banana",
        -  "nano-banana-pro",
        -  "flux-schnell",
        -  "seedream"
        -]New value: +[
        +  "default",
        +  "nano-banana-2",
        +  "gpt-image-2",
        +  "gpt-image-2.5-flare",
        +  "z-image-turbo",
        +  "flux-2-klein",
        +  "nano-banana-2-lite",
        +  "seedream-v4",
        +  "seedream-v5-pro",
        +  "nano-banana",
        +  "nano-banana-pro",
        +  "flux-schnell",
        +  "seedream"
        +]
      • changedInput schema / properties / resolution / description
        Previous value: -"Maximum resolution (longest edge) for the output image.\n\n**Options:**\n- `640px` — up to 640px\n- `1k` — up to 1024px\n- `2k` — up to 2048px\n- `4k` — up to 4096px\n- `auto` — **Deprecated.** Mapped server-side from your subscription tier to the best matching resolution the model supports\n\n**Per-model support:**\n- `flux-2-klein` - 640px, 1k, 2k\n- `flux-schnell` - 640px, 1k, 2k\n- `gpt-image-2` - 640px, 1k, 2k, 4k\n- `nano-banana` - 640px, 1k\n- `nano-banana-2` - 640px, 1k, 2k, 4k\n- `nano-banana-2-lite` - 640px, 1k\n- `nano-banana-pro` - 1k, 2k, 4k\n- `seedream-v4` - 640px, 1k, 2k, 4k\n- `seedream-v5-pro` - 640px, 1k, 2k\n- `z-image-turbo` - 640px, 1k, 2k\n\nNote: Resolution availability depends on the model and your subscription tier."New value: +"Maximum resolution (longest edge) for the output image.\n\n**Options:**\n- `640px` — up to 640px\n- `1k` — up to 1024px\n- `2k` — up to 2048px\n- `4k` — up to 4096px\n- `auto` — **Deprecated.** Mapped server-side from your subscription tier to the best matching resolution the model supports\n\n**Per-model support:**\n- `flux-2-klein` - 640px, 1k, 2k\n- `flux-schnell` - 640px, 1k, 2k\n- `gpt-image-2` - 640px, 1k, 2k, 4k\n- `gpt-image-2.5-flare` - 640px, 1k, 2k, 4k\n- `nano-banana` - 640px, 1k\n- `nano-banana-2` - 640px, 1k, 2k, 4k\n- `nano-banana-2-lite` - 640px, 1k\n- `nano-banana-pro` - 1k, 2k, 4k\n- `seedream-v4` - 640px, 1k, 2k, 4k\n- `seedream-v5-pro` - 640px, 1k, 2k\n- `z-image-turbo` - 640px, 1k, 2k\n\nNote: Resolution availability depends on the model and your subscription tier."
    • Changedai_meme_generator_create_image1 field changed
      • changedInput schema / properties / style / properties / template / enum
        Previous value: -[
        -  "Random",
        -  "Drake Hotline Bling",
        -  "Galaxy Brain",
        -  "Two Buttons",
        -  "Gru's Plan",
        -  "Tuxedo Winnie The Pooh",
        -  "Is This a Pigeon",
        -  "Panik Kalm Panik",
        -  "Disappointed Guy",
        -  "Waiting Skeleton",
        -  "Bike Fall",
        -  "Change My Mind",
        -  "Side Eyeing Chloe"
        -]New value: +[
        +  "Random",
        +  "Drake Hotline Bling",
        +  "Galaxy Brain",
        +  "Two Buttons",
        +  "Gru's Plan",
        +  "Tuxedo Winnie The Pooh",
        +  "Is This a Pigeon",
        +  "Panik Kalm Panik",
        +  "Disappointed Guy",
        +  "Waiting Skeleton",
        +  "Bike Fall",
        +  "Change My Mind",
        +  "Side Eyeing Chloe",
        +  "Woman Yelling at a Cat",
        +  "Success Kid",
        +  "One Does Not Simply",
        +  "Bad Luck Brian",
        +  "Futurama Fry",
        +  "Ancient Aliens",
        +  "Disaster Girl",
        +  "Hide the Pain Harold",
        +  "Distracted Boyfriend",
        +  "Left Exit 12 Off Ramp",
        +  "Running Away Balloon",
        +  "Batman Slapping Robin",
        +  "UNO Draw 25",
        +  "Mocking SpongeBob",
        +  "Boardroom Meeting Suggestion",
        +  "X, X Everywhere",
        +  "Buff Doge vs Cheems",
        +  "Bernie Once Again Asking",
        +  "Roll Safe Think About It",
        +  "Blank Nut Button",
        +  "Epic Handshake",
        +  "Sad Pablo Escobar",
        +  "Inhaling Seagull",
        +  "Surprised Pikachu",
        +  "Always Has Been",
        +  "Scroll of Truth",
        +  "Marked Safe From",
        +  "Y'all Got Any More of That",
        +  "Monkey Puppet",
        +  "Oprah You Get A",
        +  "They're the Same Picture",
        +  "I Bet He's Thinking About Other Women",
        +  "Evil Kermit",
        +  "This Is Fine",
        +  "This Is Where I'd Put My Trophy",
        +  "Anakin Padme Four Panel",
        +  "Who Killed Hannibal",
        +  "Clown Applying Makeup",
        +  "Trade Offer",
        +  "Laughing Leo",
        +  "Sleeping Shaq",
        +  "Megamind Peeking",
        +  "Grandma Finds the Internet",
        +  "Doge",
        +  "American Chopper Argument",
        +  "First World Problems",
        +  "Grumpy Cat",
        +  "SpongeBob Ight Imma Head Out",
        +  "But That's None of My Business",
        +  "Creepy Condescending Wonka",
        +  "Captain Picard Facepalm",
        +  "Hard to Swallow Pills",
        +  "Bell Curve",
        +  "Absolute Cinema",
        +  "You Guys Are Getting Paid",
        +  "Types of Headaches",
        +  "Mother Ignoring Kid Drowning in a Pool",
        +  "Flex Tape",
        +  "Spiderman Pointing at Spiderman",
        +  "Charlie Conspiracy",
        +  "Pawn Stars Best I Can Do",
        +  "0 Days Without",
        +  "Squidward Window",
        +  "Where Monkey",
        +  "Soldier Protecting Sleeping Child",
        +  "They Don't Know",
        +  "Spiderman Triple",
        +  "Two Guys on a Bus",
        +  "Imagination SpongeBob",
        +  "All My Homies Hate",
        +  "You Know I'm Something of a Scientist Myself",
        +  "Anime Girl Hiding from Terminator",
        +  "A Train Hitting a School Bus",
        +  "AJ Styles and Undertaker",
        +  "Three-Headed Dragon",
        +  "Grant Gustin Over Grave",
        +  "Whisper and Goosebumps",
        +  "Scooby Doo Mask Reveal",
        +  "Domino Effect",
        +  "Two Paths",
        +  "I'm the Captain Now",
        +  "Say the Line Bart",
        +  "Star Wars Yoda",
        +  "Grim Reaper Knocking Door",
        +  "Yo Dawg Heard You",
        +  "Gus Fring We Are Not the Same",
        +  "C'mon Do Something",
        +  "Leonardo DiCaprio Cheers"
        +]
    • Changedai_voice_generator_create_audio2 fields changed
      • changedInput schema / properties / style / properties / voice_name / description
        Previous value: -"The voice to use for the speech. Available voices: Elon Musk, Mark Zuckerberg, Joe Rogan, Barack Obama, Morgan Freeman, Kanye West, Donald Trump, Joe Biden, Kim Kardashian, Taylor Swift, James Earl Jones, Samuel L. Jackson, Jeff Goldblum, David Attenborough, Sean Connery, Cillian Murphy, Anne Hathaway, Julia Roberts, Natalie Portman, Steve Carell, Amy Poehler, Stephen Colbert, Jimmy Fallon, David Letterman, Alex Trebek, Katy Perry, Prince, Kevin Bacon, Tom Hiddleston, Adam Driver, Alan Rickman, Alexz Johnson, Ana Gasteyer, Andrew Rannells, Arden Cho, Bear Grylls, Ben McKenzie, Ben Stiller, Ben Whishaw, Billie Joe Armstrong, Bingbing Li, Booboo Stewart, Bradley Steven Perry, Bruno Mars, Caity Lotz, Cameron Boyce, Candice Accola, Carrie Underwood, Casey Affleck, Caterina Scorsone, Cedric the Entertainer, Chace Crawford, Chadwick Boseman, Charlie Day, Chris Hemsworth, Chris Martin, Christopher Mintz-Plasse, Dan Fogler, Dan Stevens, Daniel Dae Kim, Danielle Panabaker, Dave Bautista, David Schwimmer, Denis Leary, Derek Mears, Diego Luna, Donald Glover, Donnie Yen, Doutzen Kroes, Dove Cameron, Dr. Dre, Drake Bell, Elle Fanning, Ernie Hudson, Fergie, Forest Whitaker, Francia Raisa, Freddie Highmore, Gillian Jacobs, Gina Carano, Ginnifer Goodwin, Gordon Ramsay, Guy Pearce, Gwendoline Christie, Hailee Steinfeld, Howie Mandel, Hugh Jackman, Hugh Laurie, J. K. Simmons, Jack Black, Jared Leto, Jennifer Carpenter, Kesha, Kris Jenner, Kristen Bell, Lorde, Matt Smith, Marilyn Monroe, Charlie Chaplin, Albert Einstein, Abraham Lincoln, John F. Kennedy, Lucille Ball, A.R. Rahman, Aamir Khan, Ajay Devgn, Akshay Kumar, Alain Delon, Alan Alda, Alan Cumming, Amitabh Bachchan, Ang Lee, Ansel Elgort, Anthony Anderson, Anthony Mackie, Armie Hammer, Asa Butterfield, B.J. Novak, Barbara Eden, Betty White, Bill Nighy, Bill Pullman, Blake Shelton, Bonnie Wright, Brad Paisley, Brendan Gleeson, Brian Cox, Bruno Ganz, Burt Reynolds, Carrie Fisher, Charles Dance, Chiwetel Ejiofor, Chris Pine, Christina Hendricks, Christina Ricci, Cyndi Lauper, Dakota Fanning, Damian Lewis, Dan Aykroyd, Daniel Craig, David Oyelowo, David Tennant, Diane Keaton, Diane Kruger, Dick Van Dyke, Domhnall Gleeson, Dominic Cooper, Donald Sutherland, Drew Carey, Eartha Kitt, Eddie Izzard, Edward Asner, Eli Roth, Elisabeth Moss, Ellen Burstyn, Emile Hirsch, Ezra Miller, Felicity Jones, Fiona Shaw, Florence Henderson, Freida Pinto, Geena Davis, Gemma Arterton, Geri Halliwell, Glenn Close, Gloria Steinem, Greta Gerwig, Gugu Mbatha-Raw, Hans Zimmer, Harry Connick Jr., Harvey Keitel, Helena Bonham Carter, Henry Cavill, Hilary Swank, Hugh Bonneville, Idina Menzel, Imelda Staunton, Ingrid Bergman, Irrfan Khan, Isla Fisher, Iwan Rheon, Jack Lemmon, Janet Jackson, Jason Bateman, Jason Segel, Jennifer Coolidge, Johnny Galecki, Jon Favreau, Joseph Gordon-Levitt, Josh Brolin, Josh Gad, Josh Groban, Julia Louis-Dreyfus, Kristen Stewart, Kristen Wiig, Rooney Mara, Caitriona Balfe, J.J. Abrams, Zoe Saldana, SpongeBob SquarePants, Patrick Star, Squidward Tentacles, Homer Simpson, Bart Simpson, Peter Griffin, Stewie Griffin, Eric Cartman, Rick Sanchez, Bugs Bunny, Mickey Mouse, Donald Duck, Shrek, Donkey (Shrek), Elsa (Frozen), Woody (Toy Story), Buzz Lightyear, Scooby-Doo, Shaggy Rogers, Bender (Futurama), Optimus Prime, Batman (Animated), The Joker (Animated), Darth Vader, Yoda, Gollum Smeagol, Gandalf, Winnie the Pooh, Kermit the Frog, Elmo, SpiderMan (Tom Holland ver.), Mario, Luigi, Sonic the Hedgehog, Naruto Uzumaki, Goku, Vegeta, Light Yagami, Luffy (One Piece), Edward Elric, Eren Jaeger, Levi Ackerman, Tanjiro Kamado, All Might, GLaDOS, Master Chief, Kratos, Arthur Morgan, Geralt of Rivia, Dwayne 'The Rock' Johnson, LeBron James, Shaquille O'Neal, Conor McGregor, Mike Tyson, Kobe Bryant, Floyd Mayweather, Cristiano Ronaldo, Lionel Messi, Serena Williams, Tom Brady, Stephen Curry, John Cena, Hulk Hogan, Stone Cold Steve Austin, The Undertaker, Nate Diaz, Charles Barkley, Shannon Sharpe, Drake, Rihanna, Eminem, Snoop Dogg, Jay-Z, Ed Sheeran, Billie Eilish, Ariana Grande, Adele, Post Malone, Travis Scott, Nicki Minaj, Cardi B, Doja Cat, Bad Bunny, Justin Bieber, Sabrina Carpenter, Chappell Roan, Dua Lipa, The Weeknd, Miley Cyrus, Lady Gaga, Kendrick Lamar, Ozzy Osbourne, Freddie Mercury, Elvis Presley, Bob Marley, Frank Sinatra, MrBeast, PewDiePie, Kai Cenat, IShowSpeed, Markiplier, Jacksepticeye, KSI, Logan Paul, Jake Paul, Dream (Minecraft), Corpse Husband, xQc, Pokimane, Valkyrae, Ninja, Joe Scott, Linus (LTT), Ryan Reynolds, Tom Hanks, Robert Downey Jr., Will Smith, Denzel Washington, Leonardo DiCaprio, Brad Pitt, Keanu Reeves, Nicolas Cage, Al Pacino, Robert De Niro, Arnold Schwarzenegger, Sylvester Stallone, Vin Diesel, Jason Statham, Tom Cruise, Johnny Depp, Scarlett Johansson, Angelina Jolie, Jennifer Aniston, Emma Watson, Margot Robbie, Sydney Sweeney, Zendaya, Timothee Chalamet, Pedro Pascal, Oscar Isaac, Benedict Cumberbatch, Ian McKellen, Patrick Stewart, Christopher Walken, Matthew McConaughey, Harrison Ford, Mark Wahlberg, Owen Wilson, Seth Rogen, Kevin Hart, Adam Sandler, Jim Carrey, Eddie Murphy, Robin Williams, Will Ferrell, Melissa McCarthy, Awkwafina, Jason Momoa, Idris Elba, Tom Hardy, Michael B. Jordan, Austin Butler, Glen Powell, Paul Giamatti, Bryan Cranston, Bob Odenkirk, Vladimir Putin, Queen Elizabeth II, Winston Churchill, Martin Luther King Jr., Kamala Harris, Bernie Sanders, Alexandria Ocasio-Cortez, Narendra Modi, Oprah Winfrey, Ellen DeGeneres, Dr. Phil, Steve Harvey, Trevor Noah, John Oliver, James Corden, Ryan Seacrest, Howard Stern, Conan O'Brien, Seth Meyers, Bill Nye, Neil deGrasse Tyson, Guy Fieri, Dave Chappelle, Chris Rock, Jerry Seinfeld, Ali Wong, John Mulaney, Hasan Minhaj, Nikki Glaser, Matt Rife, Gabriel Iglesias, Bo Burnham, Jeff Bezos, Bill Gates, Steve Jobs, Tim Cook, Sam Altman, Jensen Huang, Gilbert Gottfried, James May, Jeremy Clarkson, Richard Hammond, Bob Ross, Anthony Bourdain, David Goggins, Jordan Peterson, Joe Pesci, Danny DeVito, Seth MacFarlane, Patrick Warburton, Keith David, Mark Hamill, Liam Neeson, Antonio Banderas, Sofia Vergara, Penelope Cruz, Gal Gadot, Cate Blanchett, Viola Davis, Meryl Streep, Sandra Bullock, Reese Witherspoon, Salma Hayek, Lupita Nyong'o, Florence Pugh, Jenna Ortega, Ana de Armas, Jacob Elordi, Barry White, Dolly Parton, Willie Nelson, Lil Wayne, 50 Cent, Ice Cube, Tupac Shakur, Notorious B.I.G., Bob Dylan, David Bowie, Michael Jackson, Whitney Houston, Amy Winehouse, SZA, Tyler, The Creator, Thanos, Tony Stark, Captain Jack Sparrow, Walter White, Tommy Shelby, Michael Scott, Dwight Schrute, Bowser, Usain Bolt, Tyson Fury, Dana White, Pat McAfee, Giannis Antetokounmpo, Lex Fridman, Ben Shapiro, Tucker Carlson, Martha Stewart, Gordon Lightfoot, Lizzo, Megan Thee Stallion, Ice Spice, 21 Savage, Metro Boomin, Jack Harlow, Peso Pluma, BTS Jungkook, Quentin Tarantino, Werner Herzog, Anderson Cooper, Rachel Maddow, Mahatma Gandhi, Muhammad Ali, Princess Diana, Nelson Mandela, Steve Irwin, Morty Smith, Andrew Huberman, Willem Dafoe, Mike Rowe, Terminator, Deadpool, Plankton, Mr. Krabs, Picard"New value: +"The voice to use for the speech. Available voices: Elon Musk, Mark Zuckerberg, Joe Rogan, Barack Obama, Morgan Freeman, Kanye West, Donald Trump, Joe Biden, Kim Kardashian, Taylor Swift, James Earl Jones, Samuel L. Jackson, Jeff Goldblum, David Attenborough, Sean Connery, Cillian Murphy, Anne Hathaway, Julia Roberts, Natalie Portman, Steve Carell, Amy Poehler, Stephen Colbert, Jimmy Fallon, David Letterman, Alex Trebek, Katy Perry, Prince, Kevin Bacon, Tom Hiddleston, Adam Driver, Alan Rickman, Alexz Johnson, Ana Gasteyer, Andrew Rannells, Arden Cho, Bear Grylls, Ben McKenzie, Ben Stiller, Ben Whishaw, Billie Joe Armstrong, Bingbing Li, Booboo Stewart, Bradley Steven Perry, Bruno Mars, Caity Lotz, Cameron Boyce, Candice Accola, Carrie Underwood, Casey Affleck, Caterina Scorsone, Cedric the Entertainer, Chace Crawford, Chadwick Boseman, Charlie Day, Chris Hemsworth, Chris Martin, Christopher Mintz-Plasse, Dan Fogler, Dan Stevens, Daniel Dae Kim, Danielle Panabaker, Dave Bautista, David Schwimmer, Denis Leary, Derek Mears, Diego Luna, Donald Glover, Donnie Yen, Doutzen Kroes, Dove Cameron, Dr. Dre, Drake Bell, Elle Fanning, Ernie Hudson, Fergie, Forest Whitaker, Francia Raisa, Freddie Highmore, Gillian Jacobs, Gina Carano, Ginnifer Goodwin, Gordon Ramsay, Guy Pearce, Gwendoline Christie, Hailee Steinfeld, Howie Mandel, Hugh Jackman, Hugh Laurie, J. K. Simmons, Jack Black, Jared Leto, Jennifer Carpenter, Kesha, Kris Jenner, Kristen Bell, Lorde, Matt Smith, Marilyn Monroe, Charlie Chaplin, Albert Einstein, Abraham Lincoln, John F. Kennedy, Lucille Ball, A.R. Rahman, Aamir Khan, Ajay Devgn, Akshay Kumar, Alain Delon, Alan Alda, Alan Cumming, Amitabh Bachchan, Ang Lee, Ansel Elgort, Anthony Anderson, Anthony Mackie, Armie Hammer, Asa Butterfield, B.J. Novak, Barbara Eden, Betty White, Bill Nighy, Bill Pullman, Blake Shelton, Bonnie Wright, Brad Paisley, Brendan Gleeson, Brian Cox, Bruno Ganz, Burt Reynolds, Carrie Fisher, Charles Dance, Chiwetel Ejiofor, Chris Pine, Christina Hendricks, Christina Ricci, Cyndi Lauper, Dakota Fanning, Damian Lewis, Dan Aykroyd, Daniel Craig, David Oyelowo, David Tennant, Diane Keaton, Diane Kruger, Dick Van Dyke, Domhnall Gleeson, Dominic Cooper, Donald Sutherland, Drew Carey, Eartha Kitt, Eddie Izzard, Edward Asner, Eli Roth, Elisabeth Moss, Ellen Burstyn, Emile Hirsch, Ezra Miller, Felicity Jones, Fiona Shaw, Florence Henderson, Freida Pinto, Geena Davis, Gemma Arterton, Geri Halliwell, Glenn Close, Gloria Steinem, Greta Gerwig, Gugu Mbatha-Raw, Hans Zimmer, Harry Connick Jr., Harvey Keitel, Helena Bonham Carter, Henry Cavill, Hilary Swank, Hugh Bonneville, Idina Menzel, Imelda Staunton, Ingrid Bergman, Irrfan Khan, Isla Fisher, Iwan Rheon, Jack Lemmon, Janet Jackson, Jason Bateman, Jason Segel, Jennifer Coolidge, Johnny Galecki, Jon Favreau, Joseph Gordon-Levitt, Josh Brolin, Josh Gad, Josh Groban, Julia Louis-Dreyfus, Kristen Stewart, Kristen Wiig, Rooney Mara, Caitriona Balfe, J.J. Abrams, Zoe Saldana, SpongeBob SquarePants, Patrick Star, Squidward Tentacles, Homer Simpson, Bart Simpson, Peter Griffin, Stewie Griffin, Eric Cartman, Rick Sanchez, Bugs Bunny, Mickey Mouse, Donald Duck, Shrek, Donkey (Shrek), Elsa (Frozen), Woody (Toy Story), Buzz Lightyear, Scooby-Doo, Shaggy Rogers, Bender (Futurama), Optimus Prime, Batman (Animated), The Joker (Animated), Darth Vader, Yoda, Gollum Smeagol, Gandalf, Winnie the Pooh, Kermit the Frog, Elmo, SpiderMan (Tom Holland ver.), Mario, Luigi, Sonic the Hedgehog, Naruto Uzumaki, Goku, Vegeta, Light Yagami, Luffy (One Piece), Edward Elric, Eren Jaeger, Levi Ackerman, Tanjiro Kamado, All Might, GLaDOS, Master Chief, Kratos, Arthur Morgan, Geralt of Rivia, Dwayne 'The Rock' Johnson, LeBron James, Shaquille O'Neal, Conor McGregor, Mike Tyson, Kobe Bryant, Floyd Mayweather, Cristiano Ronaldo, Lionel Messi, Serena Williams, Tom Brady, Stephen Curry, John Cena, Hulk Hogan, Stone Cold Steve Austin, The Undertaker, Nate Diaz, Charles Barkley, Shannon Sharpe, Drake, Rihanna, Eminem, Snoop Dogg, Jay-Z, Ed Sheeran, Billie Eilish, Ariana Grande, Adele, Post Malone, Travis Scott, Nicki Minaj, Cardi B, Doja Cat, Bad Bunny, Justin Bieber, Sabrina Carpenter, Chappell Roan, Dua Lipa, The Weeknd, Miley Cyrus, Lady Gaga, Kendrick Lamar, Ozzy Osbourne, Freddie Mercury, Elvis Presley, Bob Marley, Frank Sinatra, MrBeast, PewDiePie, Kai Cenat, IShowSpeed, Markiplier, Jacksepticeye, KSI, Logan Paul, Jake Paul, Dream (Minecraft), Corpse Husband, xQc, Pokimane, Valkyrae, Ninja, Joe Scott, Linus (LTT), Ryan Reynolds, Tom Hanks, Robert Downey Jr., Will Smith, Denzel Washington, Leonardo DiCaprio, Brad Pitt, Keanu Reeves, Nicolas Cage, Al Pacino, Robert De Niro, Arnold Schwarzenegger, Sylvester Stallone, Vin Diesel, Jason Statham, Tom Cruise, Johnny Depp, Scarlett Johansson, Angelina Jolie, Jennifer Aniston, Emma Watson, Margot Robbie, Sydney Sweeney, Zendaya, Timothee Chalamet, Pedro Pascal, Oscar Isaac, Benedict Cumberbatch, Ian McKellen, Patrick Stewart, Christopher Walken, Matthew McConaughey, Harrison Ford, Mark Wahlberg, Owen Wilson, Seth Rogen, Kevin Hart, Adam Sandler, Jim Carrey, Eddie Murphy, Robin Williams, Will Ferrell, Melissa McCarthy, Awkwafina, Jason Momoa, Idris Elba, Tom Hardy, Michael B. Jordan, Austin Butler, Glen Powell, Paul Giamatti, Bryan Cranston, Bob Odenkirk, Vladimir Putin, Queen Elizabeth II, Winston Churchill, Martin Luther King Jr., Kamala Harris, Bernie Sanders, Alexandria Ocasio-Cortez, Narendra Modi, Oprah Winfrey, Ellen DeGeneres, Dr. Phil, Steve Harvey, Trevor Noah, John Oliver, James Corden, Ryan Seacrest, Howard Stern, Conan O'Brien, Seth Meyers, Bill Nye, Neil deGrasse Tyson, Guy Fieri, Dave Chappelle, Chris Rock, Jerry Seinfeld, Ali Wong, John Mulaney, Hasan Minhaj, Nikki Glaser, Matt Rife, Gabriel Iglesias, Bo Burnham, Jeff Bezos, Bill Gates, Steve Jobs, Tim Cook, Sam Altman, Jensen Huang, Gilbert Gottfried, James May, Jeremy Clarkson, Richard Hammond, Bob Ross, Anthony Bourdain, David Goggins, Jordan Peterson, Joe Pesci, Danny DeVito, Seth MacFarlane, Patrick Warburton, Keith David, Mark Hamill, Liam Neeson, Antonio Banderas, Sofia Vergara, Penelope Cruz, Gal Gadot, Cate Blanchett, Viola Davis, Meryl Streep, Sandra Bullock, Reese Witherspoon, Salma Hayek, Lupita Nyong'o, Florence Pugh, Jenna Ortega, Ana de Armas, Jacob Elordi, Barry White, Dolly Parton, Willie Nelson, Lil Wayne, 50 Cent, Ice Cube, Tupac Shakur, Notorious B.I.G., Bob Dylan, David Bowie, Michael Jackson, Whitney Houston, Amy Winehouse, SZA, Tyler, The Creator, Thanos, Tony Stark, Captain Jack Sparrow, Walter White, Tommy Shelby, Michael Scott, Dwight Schrute, Bowser, Usain Bolt, Tyson Fury, Dana White, Pat McAfee, Giannis Antetokounmpo, Lex Fridman, Ben Shapiro, Tucker Carlson, Martha Stewart, Gordon Lightfoot, Lizzo, Megan Thee Stallion, Ice Spice, 21 Savage, Metro Boomin, Jack Harlow, Peso Pluma, BTS Jungkook, Quentin Tarantino, Werner Herzog, Anderson Cooper, Rachel Maddow, Mahatma Gandhi, Muhammad Ali, Princess Diana, Nelson Mandela, Steve Irwin, Morty Smith, Andrew Huberman, Willem Dafoe, Mike Rowe, Terminator, Deadpool, Plankton, Mr. Krabs, Picard, Ludwig, Emma Chamberlain, Casey Neistat, Marques Brownlee, Technoblade, Shroud, Charli D'Amelio, Khaby Lame, Adin Ross, Trainwreckstv, Hasan Piker, Joey Diaz, Theo Von, Andrew Schulz, Bert Kreischer, Tom Segura, Shane Gillis, Joe List, Bobby Lee, Chris Williamson, Destiny, Ethan Klein, Hila Klein, Olivia Rodrigo, Gracie Abrams, Benson Boone, Noah Kahan, Zach Bryan, Morgan Wallen, Luke Combs, Chris Stapleton, Rauw Alejandro, Karol G, Feid, J Balvin, Central Cee, Dave (rapper), Stormzy, Gunna, Future, Lil Baby, Playboi Carti, Don Toliver, Lana Del Rey, Halsey, Charli XCX, Tate McRae, Conan Gray, Troye Sivan, Harry Styles, Niall Horan, Shawn Mendes, John Legend, Sam Smith, Roman Reigns, Cody Rhodes, Seth Rollins, CM Punk, Randy Orton, Triple H, Ric Flair, Khabib Nurmagomedov, Jon Jones, Israel Adesanya, Alex Pereira, Jorge Masvidal, Patrick Mahomes, Travis Kelce, Aaron Rodgers, Kyrie Irving, Kevin Durant, Luka Doncic, Nikola Jokic, Simone Biles, Novak Djokovic, Rafael Nadal, Roger Federer, Max Verstappen, Lewis Hamilton, Mark Rober, Naval Ravikant, Peter Attia, Gary Vaynerchuk, Alex Hormozi, Grant Cardone, JD Vance, Nancy Pelosi, Ron DeSantis, Volodymyr Zelenskyy, Xi Jinping, Justin Trudeau, Emmanuel Macron, Boris Johnson, Rishi Sunak, Keir Starmer, Tom Holland, Anya Taylor-Joy, Barry Keoghan, Paul Mescal, Rachel Zegler, Millie Bobby Brown, Finn Wolfhard, Noah Schnapp, Ke Huy Quan, Ayo Edebiri, Jeremy Allen White, Cloud Strife, Sephiroth, Solid Snake, Nathan Drake, Joel Miller, Ellie Williams, Duke Nukem, Lara Croft, Link (Zelda), Samus Aran, Kirby, Pikachu, Ash Ketchum, Agent 47, Vergil (DMC), Dante (DMC), Ryu (Street Fighter), Chun-Li, Scorpion (Mortal Kombat), Sub-Zero, Steve (Minecraft), Herobrine, Cortana, Aloy, Ezio Auditore, Altair, BJ Blazkowicz, Doom Slayer, Handsome Jack, Tracer (Overwatch), Genji (Overwatch), Reaper (Overwatch), Jinx (Arcane), Vi (Arcane), Nezuko Kamado, Zenitsu Agatsuma, Gojo Satoru, Itadori Yuji, Denji (Chainsaw Man), Power (Chainsaw Man), Zoro (One Piece), Nami (One Piece), Sasuke Uchiha, Kakashi Hatake, Itachi Uchiha, Spike Spiegel, L (Death Note), Saitama (One Punch Man), Deku (My Hero Academia), Bakugo Katsuki, Captain America (MCU), Thor (MCU), Loki (MCU), Wolverine, Groot, Rocket Raccoon, Venom, The Mandalorian, Baby Yoda (Grogu), Tony Montana (Scarface), John Wick, James Bond (Craig era), Ferris Bueller, Tyler Durden, The Dude (Big Lebowski), Forrest Gump, Willy Wonka, Freddy Krueger, Jason Voorhees, Michael Myers, Pennywise, Hannibal Lecter, Family Guy Quagmire, Lois Griffin, Marge Simpson, Lisa Simpson, Ned Flanders, Krusty the Clown, Mr. Burns, Timmy Turner, Dexter (Dexter's Lab), Johnny Bravo, Courage the Cowardly Dog, Finn the Human, Jake the Dog, Rick Grimes, Negan (Walking Dead), Jesse Pinkman, Saul Goodman, Tony Soprano, Jim Halpert, Ron Swanson, Barney Stinson, Sheldon Cooper, Jon Snow, Tyrion Lannister, Daenerys Targaryen, Arya Stark, Homelander, Billy Butcher, Airrack, Zach King, Dude Perfect Tyler, Colleen Ballinger, David Dobrik, James Charles, NikkieTutorials, Jeffree Star, Danny Duncan, FaZe Rug, SSSniperWolf, Vegetta777, Rubius, Ibai Llanos, Fuerza Regida, Grupo Frontera, Bizarrap, Anitta, Rosalia, Maluma, Ozuna, Manuel Turizo, Camilo, Sam Fender, Hozier, Fred again, GloRilla, Sexyy Red, Flo Milli, Latto, Coi Leray, Ja Morant, Anthony Edwards, Victor Wembanyama, Caitlin Clark, Angel Reese, Sha'Carri Richardson, Erling Haaland, Kylian Mbappe, Jude Bellingham, Neymar, Vinicius Junior, Shohei Ohtani, Connor McDavid, Sidney Crosby, Steven Crowder, Candace Owens, Charlie Kirk, Matt Walsh, Tim Dillon, Whitney Cummings, Sam Harris, Malcolm Gladwell, Simon Sinek, Mel Robbins, Jocko Willink, Emma Stone, Ryan Gosling, Bradley Cooper, Christian Bale, Joaquin Phoenix, Mahershala Ali, Jamie Foxx, Regina King, Taraji P. Henson, Octavia Spencer, John Boyega, Daisy Ridley, Jonathan Majors, Simu Liu, Constance Wu, Henry Golding, Dev Patel, Riz Ahmed, Mindy Kaling, Aubrey Plaza, Aziz Ansari, Randall Park, Rainbow Dash, Twilight Sparkle, Gumball Watterson, Rigby (Regular Show), Mordecai (Regular Show), Steven Universe, Garnet (Steven Universe), Aang (Avatar), Zuko (Avatar), Aretha Franklin, Stevie Wonder, Ray Charles, Johnny Cash, Jimi Hendrix, Janis Joplin, Kurt Cobain, Freddie Prinze, Selena Gomez, Justin Timberlake, Usher, Chris Brown, A$AP Rocky, RM (BTS), V (BTS), Jimin, Lisa (Blackpink), Jennie (Blackpink), Rose (Blackpink), Calvin Harris, David Guetta, Marshmello, Skrillex, Diplo, Zedd, Jimmy Kimmel, Graham Norton, Bill Maher, Sean Hannity, Wolf Blitzer, Lester Holt, Satya Nadella, Sundar Pichai, Warren Buffett, Sheryl Sandberg, Marc Andreessen, Peter Thiel, Stephen Hawking, Carl Sagan, Richard Feynman, Jane Goodall, Franklin D. Roosevelt, Ronald Reagan, Margaret Thatcher, King Charles III, Prince Harry, Prince William, Stephen King, J.K. Rowling, George R.R. Martin, Neil Gaiman, Malcolm X, Jamie Oliver, Tiger Woods, Venus Williams, David Beckham, Michael Phelps, Peyton Manning, Virat Kohli, Sachin Tendulkar, MS Dhoni, The Rock, Rey Mysterio, Bray Wyatt, Kevin Owens, H3H3, Philip DeFranco, Jenna Marbles, Shane Dawson, Liza Koshy, Lilly Singh, Rhett and Link, Danny Gonzalez, Drew Gooden, Cody Ko, Kurtis Conner, Trisha Paytas, Tana Mongeau, Jaclyn Hill, Bretman Rock, Safiya Nygaard, Shah Rukh Khan, Salman Khan, Priyanka Chopra, Deepika Padukone, Jennifer Lawrence, Chris Evans, Daniel Radcliffe, Rupert Grint, Anthony Hopkins, Jack Nicholson, Clint Eastwood, Obi-Wan Kenobi, Luke Skywalker, Han Solo, Princess Leia, Emperor Palpatine, Kylo Ren, C-3PO, Frodo Baggins, Aragorn, Legolas, Samwise Gamgee, Harry Potter, Hermione Granger, Ron Weasley, Albus Dumbledore, Severus Snape, Voldemort, Hagrid, Belle (Beauty and the Beast), Ariel (Little Mermaid), Cinderella, Snow White, Mulan, Rapunzel (Tangled), Fiona (Shrek), Ross Geller, Chandler Bing, Joey Tribbiani, Monica Geller, Rachel Green, Phoebe Buffay, George Costanza, Kramer (Seinfeld), Elaine Benes, Carlton Banks, Hinata Hyuga, Ichigo Kurosaki, Yoshi, Spyro, Ryu Hayabusa, Leon Kennedy, Chris Redfield, Jill Valentine, Ada Wong, Big Boss (MGS), Raiden (MGS), Commander Shepard, Garrus Vakarian, V (Cyberpunk), Johnny Silverhand, Valorant Jett, League of Legends Ahri, Yasuo (LoL), Superman, Wonder Woman, Harley Quinn, Black Panther, Doctor Strange, Hulk, Black Widow, Nick Fury, Ant-Man, Don Draper, Walter Bishop (Fringe), Frank Underwood, Dexter Morgan, Sherlock Holmes, Dr. House, Michael Corleone, Vito Corleone, Daffy Duck, Porky Pig, Tweety Bird, Sylvester the Cat, Fred Flintstone, Barney Rubble, George Jetson, Popeye, Skip Bayless, Stephen A Smith, Colin Cowherd, Ricky Gervais, Bill Burr, Sebastian Maniscalco, Trevor Wallace, Iliza Shlesinger, Bruce Springsteen, Eric Clapton, Mick Jagger, Paul McCartney, John Lennon, Elton John, Billy Joel, Fleetwood Mac Stevie Nicks, Sia, Demi Lovato, Camila Cabello, Enrique Iglesias, Ricky Martin, Faze Clan Banks, Tfue, Timthetatman, DrLupo, CouRage, Sykkuno, Disguised Toast, Fuslie, Jerma985, Vinesauce Vinny, Northernlion, Moistcr1tikal, Asmongold, Mizkif, Esfand, Quin69, Summit1g, Sodapoppin, Forsen, Pestily, Joe Budden, Charlamagne Tha God, Angela Yee, Big Boy, Zane Lowe, Rich Eisen, Bill Simmons, Dan Le Batard, Slash (musician), James Hetfield, Dave Grohl, Chris Cornell, Axl Rose, Robert Plant, Jon Bon Jovi, Chester Bennington, Corey Taylor, Fernando Alonso, Charles Leclerc, Daniel Ricciardo, Valentino Rossi, Marc Marquez, Travis Pastrana, Tony Hawk, Rohit Sharma, Babar Azam, Ben Stokes, Joe Root, Anthony Joshua, Canelo Alvarez, Ronda Rousey, Amanda Nunes, Bruce Willis, Chris Pratt, Charlize Theron, Nicole Kidman, Amy Adams, Jamie Lee Curtis, Gary Oldman, Mark Ruffalo, Jeremy Renner, Chris Tucker, Jonah Hill, Ranveer Singh, Alia Bhatt, Hrithik Roshan, Lee Min Ho, Song Joong Ki, Park Seo Joon, Kylie Jenner, Khloe Kardashian, Paris Hilton, Neil Armstrong, Buzz Aldrin, Yuri Gagarin, Killua Zoldyck, Gon Freecss, Meliodas, Natsu Dragneel, Lucy Heartfilia, Erza Scarlet, Inuyasha, Kagome Higurashi, Yusuke Urameshi, Vash the Stampede, Alucard (Hellsing), Guts (Berserk), Griffith (Berserk), Reigen Arataka, Mob (Mob Psycho 100), Anya Forger, Loid Forger, Yor Forger, Pit (Kid Icarus), Marth (Fire Emblem), Ike (Fire Emblem), Sora (Kingdom Hearts), Riku (Kingdom Hearts), Sam Porter Bridges, Big Smoke (GTA), CJ (GTA San Andreas), Niko Bellic, Trevor Philips, Michael De Santa, Franklin Clinton, Marcus Fenix, Isaac Clarke, Ellie (Borderlands), Lilith (Borderlands), Claptrap, Widowmaker (Overwatch), Mercy (Overwatch), Reinhardt (Overwatch), Phineas Flynn, Doofenshmirtz, Blossom (PPG), Bubbles (PPG), Buttercup (PPG), Mojo Jojo, Ben Tennyson, Danny Phantom, Invader Zim, GIR (Invader Zim), Sandy Cheeks, Ellen Ripley, Sarah Connor, Indiana Jones, Austin Powers, Inspector Clouseau, Gru (Despicable Me), Alvin (Chipmunks), Megatron, Chucky, Ghostface (Scream), The Grinch, Jack Skellington, Jayson Tatum, Devin Booker, Damian Lillard, James Harden, Russell Westbrook, Joel Embiid, Justin Jefferson, Josh Allen, Joe Burrow, Micah Parsons, Myles Garrett, CeeDee Lamb, Burna Boy, Wizkid, Davido, Tems, Magnus Carlsen, Hikaru Nakamura, MrBallen, Ned Fulmer, Zach Kornfeld, Eugene Lee Yang, Alton Brown, Andrew Rea, Steve-O, Johnny Knoxville, Bam Margera, Russell Brand, Piers Morgan, Douglas Murray, Dave Rubin, Michael Knowles, Vivek Ramaswamy, Marjorie Taylor Greene, Mitch McConnell, Mike Pence, Hillary Clinton, Bill Clinton, George W Bush, George H W Bush, Jimmy Carter, Angela Merkel, Tara Strong, Tom Kenny, Nolan North, Troy Baker, Jennifer Hale, Steve Blum, Cersei Lannister, Jaime Lannister, Sansa Stark, Bran Stark, The Hound, Melisandre, Varys, Petyr Baelish, Ned Stark, Gus Fring, Mike Ehrmantraut, Hank Schrader, Skyler White, Joy (Inside Out), Sadness (Inside Out), Anger (Inside Out), Mirabel (Encanto), Bruno (Encanto), Remy (Ratatouille), Lightning McQueen, Mater (Cars), Wreck-It Ralph, Vanellope von Schweetz, PointCrow, Ranboo, Wilbur Soot, Tubbo, GeorgeNotFound, Sapnap, Quackity, Karl Jacobs, Norman Bates, Anton Chigurh, Patrick Bateman, Travis Bickle, Rocky Balboa, Rambo, Maximus (Gladiator), William Wallace, King Leonidas, Leslie Knope, Tom Haverford, April Ludgate, Andy Dwyer, Kevin Malone, Creed Bratton, Stanley Hudson, Toby Flenderson, Angela Martin, Summer Smith, Beth Smith, Jerry Smith, BoJack Horseman, Todd Chavez, Princess Carolyn, Diane Nguyen, Big Mouth Nick, Maury (Big Mouth), Archer (Sterling), Lana Kane, Malory Archer, Fry (Futurama), Leela (Futurama), Professor Farnsworth, Zapp Brannigan, Beavis, Butt-Head, King of the Hill Hank Hill, Bobby Hill, Dale Gribble, Stan Marsh, Kyle Broflovski, Randy Marsh, Towelie, Butters Stotch, Mr. Garrison, Chef (South Park), Ike Broflovski, Wendy Testaburger, PC Principal, Jimmy Valmer, Michelle Obama, Al Gore, Desmond Tutu, Anthony Fauci, Greta Thunberg, Malala Yousafzai, Grimes, Jafar (Aladdin), Ursula (Little Mermaid), Iago (Aladdin parrot), Zazu (Lion King), Yzma (Emperor's New Groove), Kronk (Emperor's New Groove), Discord (My Little Pony), Skeletor (He-Man), Captain Hook (Peter Pan), Sebastian (Little Mermaid), HAL 9000, Mushu (Mulan), Lumiere (Beauty and the Beast), Cogsworth (Beauty and the Beast), Scuttle (Little Mermaid), Rafiki (Lion King), Kristoff (Frozen), Hans (Frozen), Merlin (Sword in the Stone)"
      • changedInput schema / properties / style / properties / voice_name / enum
        Previous value: -[
        -  "Elon Musk",
        -  "Mark Zuckerberg",
        -  "Joe Rogan",
        -  "Barack Obama",
        -  "Morgan Freeman",
        -  "Kanye West",
        -  "Donald Trump",
        -  "Joe Biden",
        -  "Kim Kardashian",
        -  "Taylor Swift",
        -  "James Earl Jones",
        -  "Samuel L. Jackson",
        -  "Jeff Goldblum",
        -  "David Attenborough",
        -  "Sean Connery",
        -  "Cillian Murphy",
        -  "Anne Hathaway",
        -  "Julia Roberts",
        -  "Natalie Portman",
        -  "Steve Carell",
        -  "Amy Poehler",
        -  "Stephen Colbert",
        -  "Jimmy Fallon",
        -  "David Letterman",
        -  "Alex Trebek",
        -  "Katy Perry",
        -  "Prince",
        -  "Kevin Bacon",
        -  "Tom Hiddleston",
        -  "Adam Driver",
        -  "Alan Rickman",
        -  "Alexz Johnson",
        -  "Ana Gasteyer",
        -  "Andrew Rannells",
        -  "Arden Cho",
        -  "Bear Grylls",
        -  "Ben McKenzie",
        -  "Ben Stiller",
        -  "Ben Whishaw",
        -  "Billie Joe Armstrong",
        -  "Bingbing Li",
        -  "Booboo Stewart",
        -  "Bradley Steven Perry",
        -  "Bruno Mars",
        -  "Caity Lotz",
        -  "Cameron Boyce",
        -  "Candice Accola",
        -  "Carrie Underwood",
        -  "Casey Affleck",
        -  "Caterina Scorsone",
        -  "Cedric the Entertainer",
        -  "Chace Crawford",
        -  "Chadwick Boseman",
        -  "Charlie Day",
        -  "Chris Hemsworth",
        -  "Chris Martin",
        -  "Christopher Mintz-Plasse",
        -  "Dan Fogler",
        -  "Dan Stevens",
        -  "Daniel Dae Kim",
        -  "Danielle Panabaker",
        -  "Dave Bautista",
        -  "David Schwimmer",
        -  "Denis Leary",
        -  "Derek Mears",
        -  "Diego Luna",
        -  "Donald Glover",
        -  "Donnie Yen",
        -  "Doutzen Kroes",
        -  "Dove Cameron",
        -  "Dr. Dre",
        -  "Drake Bell",
        -  "Elle Fanning",
        -  "Ernie Hudson",
        -  "Fergie",
        -  "Forest Whitaker",
        -  "Francia Raisa",
        -  "Freddie Highmore",
        -  "Gillian Jacobs",
        -  "Gina Carano",
        -  "Ginnifer Goodwin",
        -  "Gordon Ramsay",
        -  "Guy Pearce",
        -  "Gwendoline Christie",
        -  "Hailee Steinfeld",
        -  "Howie Mandel",
        -  "Hugh Jackman",
        -  "Hugh Laurie",
        -  "J. K. Simmons",
        -  "Jack Black",
        -  "Jared Leto",
        -  "Jennifer Carpenter",
        -  "Kesha",
        -  "Kris Jenner",
        -  "Kristen Bell",
        -  "Lorde",
        -  "Matt Smith",
        -  "Marilyn Monroe",
        -  "Charlie Chaplin",
        -  "Albert Einstein",
        -  "Abraham Lincoln",
        -  "John F. Kennedy",
        -  "Lucille Ball",
        -  "A.R. Rahman",
        -  "Aamir Khan",
        -  "Ajay Devgn",
        -  "Akshay Kumar",
        -  "Alain Delon",
        -  "Alan Alda",
        -  "Alan Cumming",
        -  "Amitabh Bachchan",
        -  "Ang Lee",
        -  "Ansel Elgort",
        -  "Anthony Anderson",
        -  "Anthony Mackie",
        -  "Armie Hammer",
        -  "Asa Butterfield",
        -  "B.J. Novak",
        -  "Barbara Eden",
        -  "Betty White",
        -  "Bill Nighy",
        -  "Bill Pullman",
        -  "Blake Shelton",
        -  "Bonnie Wright",
        -  "Brad Paisley",
        -  "Brendan Gleeson",
        -  "Brian Cox",
        -  "Bruno Ganz",
        -  "Burt Reynolds",
        -  "Carrie Fisher",
        -  "Charles Dance",
        -  "Chiwetel Ejiofor",
        -  "Chris Pine",
        -  "Christina Hendricks",
        -  "Christina Ricci",
        -  "Cyndi Lauper",
        -  "Dakota Fanning",
        -  "Damian Lewis",
        -  "Dan Aykroyd",
        -  "Daniel Craig",
        -  "David Oyelowo",
        -  "David Tennant",
        -  "Diane Keaton",
        -  "Diane Kruger",
        -  "Dick Van Dyke",
        -  "Domhnall Gleeson",
        -  "Dominic Cooper",
        -  "Donald Sutherland",
        -  "Drew Carey",
        -  "Eartha Kitt",
        -  "Eddie Izzard",
        -  "Edward Asner",
        -  "Eli Roth",
        -  "Elisabeth Moss",
        -  "Ellen Burstyn",
        -  "Emile Hirsch",
        -  "Ezra Miller",
        -  "Felicity Jones",
        -  "Fiona Shaw",
        -  "Florence Henderson",
        -  "Freida Pinto",
        -  "Geena Davis",
        -  "Gemma Arterton",
        -  "Geri Halliwell",
        -  "Glenn Close",
        -  "Gloria Steinem",
        -  "Greta Gerwig",
        -  "Gugu Mbatha-Raw",
        -  "Hans Zimmer",
        -  "Harry Connick Jr.",
        -  "Harvey Keitel",
        -  "Helena Bonham Carter",
        -  "Henry Cavill",
        -  "Hilary Swank",
        -  "Hugh Bonneville",
        -  "Idina Menzel",
        -  "Imelda Staunton",
        -  "Ingrid Bergman",
        -  "Irrfan Khan",
        -  "Isla Fisher",
        -  "Iwan Rheon",
        -  "Jack Lemmon",
        -  "Janet Jackson",
        -  "Jason Bateman",
        -  "Jason Segel",
        -  "Jennifer Coolidge",
        -  "Johnny Galecki",
        -  "Jon Favreau",
        -  "Joseph Gordon-Levitt",
        -  "Josh Brolin",
        -  "Josh Gad",
        -  "Josh Groban",
        -  "Julia Louis-Dreyfus",
        -  "Kristen Stewart",
        -  "Kristen Wiig",
        -  "Rooney Mara",
        -  "Caitriona Balfe",
        -  "J.J. Abrams",
        -  "Zoe Saldana",
        -  "SpongeBob SquarePants",
        -  "Patrick Star",
        -  "Squidward Tentacles",
        -  "Homer Simpson",
        -  "Bart Simpson",
        -  "Peter Griffin",
        -  "Stewie Griffin",
        -  "Eric Cartman",
        -  "Rick Sanchez",
        -  "Bugs Bunny",
        -  "Mickey Mouse",
        -  "Donald Duck",
        -  "Shrek",
        -  "Donkey (Shrek)",
        -  "Elsa (Frozen)",
        -  "Woody (Toy Story)",
        -  "Buzz Lightyear",
        -  "Scooby-Doo",
        -  "Shaggy Rogers",
        -  "Bender (Futurama)",
        -  "Optimus Prime",
        -  "Batman (Animated)",
        -  "The Joker (Animated)",
        -  "Darth Vader",
        -  "Yoda",
        -  "Gollum Smeagol",
        -  "Gandalf",
        -  "Winnie the Pooh",
        -  "Kermit the Frog",
        -  "Elmo",
        -  "SpiderMan (Tom Holland ver.)",
        -  "Mario",
        -  "Luigi",
        -  "Sonic the Hedgehog",
        -  "Naruto Uzumaki",
        -  "Goku",
        -  "Vegeta",
        -  "Light Yagami",
        -  "Luffy (One Piece)",
        -  "Edward Elric",
        -  "Eren Jaeger",
        -  "Levi Ackerman",
        -  "Tanjiro Kamado",
        -  "All Might",
        -  "GLaDOS",
        -  "Master Chief",
        -  "Kratos",
        -  "Arthur Morgan",
        -  "Geralt of Rivia",
        -  "Dwayne 'The Rock' Johnson",
        -  "LeBron James",
        -  "Shaquille O'Neal",
        -  "Conor McGregor",
        -  "Mike Tyson",
        -  "Kobe Bryant",
        -  "Floyd Mayweather",
        -  "Cristiano Ronaldo",
        -  "Lionel Messi",
        -  "Serena Williams",
        -  "Tom Brady",
        -  "Stephen Curry",
        -  "John Cena",
        -  "Hulk Hogan",
        -  "Stone Cold Steve Austin",
        -  "The Undertaker",
        -  "Nate Diaz",
        -  "Charles Barkley",
        -  "Shannon Sharpe",
        -  "Drake",
        -  "Rihanna",
        -  "Eminem",
        -  "Snoop Dogg",
        -  "Jay-Z",
        -  "Ed Sheeran",
        -  "Billie Eilish",
        -  "Ariana Grande",
        -  "Adele",
        -  "Post Malone",
        -  "Travis Scott",
        -  "Nicki Minaj",
        -  "Cardi B",
        -  "Doja Cat",
        -  "Bad Bunny",
        -  "Justin Bieber",
        -  "Sabrina Carpenter",
        -  "Chappell Roan",
        -  "Dua Lipa",
        -  "The Weeknd",
        -  "Miley Cyrus",
        -  "Lady Gaga",
        -  "Kendrick Lamar",
        -  "Ozzy Osbourne",
        -  "Freddie Mercury",
        -  "Elvis Presley",
        -  "Bob Marley",
        -  "Frank Sinatra",
        -  "MrBeast",
        -  "PewDiePie",
        -  "Kai Cenat",
        -  "IShowSpeed",
        -  "Markiplier",
        -  "Jacksepticeye",
        -  "KSI",
        -  "Logan Paul",
        -  "Jake Paul",
        -  "Dream (Minecraft)",
        -  "Corpse Husband",
        -  "xQc",
        -  "Pokimane",
        -  "Valkyrae",
        -  "Ninja",
        -  "Joe Scott",
        -  "Linus (LTT)",
        -  "Ryan Reynolds",
        -  "Tom Hanks",
        -  "Robert Downey Jr.",
        -  "Will Smith",
        -  "Denzel Washington",
        -  "Leonardo DiCaprio",
        -  "Brad Pitt",
        -  "Keanu Reeves",
        -  "Nicolas Cage",
        -  "Al Pacino",
        -  "Robert De Niro",
        -  "Arnold Schwarzenegger",
        -  "Sylvester Stallone",
        -  "Vin Diesel",
        -  "Jason Statham",
        -  "Tom Cruise",
        -  "Johnny Depp",
        -  "Scarlett Johansson",
        -  "Angelina Jolie",
        -  "Jennifer Aniston",
        -  "Emma Watson",
        -  "Margot Robbie",
        -  "Sydney Sweeney",
        -  "Zendaya",
        -  "Timothee Chalamet",
        -  "Pedro Pascal",
        -  "Oscar Isaac",
        -  "Benedict Cumberbatch",
        -  "Ian McKellen",
        -  "Patrick Stewart",
        -  "Christopher Walken",
        -  "Matthew McConaughey",
        -  "Harrison Ford",
        -  "Mark Wahlberg",
        -  "Owen Wilson",
        -  "Seth Rogen",
        -  "Kevin Hart",
        -  "Adam Sandler",
        -  "Jim Carrey",
        -  "Eddie Murphy",
        -  "Robin Williams",
        -  "Will Ferrell",
        -  "Melissa McCarthy",
        -  "Awkwafina",
        -  "Jason Momoa",
        -  "Idris Elba",
        -  "Tom Hardy",
        -  "Michael B. Jordan",
        -  "Austin Butler",
        -  "Glen Powell",
        -  "Paul Giamatti",
        -  "Bryan Cranston",
        -  "Bob Odenkirk",
        -  "Vladimir Putin",
        -  "Queen Elizabeth II",
        -  "Winston Churchill",
        -  "Martin Luther King Jr.",
        -  "Kamala Harris",
        -  "Bernie Sanders",
        -  "Alexandria Ocasio-Cortez",
        -  "Narendra Modi",
        -  "Oprah Winfrey",
        -  "Ellen DeGeneres",
        -  "Dr. Phil",
        -  "Steve Harvey",
        -  "Trevor Noah",
        -  "John Oliver",
        -  "James Corden",
        -  "Ryan Seacrest",
        -  "Howard Stern",
        -  "Conan O'Brien",
        -  "Seth Meyers",
        -  "Bill Nye",
        -  "Neil deGrasse Tyson",
        -  "Guy Fieri",
        -  "Dave Chappelle",
        -  "Chris Rock",
        -  "Jerry Seinfeld",
        -  "Ali Wong",
        -  "John Mulaney",
        -  "Hasan Minhaj",
        -  "Nikki Glaser",
        -  "Matt Rife",
        -  "Gabriel Iglesias",
        -  "Bo Burnham",
        -  "Jeff Bezos",
        -  "Bill Gates",
        -  "Steve Jobs",
        -  "Tim Cook",
        -  "Sam Altman",
        -  "Jensen Huang",
        -  "Gilbert Gottfried",
        -  "James May",
        -  "Jeremy Clarkson",
        -  "Richard Hammond",
        -  "Bob Ross",
        -  "Anthony Bourdain",
        -  "David Goggins",
        -  "Jordan Peterson",
        -  "Joe Pesci",
        -  "Danny DeVito",
        -  "Seth MacFarlane",
        -  "Patrick Warburton",
        -  "Keith David",
        -  "Mark Hamill",
        -  "Liam Neeson",
        -  "Antonio Banderas",
        -  "Sofia Vergara",
        -  "Penelope Cruz",
        -  "Gal Gadot",
        -  "Cate Blanchett",
        -  "Viola Davis",
        -  "Meryl Streep",
        -  "Sandra Bullock",
        -  "Reese Witherspoon",
        -  "Salma Hayek",
        -  "Lupita Nyong'o",
        -  "Florence Pugh",
        -  "Jenna Ortega",
        -  "Ana de Armas",
        -  "Jacob Elordi",
        -  "Barry White",
        -  "Dolly Parton",
        -  "Willie Nelson",
        -  "Lil Wayne",
        -  "50 Cent",
        -  "Ice Cube",
        -  "Tupac Shakur",
        -  "Notorious B.I.G.",
        -  "Bob Dylan",
        -  "David Bowie",
        -  "Michael Jackson",
        -  "Whitney Houston",
        -  "Amy Winehouse",
        -  "SZA",
        -  "Tyler, The Creator",
        -  "Thanos",
        -  "Tony Stark",
        -  "Captain Jack Sparrow",
        -  "Walter White",
        -  "Tommy Shelby",
        -  "Michael Scott",
        -  "Dwight Schrute",
        -  "Bowser",
        -  "Usain Bolt",
        -  "Tyson Fury",
        -  "Dana White",
        -  "Pat McAfee",
        -  "Giannis Antetokounmpo",
        -  "Lex Fridman",
        -  "Ben Shapiro",
        -  "Tucker Carlson",
        -  "Martha Stewart",
        -  "Gordon Lightfoot",
        -  "Lizzo",
        -  "Megan Thee Stallion",
        -  "Ice Spice",
        -  "21 Savage",
        -  "Metro Boomin",
        -  "Jack Harlow",
        -  "Peso Pluma",
        -  "BTS Jungkook",
        -  "Quentin Tarantino",
        -  "Werner Herzog",
        -  "Anderson Cooper",
        -  "Rachel Maddow",
        -  "Mahatma Gandhi",
        -  "Muhammad Ali",
        -  "Princess Diana",
        -  "Nelson Mandela",
        -  "Steve Irwin",
        -  "Morty Smith",
        -  "Andrew Huberman",
        -  "Willem Dafoe",
        -  "Mike Rowe",
        -  "Terminator",
        -  "Deadpool",
        -  "Plankton",
        -  "Mr. Krabs",
        -  "Picard"
        -]New value: +[
        +  "Elon Musk",
        +  "Mark Zuckerberg",
        +  "Joe Rogan",
        +  "Barack Obama",
        +  "Morgan Freeman",
        +  "Kanye West",
        +  "Donald Trump",
        +  "Joe Biden",
        +  "Kim Kardashian",
        +  "Taylor Swift",
        +  "James Earl Jones",
        +  "Samuel L. Jackson",
        +  "Jeff Goldblum",
        +  "David Attenborough",
        +  "Sean Connery",
        +  "Cillian Murphy",
        +  "Anne Hathaway",
        +  "Julia Roberts",
        +  "Natalie Portman",
        +  "Steve Carell",
        +  "Amy Poehler",
        +  "Stephen Colbert",
        +  "Jimmy Fallon",
        +  "David Letterman",
        +  "Alex Trebek",
        +  "Katy Perry",
        +  "Prince",
        +  "Kevin Bacon",
        +  "Tom Hiddleston",
        +  "Adam Driver",
        +  "Alan Rickman",
        +  "Alexz Johnson",
        +  "Ana Gasteyer",
        +  "Andrew Rannells",
        +  "Arden Cho",
        +  "Bear Grylls",
        +  "Ben McKenzie",
        +  "Ben Stiller",
        +  "Ben Whishaw",
        +  "Billie Joe Armstrong",
        +  "Bingbing Li",
        +  "Booboo Stewart",
        +  "Bradley Steven Perry",
        +  "Bruno Mars",
        +  "Caity Lotz",
        +  "Cameron Boyce",
        +  "Candice Accola",
        +  "Carrie Underwood",
        +  "Casey Affleck",
        +  "Caterina Scorsone",
        +  "Cedric the Entertainer",
        +  "Chace Crawford",
        +  "Chadwick Boseman",
        +  "Charlie Day",
        +  "Chris Hemsworth",
        +  "Chris Martin",
        +  "Christopher Mintz-Plasse",
        +  "Dan Fogler",
        +  "Dan Stevens",
        +  "Daniel Dae Kim",
        +  "Danielle Panabaker",
        +  "Dave Bautista",
        +  "David Schwimmer",
        +  "Denis Leary",
        +  "Derek Mears",
        +  "Diego Luna",
        +  "Donald Glover",
        +  "Donnie Yen",
        +  "Doutzen Kroes",
        +  "Dove Cameron",
        +  "Dr. Dre",
        +  "Drake Bell",
        +  "Elle Fanning",
        +  "Ernie Hudson",
        +  "Fergie",
        +  "Forest Whitaker",
        +  "Francia Raisa",
        +  "Freddie Highmore",
        +  "Gillian Jacobs",
        +  "Gina Carano",
        +  "Ginnifer Goodwin",
        +  "Gordon Ramsay",
        +  "Guy Pearce",
        +  "Gwendoline Christie",
        +  "Hailee Steinfeld",
        +  "Howie Mandel",
        +  "Hugh Jackman",
        +  "Hugh Laurie",
        +  "J. K. Simmons",
        +  "Jack Black",
        +  "Jared Leto",
        +  "Jennifer Carpenter",
        +  "Kesha",
        +  "Kris Jenner",
        +  "Kristen Bell",
        +  "Lorde",
        +  "Matt Smith",
        +  "Marilyn Monroe",
        +  "Charlie Chaplin",
        +  "Albert Einstein",
        +  "Abraham Lincoln",
        +  "John F. Kennedy",
        +  "Lucille Ball",
        +  "A.R. Rahman",
        +  "Aamir Khan",
        +  "Ajay Devgn",
        +  "Akshay Kumar",
        +  "Alain Delon",
        +  "Alan Alda",
        +  "Alan Cumming",
        +  "Amitabh Bachchan",
        +  "Ang Lee",
        +  "Ansel Elgort",
        +  "Anthony Anderson",
        +  "Anthony Mackie",
        +  "Armie Hammer",
        +  "Asa Butterfield",
        +  "B.J. Novak",
        +  "Barbara Eden",
        +  "Betty White",
        +  "Bill Nighy",
        +  "Bill Pullman",
        +  "Blake Shelton",
        +  "Bonnie Wright",
        +  "Brad Paisley",
        +  "Brendan Gleeson",
        +  "Brian Cox",
        +  "Bruno Ganz",
        +  "Burt Reynolds",
        +  "Carrie Fisher",
        +  "Charles Dance",
        +  "Chiwetel Ejiofor",
        +  "Chris Pine",
        +  "Christina Hendricks",
        +  "Christina Ricci",
        +  "Cyndi Lauper",
        +  "Dakota Fanning",
        +  "Damian Lewis",
        +  "Dan Aykroyd",
        +  "Daniel Craig",
        +  "David Oyelowo",
        +  "David Tennant",
        +  "Diane Keaton",
        +  "Diane Kruger",
        +  "Dick Van Dyke",
        +  "Domhnall Gleeson",
        +  "Dominic Cooper",
        +  "Donald Sutherland",
        +  "Drew Carey",
        +  "Eartha Kitt",
        +  "Eddie Izzard",
        +  "Edward Asner",
        +  "Eli Roth",
        +  "Elisabeth Moss",
        +  "Ellen Burstyn",
        +  "Emile Hirsch",
        +  "Ezra Miller",
        +  "Felicity Jones",
        +  "Fiona Shaw",
        +  "Florence Henderson",
        +  "Freida Pinto",
        +  "Geena Davis",
        +  "Gemma Arterton",
        +  "Geri Halliwell",
        +  "Glenn Close",
        +  "Gloria Steinem",
        +  "Greta Gerwig",
        +  "Gugu Mbatha-Raw",
        +  "Hans Zimmer",
        +  "Harry Connick Jr.",
        +  "Harvey Keitel",
        +  "Helena Bonham Carter",
        +  "Henry Cavill",
        +  "Hilary Swank",
        +  "Hugh Bonneville",
        +  "Idina Menzel",
        +  "Imelda Staunton",
        +  "Ingrid Bergman",
        +  "Irrfan Khan",
        +  "Isla Fisher",
        +  "Iwan Rheon",
        +  "Jack Lemmon",
        +  "Janet Jackson",
        +  "Jason Bateman",
        +  "Jason Segel",
        +  "Jennifer Coolidge",
        +  "Johnny Galecki",
        +  "Jon Favreau",
        +  "Joseph Gordon-Levitt",
        +  "Josh Brolin",
        +  "Josh Gad",
        +  "Josh Groban",
        +  "Julia Louis-Dreyfus",
        +  "Kristen Stewart",
        +  "Kristen Wiig",
        +  "Rooney Mara",
        +  "Caitriona Balfe",
        +  "J.J. Abrams",
        +  "Zoe Saldana",
        +  "SpongeBob SquarePants",
        +  "Patrick Star",
        +  "Squidward Tentacles",
        +  "Homer Simpson",
        +  "Bart Simpson",
        +  "Peter Griffin",
        +  "Stewie Griffin",
        +  "Eric Cartman",
        +  "Rick Sanchez",
        +  "Bugs Bunny",
        +  "Mickey Mouse",
        +  "Donald Duck",
        +  "Shrek",
        +  "Donkey (Shrek)",
        +  "Elsa (Frozen)",
        +  "Woody (Toy Story)",
        +  "Buzz Lightyear",
        +  "Scooby-Doo",
        +  "Shaggy Rogers",
        +  "Bender (Futurama)",
        +  "Optimus Prime",
        +  "Batman (Animated)",
        +  "The Joker (Animated)",
        +  "Darth Vader",
        +  "Yoda",
        +  "Gollum Smeagol",
        +  "Gandalf",
        +  "Winnie the Pooh",
        +  "Kermit the Frog",
        +  "Elmo",
        +  "SpiderMan (Tom Holland ver.)",
        +  "Mario",
        +  "Luigi",
        +  "Sonic the Hedgehog",
        +  "Naruto Uzumaki",
        +  "Goku",
        +  "Vegeta",
        +  "Light Yagami",
        +  "Luffy (One Piece)",
        +  "Edward Elric",
        +  "Eren Jaeger",
        +  "Levi Ackerman",
        +  "Tanjiro Kamado",
        +  "All Might",
        +  "GLaDOS",
        +  "Master Chief",
        +  "Kratos",
        +  "Arthur Morgan",
        +  "Geralt of Rivia",
        +  "Dwayne 'The Rock' Johnson",
        +  "LeBron James",
        +  "Shaquille O'Neal",
        +  "Conor McGregor",
        +  "Mike Tyson",
        +  "Kobe Bryant",
        +  "Floyd Mayweather",
        +  "Cristiano Ronaldo",
        +  "Lionel Messi",
        +  "Serena Williams",
        +  "Tom Brady",
        +  "Stephen Curry",
        +  "John Cena",
        +  "Hulk Hogan",
        +  "Stone Cold Steve Austin",
        +  "The Undertaker",
        +  "Nate Diaz",
        +  "Charles Barkley",
        +  "Shannon Sharpe",
        +  "Drake",
        +  "Rihanna",
        +  "Eminem",
        +  "Snoop Dogg",
        +  "Jay-Z",
        +  "Ed Sheeran",
        +  "Billie Eilish",
        +  "Ariana Grande",
        +  "Adele",
        +  "Post Malone",
        +  "Travis Scott",
        +  "Nicki Minaj",
        +  "Cardi B",
        +  "Doja Cat",
        +  "Bad Bunny",
        +  "Justin Bieber",
        +  "Sabrina Carpenter",
        +  "Chappell Roan",
        +  "Dua Lipa",
        +  "The Weeknd",
        +  "Miley Cyrus",
        +  "Lady Gaga",
        +  "Kendrick Lamar",
        +  "Ozzy Osbourne",
        +  "Freddie Mercury",
        +  "Elvis Presley",
        +  "Bob Marley",
        +  "Frank Sinatra",
        +  "MrBeast",
        +  "PewDiePie",
        +  "Kai Cenat",
        +  "IShowSpeed",
        +  "Markiplier",
        +  "Jacksepticeye",
        +  "KSI",
        +  "Logan Paul",
        +  "Jake Paul",
        +  "Dream (Minecraft)",
        +  "Corpse Husband",
        +  "xQc",
        +  "Pokimane",
        +  "Valkyrae",
        +  "Ninja",
        +  "Joe Scott",
        +  "Linus (LTT)",
        +  "Ryan Reynolds",
        +  "Tom Hanks",
        +  "Robert Downey Jr.",
        +  "Will Smith",
        +  "Denzel Washington",
        +  "Leonardo DiCaprio",
        +  "Brad Pitt",
        +  "Keanu Reeves",
        +  "Nicolas Cage",
        +  "Al Pacino",
        +  "Robert De Niro",
        +  "Arnold Schwarzenegger",
        +  "Sylvester Stallone",
        +  "Vin Diesel",
        +  "Jason Statham",
        +  "Tom Cruise",
        +  "Johnny Depp",
        +  "Scarlett Johansson",
        +  "Angelina Jolie",
        +  "Jennifer Aniston",
        +  "Emma Watson",
        +  "Margot Robbie",
        +  "Sydney Sweeney",
        +  "Zendaya",
        +  "Timothee Chalamet",
        +  "Pedro Pascal",
        +  "Oscar Isaac",
        +  "Benedict Cumberbatch",
        +  "Ian McKellen",
        +  "Patrick Stewart",
        +  "Christopher Walken",
        +  "Matthew McConaughey",
        +  "Harrison Ford",
        +  "Mark Wahlberg",
        +  "Owen Wilson",
        +  "Seth Rogen",
        +  "Kevin Hart",
        +  "Adam Sandler",
        +  "Jim Carrey",
        +  "Eddie Murphy",
        +  "Robin Williams",
        +  "Will Ferrell",
        +  "Melissa McCarthy",
        +  "Awkwafina",
        +  "Jason Momoa",
        +  "Idris Elba",
        +  "Tom Hardy",
        +  "Michael B. Jordan",
        +  "Austin Butler",
        +  "Glen Powell",
        +  "Paul Giamatti",
        +  "Bryan Cranston",
        +  "Bob Odenkirk",
        +  "Vladimir Putin",
        +  "Queen Elizabeth II",
        +  "Winston Churchill",
        +  "Martin Luther King Jr.",
        +  "Kamala Harris",
        +  "Bernie Sanders",
        +  "Alexandria Ocasio-Cortez",
        +  "Narendra Modi",
        +  "Oprah Winfrey",
        +  "Ellen DeGeneres",
        +  "Dr. Phil",
        +  "Steve Harvey",
        +  "Trevor Noah",
        +  "John Oliver",
        +  "James Corden",
        +  "Ryan Seacrest",
        +  "Howard Stern",
        +  "Conan O'Brien",
        +  "Seth Meyers",
        +  "Bill Nye",
        +  "Neil deGrasse Tyson",
        +  "Guy Fieri",
        +  "Dave Chappelle",
        +  "Chris Rock",
        +  "Jerry Seinfeld",
        +  "Ali Wong",
        +  "John Mulaney",
        +  "Hasan Minhaj",
        +  "Nikki Glaser",
        +  "Matt Rife",
        +  "Gabriel Iglesias",
        +  "Bo Burnham",
        +  "Jeff Bezos",
        +  "Bill Gates",
        +  "Steve Jobs",
        +  "Tim Cook",
        +  "Sam Altman",
        +  "Jensen Huang",
        +  "Gilbert Gottfried",
        +  "James May",
        +  "Jeremy Clarkson",
        +  "Richard Hammond",
        +  "Bob Ross",
        +  "Anthony Bourdain",
        +  "David Goggins",
        +  "Jordan Peterson",
        +  "Joe Pesci",
        +  "Danny DeVito",
        +  "Seth MacFarlane",
        +  "Patrick Warburton",
        +  "Keith David",
        +  "Mark Hamill",
        +  "Liam Neeson",
        +  "Antonio Banderas",
        +  "Sofia Vergara",
        +  "Penelope Cruz",
        +  "Gal Gadot",
        +  "Cate Blanchett",
        +  "Viola Davis",
        +  "Meryl Streep",
        +  "Sandra Bullock",
        +  "Reese Witherspoon",
        +  "Salma Hayek",
        +  "Lupita Nyong'o",
        +  "Florence Pugh",
        +  "Jenna Ortega",
        +  "Ana de Armas",
        +  "Jacob Elordi",
        +  "Barry White",
        +  "Dolly Parton",
        +  "Willie Nelson",
        +  "Lil Wayne",
        +  "50 Cent",
        +  "Ice Cube",
        +  "Tupac Shakur",
        +  "Notorious B.I.G.",
        +  "Bob Dylan",
        +  "David Bowie",
        +  "Michael Jackson",
        +  "Whitney Houston",
        +  "Amy Winehouse",
        +  "SZA",
        +  "Tyler, The Creator",
        +  "Thanos",
        +  "Tony Stark",
        +  "Captain Jack Sparrow",
        +  "Walter White",
        +  "Tommy Shelby",
        +  "Michael Scott",
        +  "Dwight Schrute",
        +  "Bowser",
        +  "Usain Bolt",
        +  "Tyson Fury",
        +  "Dana White",
        +  "Pat McAfee",
        +  "Giannis Antetokounmpo",
        +  "Lex Fridman",
        +  "Ben Shapiro",
        +  "Tucker Carlson",
        +  "Martha Stewart",
        +  "Gordon Lightfoot",
        +  "Lizzo",
        +  "Megan Thee Stallion",
        +  "Ice Spice",
        +  "21 Savage",
        +  "Metro Boomin",
        +  "Jack Harlow",
        +  "Peso Pluma",
        +  "BTS Jungkook",
        +  "Quentin Tarantino",
        +  "Werner Herzog",
        +  "Anderson Cooper",
        +  "Rachel Maddow",
        +  "Mahatma Gandhi",
        +  "Muhammad Ali",
        +  "Princess Diana",
        +  "Nelson Mandela",
        +  "Steve Irwin",
        +  "Morty Smith",
        +  "Andrew Huberman",
        +  "Willem Dafoe",
        +  "Mike Rowe",
        +  "Terminator",
        +  "Deadpool",
        +  "Plankton",
        +  "Mr. Krabs",
        +  "Picard",
        +  "Ludwig",
        +  "Emma Chamberlain",
        +  "Casey Neistat",
        +  "Marques Brownlee",
        +  "Technoblade",
        +  "Shroud",
        +  "Charli D'Amelio",
        +  "Khaby Lame",
        +  "Adin Ross",
        +  "Trainwreckstv",
        +  "Hasan Piker",
        +  "Joey Diaz",
        +  "Theo Von",
        +  "Andrew Schulz",
        +  "Bert Kreischer",
        +  "Tom Segura",
        +  "Shane Gillis",
        +  "Joe List",
        +  "Bobby Lee",
        +  "Chris Williamson",
        +  "Destiny",
        +  "Ethan Klein",
        +  "Hila Klein",
        +  "Olivia Rodrigo",
        +  "Gracie Abrams",
        +  "Benson Boone",
        +  "Noah Kahan",
        +  "Zach Bryan",
        +  "Morgan Wallen",
        +  "Luke Combs",
        +  "Chris Stapleton",
        +  "Rauw Alejandro",
        +  "Karol G",
        +  "Feid",
        +  "J Balvin",
        +  "Central Cee",
        +  "Dave (rapper)",
        +  "Stormzy",
        +  "Gunna",
        +  "Future",
        +  "Lil Baby",
        +  "Playboi Carti",
        +  "Don Toliver",
        +  "Lana Del Rey",
        +  "Halsey",
        +  "Charli XCX",
        +  "Tate McRae",
        +  "Conan Gray",
        +  "Troye Sivan",
        +  "Harry Styles",
        +  "Niall Horan",
        +  "Shawn Mendes",
        +  "John Legend",
        +  "Sam Smith",
        +  "Roman Reigns",
        +  "Cody Rhodes",
        +  "Seth Rollins",
        +  "CM Punk",
        +  "Randy Orton",
        +  "Triple H",
        +  "Ric Flair",
        +  "Khabib Nurmagomedov",
        +  "Jon Jones",
        +  "Israel Adesanya",
        +  "Alex Pereira",
        +  "Jorge Masvidal",
        +  "Patrick Mahomes",
        +  "Travis Kelce",
        +  "Aaron Rodgers",
        +  "Kyrie Irving",
        +  "Kevin Durant",
        +  "Luka Doncic",
        +  "Nikola Jokic",
        +  "Simone Biles",
        +  "Novak Djokovic",
        +  "Rafael Nadal",
        +  "Roger Federer",
        +  "Max Verstappen",
        +  "Lewis Hamilton",
        +  "Mark Rober",
        +  "Naval Ravikant",
        +  "Peter Attia",
        +  "Gary Vaynerchuk",
        +  "Alex Hormozi",
        +  "Grant Cardone",
        +  "JD Vance",
        +  "Nancy Pelosi",
        +  "Ron DeSantis",
        +  "Volodymyr Zelenskyy",
        +  "Xi Jinping",
        +  "Justin Trudeau",
        +  "Emmanuel Macron",
        +  "Boris Johnson",
        +  "Rishi Sunak",
        +  "Keir Starmer",
        +  "Tom Holland",
        +  "Anya Taylor-Joy",
        +  "Barry Keoghan",
        +  "Paul Mescal",
        +  "Rachel Zegler",
        +  "Millie Bobby Brown",
        +  "Finn Wolfhard",
        +  "Noah Schnapp",
        +  "Ke Huy Quan",
        +  "Ayo Edebiri",
        +  "Jeremy Allen White",
        +  "Cloud Strife",
        +  "Sephiroth",
        +  "Solid Snake",
        +  "Nathan Drake",
        +  "Joel Miller",
        +  "Ellie Williams",
        +  "Duke Nukem",
        +  "Lara Croft",
        +  "Link (Zelda)",
        +  "Samus Aran",
        +  "Kirby",
        +  "Pikachu",
        +  "Ash Ketchum",
        +  "Agent 47",
        +  "Vergil (DMC)",
        +  "Dante (DMC)",
        +  "Ryu (Street Fighter)",
        +  "Chun-Li",
        +  "Scorpion (Mortal Kombat)",
        +  "Sub-Zero",
        +  "Steve (Minecraft)",
        +  "Herobrine",
        +  "Cortana",
        +  "Aloy",
        +  "Ezio Auditore",
        +  "Altair",
        +  "BJ Blazkowicz",
        +  "Doom Slayer",
        +  "Handsome Jack",
        +  "Tracer (Overwatch)",
        +  "Genji (Overwatch)",
        +  "Reaper (Overwatch)",
        +  "Jinx (Arcane)",
        +  "Vi (Arcane)",
        +  "Nezuko Kamado",
        +  "Zenitsu Agatsuma",
        +  "Gojo Satoru",
        +  "Itadori Yuji",
        +  "Denji (Chainsaw Man)",
        +  "Power (Chainsaw Man)",
        +  "Zoro (One Piece)",
        +  "Nami (One Piece)",
        +  "Sasuke Uchiha",
        +  "Kakashi Hatake",
        +  "Itachi Uchiha",
        +  "Spike Spiegel",
        +  "L (Death Note)",
        +  "Saitama (One Punch Man)",
        +  "Deku (My Hero Academia)",
        +  "Bakugo Katsuki",
        +  "Captain America (MCU)",
        +  "Thor (MCU)",
        +  "Loki (MCU)",
        +  "Wolverine",
        +  "Groot",
        +  "Rocket Raccoon",
        +  "Venom",
        +  "The Mandalorian",
        +  "Baby Yoda (Grogu)",
        +  "Tony Montana (Scarface)",
        +  "John Wick",
        +  "James Bond (Craig era)",
        +  "Ferris Bueller",
        +  "Tyler Durden",
        +  "The Dude (Big Lebowski)",
        +  "Forrest Gump",
        +  "Willy Wonka",
        +  "Freddy Krueger",
        +  "Jason Voorhees",
        +  "Michael Myers",
        +  "Pennywise",
        +  "Hannibal Lecter",
        +  "Family Guy Quagmire",
        +  "Lois Griffin",
        +  "Marge Simpson",
        +  "Lisa Simpson",
        +  "Ned Flanders",
        +  "Krusty the Clown",
        +  "Mr. Burns",
        +  "Timmy Turner",
        +  "Dexter (Dexter's Lab)",
        +  "Johnny Bravo",
        +  "Courage the Cowardly Dog",
        +  "Finn the Human",
        +  "Jake the Dog",
        +  "Rick Grimes",
        +  "Negan (Walking Dead)",
        +  "Jesse Pinkman",
        +  "Saul Goodman",
        +  "Tony Soprano",
        +  "Jim Halpert",
        +  "Ron Swanson",
        +  "Barney Stinson",
        +  "Sheldon Cooper",
        +  "Jon Snow",
        +  "Tyrion Lannister",
        +  "Daenerys Targaryen",
        +  "Arya Stark",
        +  "Homelander",
        +  "Billy Butcher",
        +  "Airrack",
        +  "Zach King",
        +  "Dude Perfect Tyler",
        +  "Colleen Ballinger",
        +  "David Dobrik",
        +  "James Charles",
        +  "NikkieTutorials",
        +  "Jeffree Star",
        +  "Danny Duncan",
        +  "FaZe Rug",
        +  "SSSniperWolf",
        +  "Vegetta777",
        +  "Rubius",
        +  "Ibai Llanos",
        +  "Fuerza Regida",
        +  "Grupo Frontera",
        +  "Bizarrap",
        +  "Anitta",
        +  "Rosalia",
        +  "Maluma",
        +  "Ozuna",
        +  "Manuel Turizo",
        +  "Camilo",
        +  "Sam Fender",
        +  "Hozier",
        +  "Fred again",
        +  "GloRilla",
        +  "Sexyy Red",
        +  "Flo Milli",
        +  "Latto",
        +  "Coi Leray",
        +  "Ja Morant",
        +  "Anthony Edwards",
        +  "Victor Wembanyama",
        +  "Caitlin Clark",
        +  "Angel Reese",
        +  "Sha'Carri Richardson",
        +  "Erling Haaland",
        +  "Kylian Mbappe",
        +  "Jude Bellingham",
        +  "Neymar",
        +  "Vinicius Junior",
        +  "Shohei Ohtani",
        +  "Connor McDavid",
        +  "Sidney Crosby",
        +  "Steven Crowder",
        +  "Candace Owens",
        +  "Charlie Kirk",
        +  "Matt Walsh",
        +  "Tim Dillon",
        +  "Whitney Cummings",
        +  "Sam Harris",
        +  "Malcolm Gladwell",
        +  "Simon Sinek",
        +  "Mel Robbins",
        +  "Jocko Willink",
        +  "Emma Stone",
        +  "Ryan Gosling",
        +  "Bradley Cooper",
        +  "Christian Bale",
        +  "Joaquin Phoenix",
        +  "Mahershala Ali",
        +  "Jamie Foxx",
        +  "Regina King",
        +  "Taraji P. Henson",
        +  "Octavia Spencer",
        +  "John Boyega",
        +  "Daisy Ridley",
        +  "Jonathan Majors",
        +  "Simu Liu",
        +  "Constance Wu",
        +  "Henry Golding",
        +  "Dev Patel",
        +  "Riz Ahmed",
        +  "Mindy Kaling",
        +  "Aubrey Plaza",
        +  "Aziz Ansari",
        +  "Randall Park",
        +  "Rainbow Dash",
        +  "Twilight Sparkle",
        +  "Gumball Watterson",
        +  "Rigby (Regular Show)",
        +  "Mordecai (Regular Show)",
        +  "Steven Universe",
        +  "Garnet (Steven Universe)",
        +  "Aang (Avatar)",
        +  "Zuko (Avatar)",
        +  "Aretha Franklin",
        +  "Stevie Wonder",
        +  "Ray Charles",
        +  "Johnny Cash",
        +  "Jimi Hendrix",
        +  "Janis Joplin",
        +  "Kurt Cobain",
        +  "Freddie Prinze",
        +  "Selena Gomez",
        +  "Justin Timberlake",
        +  "Usher",
        +  "Chris Brown",
        +  "A$AP Rocky",
        +  "RM (BTS)",
        +  "V (BTS)",
        +  "Jimin",
        +  "Lisa (Blackpink)",
        +  "Jennie (Blackpink)",
        +  "Rose (Blackpink)",
        +  "Calvin Harris",
        +  "David Guetta",
        +  "Marshmello",
        +  "Skrillex",
        +  "Diplo",
        +  "Zedd",
        +  "Jimmy Kimmel",
        +  "Graham Norton",
        +  "Bill Maher",
        +  "Sean Hannity",
        +  "Wolf Blitzer",
        +  "Lester Holt",
        +  "Satya Nadella",
        +  "Sundar Pichai",
        +  "Warren Buffett",
        +  "Sheryl Sandberg",
        +  "Marc Andreessen",
        +  "Peter Thiel",
        +  "Stephen Hawking",
        +  "Carl Sagan",
        +  "Richard Feynman",
        +  "Jane Goodall",
        +  "Franklin D. Roosevelt",
        +  "Ronald Reagan",
        +  "Margaret Thatcher",
        +  "King Charles III",
        +  "Prince Harry",
        +  "Prince William",
        +  "Stephen King",
        +  "J.K. Rowling",
        +  "George R.R. Martin",
        +  "Neil Gaiman",
        +  "Malcolm X",
        +  "Jamie Oliver",
        +  "Tiger Woods",
        +  "Venus Williams",
        +  "David Beckham",
        +  "Michael Phelps",
        +  "Peyton Manning",
        +  "Virat Kohli",
        +  "Sachin Tendulkar",
        +  "MS Dhoni",
        +  "The Rock",
        +  "Rey Mysterio",
        +  "Bray Wyatt",
        +  "Kevin Owens",
        +  "H3H3",
        +  "Philip DeFranco",
        +  "Jenna Marbles",
        +  "Shane Dawson",
        +  "Liza Koshy",
        +  "Lilly Singh",
        +  "Rhett and Link",
        +  "Danny Gonzalez",
        +  "Drew Gooden",
        +  "Cody Ko",
        +  "Kurtis Conner",
        +  "Trisha Paytas",
        +  "Tana Mongeau",
        +  "Jaclyn Hill",
        +  "Bretman Rock",
        +  "Safiya Nygaard",
        +  "Shah Rukh Khan",
        +  "Salman Khan",
        +  "Priyanka Chopra",
        +  "Deepika Padukone",
        +  "Jennifer Lawrence",
        +  "Chris Evans",
        +  "Daniel Radcliffe",
        +  "Rupert Grint",
        +  "Anthony Hopkins",
        +  "Jack Nicholson",
        +  "Clint Eastwood",
        +  "Obi-Wan Kenobi",
        +  "Luke Skywalker",
        +  "Han Solo",
        +  "Princess Leia",
        +  "Emperor Palpatine",
        +  "Kylo Ren",
        +  "C-3PO",
        +  "Frodo Baggins",
        +  "Aragorn",
        +  "Legolas",
        +  "Samwise Gamgee",
        +  "Harry Potter",
        +  "Hermione Granger",
        +  "Ron Weasley",
        +  "Albus Dumbledore",
        +  "Severus Snape",
        +  "Voldemort",
        +  "Hagrid",
        +  "Belle (Beauty and the Beast)",
        +  "Ariel (Little Mermaid)",
        +  "Cinderella",
        +  "Snow White",
        +  "Mulan",
        +  "Rapunzel (Tangled)",
        +  "Fiona (Shrek)",
        +  "Ross Geller",
        +  "Chandler Bing",
        +  "Joey Tribbiani",
        +  "Monica Geller",
        +  "Rachel Green",
        +  "Phoebe Buffay",
        +  "George Costanza",
        +  "Kramer (Seinfeld)",
        +  "Elaine Benes",
        +  "Carlton Banks",
        +  "Hinata Hyuga",
        +  "Ichigo Kurosaki",
        +  "Yoshi",
        +  "Spyro",
        +  "Ryu Hayabusa",
        +  "Leon Kennedy",
        +  "Chris Redfield",
        +  "Jill Valentine",
        +  "Ada Wong",
        +  "Big Boss (MGS)",
        +  "Raiden (MGS)",
        +  "Commander Shepard",
        +  "Garrus Vakarian",
        +  "V (Cyberpunk)",
        +  "Johnny Silverhand",
        +  "Valorant Jett",
        +  "League of Legends Ahri",
        +  "Yasuo (LoL)",
        +  "Superman",
        +  "Wonder Woman",
        +  "Harley Quinn",
        +  "Black Panther",
        +  "Doctor Strange",
        +  "Hulk",
        +  "Black Widow",
        +  "Nick Fury",
        +  "Ant-Man",
        +  "Don Draper",
        +  "Walter Bishop (Fringe)",
        +  "Frank Underwood",
        +  "Dexter Morgan",
        +  "Sherlock Holmes",
        +  "Dr. House",
        +  "Michael Corleone",
        +  "Vito Corleone",
        +  "Daffy Duck",
        +  "Porky Pig",
        +  "Tweety Bird",
        +  "Sylvester the Cat",
        +  "Fred Flintstone",
        +  "Barney Rubble",
        +  "George Jetson",
        +  "Popeye",
        +  "Skip Bayless",
        +  "Stephen A Smith",
        +  "Colin Cowherd",
        +  "Ricky Gervais",
        +  "Bill Burr",
        +  "Sebastian Maniscalco",
        +  "Trevor Wallace",
        +  "Iliza Shlesinger",
        +  "Bruce Springsteen",
        +  "Eric Clapton",
        +  "Mick Jagger",
        +  "Paul McCartney",
        +  "John Lennon",
        +  "Elton John",
        +  "Billy Joel",
        +  "Fleetwood Mac Stevie Nicks",
        +  "Sia",
        +  "Demi Lovato",
        +  "Camila Cabello",
        +  "Enrique Iglesias",
        +  "Ricky Martin",
        +  "Faze Clan Banks",
        +  "Tfue",
        +  "Timthetatman",
        +  "DrLupo",
        +  "CouRage",
        +  "Sykkuno",
        +  "Disguised Toast",
        +  "Fuslie",
        +  "Jerma985",
        +  "Vinesauce Vinny",
        +  "Northernlion",
        +  "Moistcr1tikal",
        +  "Asmongold",
        +  "Mizkif",
        +  "Esfand",
        +  "Quin69",
        +  "Summit1g",
        +  "Sodapoppin",
        +  "Forsen",
        +  "Pestily",
        +  "Joe Budden",
        +  "Charlamagne Tha God",
        +  "Angela Yee",
        +  "Big Boy",
        +  "Zane Lowe",
        +  "Rich Eisen",
        +  "Bill Simmons",
        +  "Dan Le Batard",
        +  "Slash (musician)",
        +  "James Hetfield",
        +  "Dave Grohl",
        +  "Chris Cornell",
        +  "Axl Rose",
        +  "Robert Plant",
        +  "Jon Bon Jovi",
        +  "Chester Bennington",
        +  "Corey Taylor",
        +  "Fernando Alonso",
        +  "Charles Leclerc",
        +  "Daniel Ricciardo",
        +  "Valentino Rossi",
        +  "Marc Marquez",
        +  "Travis Pastrana",
        +  "Tony Hawk",
        +  "Rohit Sharma",
        +  "Babar Azam",
        +  "Ben Stokes",
        +  "Joe Root",
        +  "Anthony Joshua",
        +  "Canelo Alvarez",
        +  "Ronda Rousey",
        +  "Amanda Nunes",
        +  "Bruce Willis",
        +  "Chris Pratt",
        +  "Charlize Theron",
        +  "Nicole Kidman",
        +  "Amy Adams",
        +  "Jamie Lee Curtis",
        +  "Gary Oldman",
        +  "Mark Ruffalo",
        +  "Jeremy Renner",
        +  "Chris Tucker",
        +  "Jonah Hill",
        +  "Ranveer Singh",
        +  "Alia Bhatt",
        +  "Hrithik Roshan",
        +  "Lee Min Ho",
        +  "Song Joong Ki",
        +  "Park Seo Joon",
        +  "Kylie Jenner",
        +  "Khloe Kardashian",
        +  "Paris Hilton",
        +  "Neil Armstrong",
        +  "Buzz Aldrin",
        +  "Yuri Gagarin",
        +  "Killua Zoldyck",
        +  "Gon Freecss",
        +  "Meliodas",
        +  "Natsu Dragneel",
        +  "Lucy Heartfilia",
        +  "Erza Scarlet",
        +  "Inuyasha",
        +  "Kagome Higurashi",
        +  "Yusuke Urameshi",
        +  "Vash the Stampede",
        +  "Alucard (Hellsing)",
        +  "Guts (Berserk)",
        +  "Griffith (Berserk)",
        +  "Reigen Arataka",
        +  "Mob (Mob Psycho 100)",
        +  "Anya Forger",
        +  "Loid Forger",
        +  "Yor Forger",
        +  "Pit (Kid Icarus)",
        +  "Marth (Fire Emblem)",
        +  "Ike (Fire Emblem)",
        +  "Sora (Kingdom Hearts)",
        +  "Riku (Kingdom Hearts)",
        +  "Sam Porter Bridges",
        +  "Big Smoke (GTA)",
        +  "CJ (GTA San Andreas)",
        +  "Niko Bellic",
        +  "Trevor Philips",
        +  "Michael De Santa",
        +  "Franklin Clinton",
        +  "Marcus Fenix",
        +  "Isaac Clarke",
        +  "Ellie (Borderlands)",
        +  "Lilith (Borderlands)",
        +  "Claptrap",
        +  "Widowmaker (Overwatch)",
        +  "Mercy (Overwatch)",
        +  "Reinhardt (Overwatch)",
        +  "Phineas Flynn",
        +  "Doofenshmirtz",
        +  "Blossom (PPG)",
        +  "Bubbles (PPG)",
        +  "Buttercup (PPG)",
        +  "Mojo Jojo",
        +  "Ben Tennyson",
        +  "Danny Phantom",
        +  "Invader Zim",
        +  "GIR (Invader Zim)",
        +  "Sandy Cheeks",
        +  "Ellen Ripley",
        +  "Sarah Connor",
        +  "Indiana Jones",
        +  "Austin Powers",
        +  "Inspector Clouseau",
        +  "Gru (Despicable Me)",
        +  "Alvin (Chipmunks)",
        +  "Megatron",
        +  "Chucky",
        +  "Ghostface (Scream)",
        +  "The Grinch",
        +  "Jack Skellington",
        +  "Jayson Tatum",
        +  "Devin Booker",
        +  "Damian Lillard",
        +  "James Harden",
        +  "Russell Westbrook",
        +  "Joel Embiid",
        +  "Justin Jefferson",
        +  "Josh Allen",
        +  "Joe Burrow",
        +  "Micah Parsons",
        +  "Myles Garrett",
        +  "CeeDee Lamb",
        +  "Burna Boy",
        +  "Wizkid",
        +  "Davido",
        +  "Tems",
        +  "Magnus Carlsen",
        +  "Hikaru Nakamura",
        +  "MrBallen",
        +  "Ned Fulmer",
        +  "Zach Kornfeld",
        +  "Eugene Lee Yang",
        +  "Alton Brown",
        +  "Andrew Rea",
        +  "Steve-O",
        +  "Johnny Knoxville",
        +  "Bam Margera",
        +  "Russell Brand",
        +  "Piers Morgan",
        +  "Douglas Murray",
        +  "Dave Rubin",
        +  "Michael Knowles",
        +  "Vivek Ramaswamy",
        +  "Marjorie Taylor Greene",
        +  "Mitch McConnell",
        +  "Mike Pence",
        +  "Hillary Clinton",
        +  "Bill Clinton",
        +  "George W Bush",
        +  "George H W Bush",
        +  "Jimmy Carter",
        +  "Angela Merkel",
        +  "Tara Strong",
        +  "Tom Kenny",
        +  "Nolan North",
        +  "Troy Baker",
        +  "Jennifer Hale",
        +  "Steve Blum",
        +  "Cersei Lannister",
        +  "Jaime Lannister",
        +  "Sansa Stark",
        +  "Bran Stark",
        +  "The Hound",
        +  "Melisandre",
        +  "Varys",
        +  "Petyr Baelish",
        +  "Ned Stark",
        +  "Gus Fring",
        +  "Mike Ehrmantraut",
        +  "Hank Schrader",
        +  "Skyler White",
        +  "Joy (Inside Out)",
        +  "Sadness (Inside Out)",
        +  "Anger (Inside Out)",
        +  "Mirabel (Encanto)",
        +  "Bruno (Encanto)",
        +  "Remy (Ratatouille)",
        +  "Lightning McQueen",
        +  "Mater (Cars)",
        +  "Wreck-It Ralph",
        +  "Vanellope von Schweetz",
        +  "PointCrow",
        +  "Ranboo",
        +  "Wilbur Soot",
        +  "Tubbo",
        +  "GeorgeNotFound",
        +  "Sapnap",
        +  "Quackity",
        +  "Karl Jacobs",
        +  "Norman Bates",
        +  "Anton Chigurh",
        +  "Patrick Bateman",
        +  "Travis Bickle",
        +  "Rocky Balboa",
        +  "Rambo",
        +  "Maximus (Gladiator)",
        +  "William Wallace",
        +  "King Leonidas",
        +  "Leslie Knope",
        +  "Tom Haverford",
        +  "April Ludgate",
        +  "Andy Dwyer",
        +  "Kevin Malone",
        +  "Creed Bratton",
        +  "Stanley Hudson",
        +  "Toby Flenderson",
        +  "Angela Martin",
        +  "Summer Smith",
        +  "Beth Smith",
        +  "Jerry Smith",
        +  "BoJack Horseman",
        +  "Todd Chavez",
        +  "Princess Carolyn",
        +  "Diane Nguyen",
        +  "Big Mouth Nick",
        +  "Maury (Big Mouth)",
        +  "Archer (Sterling)",
        +  "Lana Kane",
        +  "Malory Archer",
        +  "Fry (Futurama)",
        +  "Leela (Futurama)",
        +  "Professor Farnsworth",
        +  "Zapp Brannigan",
        +  "Beavis",
        +  "Butt-Head",
        +  "King of the Hill Hank Hill",
        +  "Bobby Hill",
        +  "Dale Gribble",
        +  "Stan Marsh",
        +  "Kyle Broflovski",
        +  "Randy Marsh",
        +  "Towelie",
        +  "Butters Stotch",
        +  "Mr. Garrison",
        +  "Chef (South Park)",
        +  "Ike Broflovski",
        +  "Wendy Testaburger",
        +  "PC Principal",
        +  "Jimmy Valmer",
        +  "Michelle Obama",
        +  "Al Gore",
        +  "Desmond Tutu",
        +  "Anthony Fauci",
        +  "Greta Thunberg",
        +  "Malala Yousafzai",
        +  "Grimes",
        +  "Jafar (Aladdin)",
        +  "Ursula (Little Mermaid)",
        +  "Iago (Aladdin parrot)",
        +  "Zazu (Lion King)",
        +  "Yzma (Emperor's New Groove)",
        +  "Kronk (Emperor's New Groove)",
        +  "Discord (My Little Pony)",
        +  "Skeletor (He-Man)",
        +  "Captain Hook (Peter Pan)",
        +  "Sebastian (Little Mermaid)",
        +  "HAL 9000",
        +  "Mushu (Mulan)",
        +  "Lumiere (Beauty and the Beast)",
        +  "Cogsworth (Beauty and the Beast)",
        +  "Scuttle (Little Mermaid)",
        +  "Rafiki (Lion King)",
        +  "Kristoff (Frozen)",
        +  "Hans (Frozen)",
        +  "Merlin (Sword in the Stone)"
        +]
    • Changedimage_to_video_create_video1 field changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "default",
        -  "ltx-2",
        -  "ltx-2.3",
        -  "ltx-2.5",
        -  "minimax-h3",
        -  "wan-2.2",
        -  "seedance-1.5",
        -  "seedance-2.0",
        -  "seedance-2.0-mini",
        -  "seedance-2.5",
        -  "kling-2.5",
        -  "kling-2.6",
        -  "kling-3.0",
        -  "gemini-omni-1.1",
        -  "veo3.1",
        -  "veo3.1-lite",
        -  "sora-2",
        -  "kling-1.6",
        -  "seedance",
        -  "kling-2.5-audio",
        -  "veo3.1-audio"
        -]New value: +[
        +  "default",
        +  "ltx-2",
        +  "ltx-2.5",
        +  "minimax-h3",
        +  "wan-2.2",
        +  "seedance-1.5",
        +  "seedance-2.0",
        +  "seedance-2.0-mini",
        +  "seedance-2.5",
        +  "kling-2.5",
        +  "kling-2.6",
        +  "kling-3.0",
        +  "gemini-omni-1.1",
        +  "veo3.1",
        +  "veo3.1-lite",
        +  "sora-2",
        +  "kling-1.6",
        +  "ltx-2.3",
        +  "seedance",
        +  "kling-2.5-audio",
        +  "veo3.1-audio"
        +]
    • Changedtext_to_video_create_video1 field changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "default",
        -  "ltx-2",
        -  "ltx-2.3",
        -  "ltx-2.5",
        -  "minimax-h3",
        -  "wan-2.2",
        -  "seedance-1.5",
        -  "seedance-2.0",
        -  "seedance-2.0-mini",
        -  "seedance-2.5",
        -  "kling-2.5",
        -  "kling-2.6",
        -  "kling-3.0",
        -  "gemini-omni-1.1",
        -  "veo3.1",
        -  "veo3.1-lite",
        -  "sora-2",
        -  "kling-1.6",
        -  "seedance",
        -  "kling-2.5-audio",
        -  "veo3.1-audio"
        -]New value: +[
        +  "default",
        +  "ltx-2",
        +  "ltx-2.5",
        +  "minimax-h3",
        +  "wan-2.2",
        +  "seedance-1.5",
        +  "seedance-2.0",
        +  "seedance-2.0-mini",
        +  "seedance-2.5",
        +  "kling-2.5",
        +  "kling-2.6",
        +  "kling-3.0",
        +  "gemini-omni-1.1",
        +  "veo3.1",
        +  "veo3.1-lite",
        +  "sora-2",
        +  "kling-1.6",
        +  "ltx-2.3",
        +  "seedance",
        +  "kling-2.5-audio",
        +  "veo3.1-audio"
        +]
  2. 44 tool updates
    • Changedaccount_retrieve1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_clothes_changer_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_face_editor_edit_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_gif_generator_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_headshot_generator_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_image_editor_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_image_generator_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_image_upscaler_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_meme_generator_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_qr_code_generator_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_talking_photo_create_talking_photo1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_video_editor_create_video1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_voice_cloner_create_audio1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedai_voice_generator_create_audio1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedanimation_create_video1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedaudio_projects_delete1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedaudio_projects_retrieve_details1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedaudio_to_video_create_video1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedauto_subtitle_generator_create_video1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedbody_swap_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedcharacter_replace_create_video1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedface_detection_detect_faces1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedface_detection_retrieve_details1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedface_swap_create_video1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedface_swap_photo_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedfetch_audio_download1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedfetch_image_download1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedfetch_video_download1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedhead_swap_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedimage_background_remover_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedimage_projects_delete1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedimage_projects_retrieve_details1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedimage_to_video_create_video1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedlip_sync_create_video1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedphoto_colorizer_create_image1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedping1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedtext_to_video_create_video1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedvideo_assets_generate_presigned_url1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedvideo_projects_delete1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedvideo_projects_retrieve_details1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedvideo_to_video_create_video1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedwait_for_audio_project1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedwait_for_image_project1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
    • Changedwait_for_video_project1 field changed
      • addedInput schema / properties / context
        Added value: +{
        +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
        +  "type": "string"
        +}
  3. 1 tool update
    • Addedaccount_retrieve
  4. 4 tool updates
    • Changedimage_projects_retrieve_details1 field changed
      • changedOutput schema / properties / type / description
        Previous value: -"The type of the image project. Possible values are FACE_EDITOR, AI_IMAGE_EDITOR, AI_SELFIE, AI_HEADSHOT, AI_INFLUENCER, AI_IMAGE, AI_MEME, CLOTHES_CHANGER, BACKGROUND_REMOVER, FACE_SWAP, IMAGE_UPSCALER, IMAGE_ENHANCER, AI_GIF, QR_CODE, PHOTO_EDITOR, PHOTO_COLORIZER, HEAD_SWAP, BODY_SWAP, STORYBOARD, IMAGE_EXPANDER"New value: +"The type of the image project. Possible values are FACE_EDITOR, AI_IMAGE_EDITOR, AI_SELFIE, AI_HEADSHOT, AI_INFLUENCER, AI_IMAGE, AI_MEME, CLOTHES_CHANGER, BACKGROUND_REMOVER, FACE_SWAP, IMAGE_UPSCALER, IMAGE_ENHANCER, AI_GIF, QR_CODE, PHOTO_EDITOR, PHOTO_COLORIZER, IMAGE_COLOR_GRADER, HEAD_SWAP, BODY_SWAP, STORYBOARD, IMAGE_EXPANDER"
    • Changedimage_to_video_create_video2 fields changed
      • changedInput schema / properties / model / description
        Previous value: -"The AI model to use for video generation.\n\n* `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`.\n* `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output.\n* `kling-2.6`: Best for action, motion blur, and controlled camera moves.\n* `kling-3.0`: Best for cinematic stories, references, and optional audio.\n* `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `minimax-h3`: Great for reference-driven clips with native audio and longer durations.\n* `seedance-1.5`: Best for smooth, consistent motion with an end frame.\n* `seedance-2.0`: Best for reference-led clips with precise subject control.\n* `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio.\n* `seedance-2.5`: Best for premium realism, detail, and natural motion.\n* `sora-2`: Best for creative concepts and longer clips with audio.\n* `veo3.1`: Best for romantic interactions and expressive action, with realistic detail.\n* `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1.\n* `wan-2.2`: Best for physical motion, action, and camera movement.\n\nIf you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`."New value: +"The AI model to use for video generation.\n\n* `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`.\n* `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output.\n* `kling-2.6`: Best for action, motion blur, and controlled camera moves.\n* `kling-3.0`: Best for cinematic stories, references, and optional audio.\n* `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `minimax-h3`: Great for reference-driven clips with native audio and longer durations.\n* `seedance-1.5`: Best for smooth, consistent motion with an end frame.\n* `seedance-2.0`: Best for reference-led clips with precise subject control.\n* `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio.\n* `seedance-2.5`: Best for premium realism, detail, and natural motion.\n* `sora-2`: Best for creative concepts and longer clips with audio.\n* `veo3.1`: Best for romantic interactions and expressive action, with realistic detail.\n* `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1.\n* `wan-2.2`: Best for physical motion, action, and camera movement.\n\nIf you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`."
      • changedInput schema / properties / resolution / enum
        Previous value: -[
        -  "480p",
        -  "720p",
        -  "1080p",
        -  "4k"
        -]New value: +[
        +  "360p",
        +  "480p",
        +  "720p",
        +  "1080p",
        +  "4k"
        +]
    • Changedtext_to_video_create_video2 fields changed
      • changedInput schema / properties / model / description
        Previous value: -"The AI model to use for video generation.\n\n* `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`.\n* `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output.\n* `kling-2.6`: Best for action, motion blur, and controlled camera moves.\n* `kling-3.0`: Best for cinematic stories, references, and optional audio.\n* `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `minimax-h3`: Great for reference-driven clips with native audio and longer durations.\n* `seedance-1.5`: Best for smooth, consistent motion with an end frame.\n* `seedance-2.0`: Best for reference-led clips with precise subject control.\n* `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio.\n* `seedance-2.5`: Best for premium realism, detail, and natural motion.\n* `sora-2`: Best for creative concepts and longer clips with audio.\n* `veo3.1`: Best for romantic interactions and expressive action, with realistic detail.\n* `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1.\n* `wan-2.2`: Best for physical motion, action, and camera movement.\n\nIf you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`."New value: +"The AI model to use for video generation.\n\n* `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.5`.\n* `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output.\n* `kling-2.6`: Best for action, motion blur, and controlled camera moves.\n* `kling-3.0`: Best for cinematic stories, references, and optional audio.\n* `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `minimax-h3`: Great for reference-driven clips with native audio and longer durations.\n* `seedance-1.5`: Best for smooth, consistent motion with an end frame.\n* `seedance-2.0`: Best for reference-led clips with precise subject control.\n* `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio.\n* `seedance-2.5`: Best for premium realism, detail, and natural motion.\n* `sora-2`: Best for creative concepts and longer clips with audio.\n* `veo3.1`: Best for romantic interactions and expressive action, with realistic detail.\n* `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1.\n* `wan-2.2`: Best for physical motion, action, and camera movement.\n\nIf you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`."
      • changedInput schema / properties / resolution / enum
        Previous value: -[
        -  "480p",
        -  "720p",
        -  "1080p",
        -  "4k"
        -]New value: +[
        +  "360p",
        +  "480p",
        +  "720p",
        +  "1080p",
        +  "4k"
        +]
    • Changedvideo_projects_retrieve_details1 field changed
      • changedOutput schema / properties / type / description
        Previous value: -"The type of the video project. Possible values are ANIMATION, AUTO_SUBTITLE, VIDEO_TO_VIDEO, FACE_SWAP, TEXT_TO_VIDEO, IMAGE_TO_VIDEO, LIP_SYNC, TALKING_PHOTO, AVATAR, VIDEO_UPSCALER, VIDEO_EDITOR, CHARACTER_REPLACE, VIDEO_COLORIZER, VIDEO_TRANSLATOR, MUSIC_VIDEO, EXTEND, AUDIO_TO_VIDEO, VIDEO_EXPANDER, UGC_AD"New value: +"The type of the video project. Possible values are ANIMATION, AUTO_SUBTITLE, VIDEO_TO_VIDEO, FACE_SWAP, TEXT_TO_VIDEO, IMAGE_TO_VIDEO, LIP_SYNC, TALKING_PHOTO, AVATAR, VIDEO_UPSCALER, VIDEO_EDITOR, CHARACTER_REPLACE, VIDEO_COLORIZER, VIDEO_COLOR_GRADER, VIDEO_TRANSLATOR, MUSIC_VIDEO, EXTEND, AUDIO_TO_VIDEO, VIDEO_EXPANDER, UGC_AD"
  5. 1 tool update
    • Removedupload_file_to_presigned_url
  6. 5 tool updates
    • Changedai_clothes_changer_create_image1 field changed
      • changedInput schema / properties / assets / properties / garment_type / description
        Previous value: -"Type of garment to swap. If not provided, swaps the entire outfit. \n* `upper_body` - for shirts/jackets \n* `lower_body` - for pants/skirts \n* `dresses` - for entire outfit (deprecated, use `entire_outfit` instead) \n* `entire_outfit` - for entire outfit"New value: +"Type of clothing item to swap. If not provided, swaps the entire outfit. \n* `upper_body` - for shirts/jackets \n* `lower_body` - for pants/skirts \n* `dresses` - for entire outfit (deprecated, use `entire_outfit` instead) \n* `entire_outfit` - for entire outfit"
    • Changedai_talking_photo_create_talking_photo2 fields changed
      • changedInput schema / properties / end_seconds / description
        Previous value: -"The end time of the input audio in seconds. Maximum clip length depends on style.generation_mode: realistic 180s, prompted 45s."New value: +"The end time of the input audio in seconds. Maximum clip length depends on style.generation_mode: realistic 300s, prompted 45s."
      • changedInput schema / properties / start_seconds / description
        Previous value: -"The start time of the input audio in seconds. Maximum clip length depends on style.generation_mode: realistic 180s, prompted 45s."New value: +"The start time of the input audio in seconds. Maximum clip length depends on style.generation_mode: realistic 300s, prompted 45s."
    • Changedai_video_editor_create_video5 fields changed
      • changedInput schema / properties / end_seconds / description
        Previous value: -"End time of your clip in seconds. Must be greater than `start_seconds`. Minimum duration depends on model: `gemini-omni`: 3s, `ltx-2.3`: 0.5s. Maximum duration depends on model: `gemini-omni`: 10s, `ltx-2.3`: 45s."New value: +"End time of your clip in seconds. Must be greater than `start_seconds`. Minimum duration depends on model: `gemini-omni-1.1`: 3s, `ltx-2.3`: 0.5s. Maximum duration depends on model: `gemini-omni-1.1`: 10s, `ltx-2.3`: 45s."
      • changedInput schema / properties / model / description
        Previous value: -"Editing model. Defaults to `ltx-2.3` for free tier and `gemini-omni` for paid. Use `ltx-2.3` for LTX video edit."New value: +"Editing model. Defaults to `ltx-2.3` for free tier and `gemini-omni-1.1` for paid. `gemini-omni` is deprecated; use `gemini-omni-1.1` instead."
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "gemini-omni",
        -  "ltx-2.3"
        -]New value: +[
        +  "gemini-omni-1.1",
        +  "gemini-omni",
        +  "ltx-2.3"
        +]
      • changedInput schema / properties / model / example
        Previous value: -"gemini-omni"New value: +"gemini-omni-1.1"
      • changedInput schema / properties / resolution / description
        Previous value: -"Output resolution. Defaults to `480p` for free tier and `720p` for paid. Google Omni supports 720p only; LTX-2.3 supports 480p, 720p, and 1080p."New value: +"Output resolution. Defaults to `480p` for free tier and `720p` for paid. `gemini-omni-1.1` and deprecated `gemini-omni` support 720p and 1080p; LTX-2.3 supports 480p, 720p, and 1080p."
    • Changedimage_to_video_create_video6 fields changed
      • changedInput schema / properties / assets / properties / end_image_file_path / description
        Previous value: -"The image to use as the last frame of the video.\n\n* **`kling-2.6`**: Supports 1080p.\n* **`kling-3.0`**: Supports 720p, 1080p, 4k.\n* **`ltx-2.3`**: Supports 480p, 720p, 1080p.\n* **`minimax-h3`**: Not supported\n* **`seedance-1.5`**: Supports 480p, 720p, 1080p.\n* **`seedance-2.0`**: Supports 480p, 720p.\n* **`seedance-2.0-mini`**: Supports 480p, 720p.\n* **`seedance-2.5`**: Supports 480p, 720p.\n* **`sora-2`**: Not supported\n* **`veo3.1`**: Supports 720p, 1080p. Requires a duration of 8 seconds or less.\n* **`veo3.1-lite`**: Supports 720p, 1080p. Requires a duration of 8 seconds or less.\n* **`wan-2.2`**: Not supported\n"New value: +"The image to use as the last frame of the video.\n\n* **`gemini-omni-1.1`**: Supports 360p, 720p, 1080p, 4k.\n* **`kling-2.6`**: Supports 1080p.\n* **`kling-3.0`**: Supports 720p, 1080p, 4k.\n* **`ltx-2.3`**: Supports 480p, 720p, 1080p.\n* **`ltx-2.5`**: Supports 480p, 720p, 1080p.\n* **`minimax-h3`**: Not supported\n* **`seedance-1.5`**: Supports 480p, 720p, 1080p.\n* **`seedance-2.0`**: Supports 480p, 720p.\n* **`seedance-2.0-mini`**: Supports 480p, 720p.\n* **`seedance-2.5`**: Supports 480p, 720p.\n* **`sora-2`**: Not supported\n* **`veo3.1`**: Supports 720p, 1080p. Requires a duration of 8 seconds or less.\n* **`veo3.1-lite`**: Supports 720p, 1080p. Requires a duration of 8 seconds or less.\n* **`wan-2.2`**: Not supported\n"
      • changedInput schema / properties / audio / description
        Previous value: -"Whether to include audio in the video. Defaults to `false` if not specified.\n\nAudio support varies by model:\n* **`kling-2.6`**: Not supported\n* **`kling-3.0`**: Toggle-able: audio adds extra credits when enabled\n* **`ltx-2.3`**: Toggle-able: no additional credits for audio\n* **`minimax-h3`**: Toggle-able: no additional credits for audio\n* **`seedance-1.5`**: Toggle-able: audio adds extra credits when enabled\n* **`seedance-2.0`**: Toggle-able: no additional credits for audio\n* **`seedance-2.0-mini`**: Toggle-able: no additional credits for audio\n* **`seedance-2.5`**: Toggle-able: no additional credits for audio\n* **`sora-2`**: Toggle-able: no additional credits for audio\n* **`veo3.1`**: Toggle-able: audio adds extra credits when enabled\n* **`veo3.1-lite`**: Toggle-able: audio adds extra credits when enabled\n* **`wan-2.2`**: Not supported\n"New value: +"Whether to include audio in the video. Defaults to `false` if not specified.\n\nAudio support varies by model:\n* **`gemini-omni-1.1`**: Not supported\n* **`kling-2.6`**: Not supported\n* **`kling-3.0`**: Toggle-able: audio adds extra credits when enabled\n* **`ltx-2.3`**: Toggle-able: no additional credits for audio\n* **`ltx-2.5`**: Toggle-able: no additional credits for audio\n* **`minimax-h3`**: Toggle-able: no additional credits for audio\n* **`seedance-1.5`**: Toggle-able: audio adds extra credits when enabled\n* **`seedance-2.0`**: Toggle-able: no additional credits for audio\n* **`seedance-2.0-mini`**: Toggle-able: no additional credits for audio\n* **`seedance-2.5`**: Toggle-able: no additional credits for audio\n* **`sora-2`**: Toggle-able: no additional credits for audio\n* **`veo3.1`**: Toggle-able: audio adds extra credits when enabled\n* **`veo3.1-lite`**: Toggle-able: audio adds extra credits when enabled\n* **`wan-2.2`**: Not supported\n"
      • changedInput schema / properties / end_seconds / description
        Previous value: -"The total duration of the output video in seconds. Supported durations depend on the chosen model:\n\n* **`kling-2.6`**: 5, 10\n* **`kling-3.0`**: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`ltx-2.3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30\n* **`minimax-h3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30\n* **`seedance-1.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12\n* **`seedance-2.0`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`seedance-2.0-mini`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`seedance-2.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30\n* **`sora-2`**: 4, 8, 12, 24, 36, 48, 60\n* **`veo3.1`**: 4, 6, 8, 16, 24, 32, 40, 48, 56\n* **`veo3.1-lite`**: 4, 6, 8, 16, 24, 32, 40, 48, 56\n* **`wan-2.2`**: 3, 4, 5, 6, 7, 8, 9, 10, 15\n"New value: +"The total duration of the output video in seconds. Supported durations depend on the chosen model:\n\n* **`gemini-omni-1.1`**: 3, 4, 5, 6, 7, 8, 9, 10\n* **`kling-2.6`**: 5, 10\n* **`kling-3.0`**: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`ltx-2.3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30\n* **`ltx-2.5`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60\n* **`minimax-h3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30\n* **`seedance-1.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12\n* **`seedance-2.0`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`seedance-2.0-mini`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`seedance-2.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30\n* **`sora-2`**: 4, 8, 12, 24, 36, 48, 60\n* **`veo3.1`**: 4, 6, 8, 16, 24, 32, 40, 48, 56\n* **`veo3.1-lite`**: 4, 6, 8, 16, 24, 32, 40, 48, 56\n* **`wan-2.2`**: 3, 4, 5, 6, 7, 8, 9, 10, 15\n"
      • changedInput schema / properties / model / description
        Previous value: -"The AI model to use for video generation.\n\n* `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`.\n* `kling-2.6`: Great for action, motion blur, and camera moves.\n* `kling-3.0`: Best overall quality for cinematic storytelling.\n* `ltx-2.3`: Fastest output. Best for rapid iteration.\n* `minimax-h3`: Reference-driven video with native audio.\n* `seedance-1.5`: Smooth, consistent motion with precision.\n* `seedance-2.0`: Top quality with reference-to-video control.\n* `seedance-2.0-mini`: Fast, consistent video with strong motion quality\n* `seedance-2.5`: Highest quality with superior realism, detail, and motion\n* `sora-2`: Open AI's model. Great for creativity and viral clips.\n* `veo3.1`: Google's model. Highest realism and detail.\n* `veo3.1-lite`: Veo quality at a more accessible cost.\n* `wan-2.2`: Strong physics, camera moves, and motion.\n\nIf you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`."New value: +"The AI model to use for video generation.\n\n* `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`.\n* `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output.\n* `kling-2.6`: Best for action, motion blur, and controlled camera moves.\n* `kling-3.0`: Best for cinematic stories, references, and optional audio.\n* `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `minimax-h3`: Great for reference-driven clips with native audio and longer durations.\n* `seedance-1.5`: Best for smooth, consistent motion with an end frame.\n* `seedance-2.0`: Best for reference-led clips with precise subject control.\n* `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio.\n* `seedance-2.5`: Best for premium realism, detail, and natural motion.\n* `sora-2`: Best for creative concepts and longer clips with audio.\n* `veo3.1`: Best for romantic interactions and expressive action, with realistic detail.\n* `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1.\n* `wan-2.2`: Best for physical motion, action, and camera movement.\n\nIf you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`."
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "default",
        -  "ltx-2",
        -  "ltx-2.3",
        -  "minimax-h3",
        -  "wan-2.2",
        -  "seedance-1.5",
        -  "seedance-2.0",
        -  "seedance-2.0-mini",
        -  "seedance-2.5",
        -  "kling-2.5",
        -  "kling-2.6",
        -  "kling-3.0",
        -  "veo3.1",
        -  "veo3.1-lite",
        -  "sora-2",
        -  "kling-1.6",
        -  "seedance",
        -  "kling-2.5-audio",
        -  "veo3.1-audio"
        -]New value: +[
        +  "default",
        +  "ltx-2",
        +  "ltx-2.3",
        +  "ltx-2.5",
        +  "minimax-h3",
        +  "wan-2.2",
        +  "seedance-1.5",
        +  "seedance-2.0",
        +  "seedance-2.0-mini",
        +  "seedance-2.5",
        +  "kling-2.5",
        +  "kling-2.6",
        +  "kling-3.0",
        +  "gemini-omni-1.1",
        +  "veo3.1",
        +  "veo3.1-lite",
        +  "sora-2",
        +  "kling-1.6",
        +  "seedance",
        +  "kling-2.5-audio",
        +  "veo3.1-audio"
        +]
      • changedInput schema / properties / resolution / description
        Previous value: -"Controls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers.\n\n* **`kling-2.6`**: Supports 720p, 1080p.\n* **`kling-3.0`**: Supports 720p, 1080p, 4k.\n* **`ltx-2.3`**: Supports 480p, 720p, 1080p.\n* **`minimax-h3`**: Supports 480p, 720p, 1080p.\n* **`seedance-1.5`**: Supports 480p, 720p, 1080p.\n* **`seedance-2.0`**: Supports 480p, 720p.\n* **`seedance-2.0-mini`**: Supports 480p, 720p.\n* **`seedance-2.5`**: Supports 480p, 720p.\n* **`sora-2`**: Supports 720p.\n* **`veo3.1`**: Supports 720p, 1080p.\n* **`veo3.1-lite`**: Supports 720p, 1080p.\n* **`wan-2.2`**: Supports 480p, 720p, 1080p.\n"New value: +"Controls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers.\n\n* **`gemini-omni-1.1`**: Supports 360p, 720p, 1080p, 4k.\n* **`kling-2.6`**: Supports 720p, 1080p.\n* **`kling-3.0`**: Supports 720p, 1080p, 4k.\n* **`ltx-2.3`**: Supports 480p, 720p, 1080p.\n* **`ltx-2.5`**: Supports 480p, 720p, 1080p.\n* **`minimax-h3`**: Supports 480p, 720p, 1080p.\n* **`seedance-1.5`**: Supports 480p, 720p, 1080p.\n* **`seedance-2.0`**: Supports 480p, 720p.\n* **`seedance-2.0-mini`**: Supports 480p, 720p.\n* **`seedance-2.5`**: Supports 480p, 720p.\n* **`sora-2`**: Supports 720p.\n* **`veo3.1`**: Supports 720p, 1080p.\n* **`veo3.1-lite`**: Supports 720p, 1080p.\n* **`wan-2.2`**: Supports 480p, 720p, 1080p.\n"
    • Changedtext_to_video_create_video6 fields changed
      • changedInput schema / properties / aspect_ratio / description
        Previous value: -"Determines the aspect ratio of the output video.\n\n* **`kling-2.6`**: Supports 9:16, 16:9, 1:1.\n* **`kling-3.0`**: Supports 9:16, 16:9, 1:1.\n* **`ltx-2.3`**: Supports 9:16, 16:9, 1:1.\n* **`minimax-h3`**: Supports 16:9, 9:16, 1:1.\n* **`seedance-1.5`**: Supports 9:16, 16:9, 1:1.\n* **`seedance-2.0`**: Supports 9:16, 16:9, 1:1.\n* **`seedance-2.0-mini`**: Supports 9:16, 16:9, 1:1.\n* **`seedance-2.5`**: Supports 9:16, 16:9, 1:1.\n* **`sora-2`**: Supports 9:16, 16:9.\n* **`veo3.1`**: Supports 9:16, 16:9.\n* **`veo3.1-lite`**: Supports 9:16, 16:9.\n* **`wan-2.2`**: Supports 9:16, 16:9, 1:1.\n"New value: +"Determines the aspect ratio of the output video.\n\n* **`gemini-omni-1.1`**: Supports 16:9, 9:16.\n* **`kling-2.6`**: Supports 9:16, 16:9, 1:1.\n* **`kling-3.0`**: Supports 9:16, 16:9, 1:1.\n* **`ltx-2.3`**: Supports 9:16, 16:9, 1:1.\n* **`ltx-2.5`**: Supports 9:16, 16:9, 1:1.\n* **`minimax-h3`**: Supports 16:9, 9:16, 1:1.\n* **`seedance-1.5`**: Supports 9:16, 16:9, 1:1.\n* **`seedance-2.0`**: Supports 9:16, 16:9, 1:1.\n* **`seedance-2.0-mini`**: Supports 9:16, 16:9, 1:1.\n* **`seedance-2.5`**: Supports 9:16, 16:9, 1:1.\n* **`sora-2`**: Supports 9:16, 16:9.\n* **`veo3.1`**: Supports 9:16, 16:9.\n* **`veo3.1-lite`**: Supports 9:16, 16:9.\n* **`wan-2.2`**: Supports 9:16, 16:9, 1:1.\n"
      • changedInput schema / properties / audio / description
        Previous value: -"Whether to include audio in the video. Defaults to `false` if not specified.\n\nAudio support varies by model:\n* **`kling-2.6`**: Not supported\n* **`kling-3.0`**: Toggle-able: audio adds extra credits when enabled\n* **`ltx-2.3`**: Toggle-able: no additional credits for audio\n* **`minimax-h3`**: Toggle-able: no additional credits for audio\n* **`seedance-1.5`**: Toggle-able: audio adds extra credits when enabled\n* **`seedance-2.0`**: Toggle-able: no additional credits for audio\n* **`seedance-2.0-mini`**: Toggle-able: no additional credits for audio\n* **`seedance-2.5`**: Toggle-able: no additional credits for audio\n* **`sora-2`**: Toggle-able: no additional credits for audio\n* **`veo3.1`**: Toggle-able: audio adds extra credits when enabled\n* **`veo3.1-lite`**: Toggle-able: audio adds extra credits when enabled\n* **`wan-2.2`**: Not supported\n"New value: +"Whether to include audio in the video. Defaults to `false` if not specified.\n\nAudio support varies by model:\n* **`gemini-omni-1.1`**: Not supported\n* **`kling-2.6`**: Not supported\n* **`kling-3.0`**: Toggle-able: audio adds extra credits when enabled\n* **`ltx-2.3`**: Toggle-able: no additional credits for audio\n* **`ltx-2.5`**: Toggle-able: no additional credits for audio\n* **`minimax-h3`**: Toggle-able: no additional credits for audio\n* **`seedance-1.5`**: Toggle-able: audio adds extra credits when enabled\n* **`seedance-2.0`**: Toggle-able: no additional credits for audio\n* **`seedance-2.0-mini`**: Toggle-able: no additional credits for audio\n* **`seedance-2.5`**: Toggle-able: no additional credits for audio\n* **`sora-2`**: Toggle-able: no additional credits for audio\n* **`veo3.1`**: Toggle-able: audio adds extra credits when enabled\n* **`veo3.1-lite`**: Toggle-able: audio adds extra credits when enabled\n* **`wan-2.2`**: Not supported\n"
      • changedInput schema / properties / end_seconds / description
        Previous value: -"The total duration of the output video in seconds. Supported durations depend on the chosen model:\n\n* **`kling-2.6`**: 5, 10\n* **`kling-3.0`**: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`ltx-2.3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30\n* **`minimax-h3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30\n* **`seedance-1.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12\n* **`seedance-2.0`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`seedance-2.0-mini`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`seedance-2.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30\n* **`sora-2`**: 4, 8, 12, 24, 36, 48, 60\n* **`veo3.1`**: 4, 6, 8, 16, 24, 32, 40, 48, 56\n* **`veo3.1-lite`**: 4, 6, 8, 16, 24, 32, 40, 48, 56\n* **`wan-2.2`**: 3, 4, 5, 6, 7, 8, 9, 10, 15\n"New value: +"The total duration of the output video in seconds. Supported durations depend on the chosen model:\n\n* **`gemini-omni-1.1`**: 3, 4, 5, 6, 7, 8, 9, 10\n* **`kling-2.6`**: 5, 10\n* **`kling-3.0`**: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`ltx-2.3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30\n* **`ltx-2.5`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60\n* **`minimax-h3`**: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30\n* **`seedance-1.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12\n* **`seedance-2.0`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`seedance-2.0-mini`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\n* **`seedance-2.5`**: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30\n* **`sora-2`**: 4, 8, 12, 24, 36, 48, 60\n* **`veo3.1`**: 4, 6, 8, 16, 24, 32, 40, 48, 56\n* **`veo3.1-lite`**: 4, 6, 8, 16, 24, 32, 40, 48, 56\n* **`wan-2.2`**: 3, 4, 5, 6, 7, 8, 9, 10, 15\n"
      • changedInput schema / properties / model / description
        Previous value: -"The AI model to use for video generation.\n\n* `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`.\n* `kling-2.6`: Great for action, motion blur, and camera moves.\n* `kling-3.0`: Best overall quality for cinematic storytelling.\n* `ltx-2.3`: Fastest output. Best for rapid iteration.\n* `minimax-h3`: Reference-driven video with native audio.\n* `seedance-1.5`: Smooth, consistent motion with precision.\n* `seedance-2.0`: Top quality with reference-to-video control.\n* `seedance-2.0-mini`: Fast, consistent video with strong motion quality\n* `seedance-2.5`: Highest quality with superior realism, detail, and motion\n* `sora-2`: Open AI's model. Great for creativity and viral clips.\n* `veo3.1`: Google's model. Highest realism and detail.\n* `veo3.1-lite`: Veo quality at a more accessible cost.\n* `wan-2.2`: Strong physics, camera moves, and motion.\n\nIf you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`."New value: +"The AI model to use for video generation.\n\n* `default`: uses our currently recommended model for general use. For paid tiers, defaults to `kling-3.0`. For free tiers, it defaults to `ltx-2.3`.\n* `gemini-omni-1.1`: Best for precise short clips, first/last frames, and high-resolution output.\n* `kling-2.6`: Best for action, motion blur, and controlled camera moves.\n* `kling-3.0`: Best for cinematic stories, references, and optional audio.\n* `ltx-2.3`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `ltx-2.5`: Fastest for general scenes, long clips, audio, and rapid iteration.\n* `minimax-h3`: Great for reference-driven clips with native audio and longer durations.\n* `seedance-1.5`: Best for smooth, consistent motion with an end frame.\n* `seedance-2.0`: Best for reference-led clips with precise subject control.\n* `seedance-2.0-mini`: Faster reference-led clips with consistent motion and audio.\n* `seedance-2.5`: Best for premium realism, detail, and natural motion.\n* `sora-2`: Best for creative concepts and longer clips with audio.\n* `veo3.1`: Best for romantic interactions and expressive action, with realistic detail.\n* `veo3.1-lite`: Balanced realism and audio at a lower cost than Veo 3.1.\n* `wan-2.2`: Best for physical motion, action, and camera movement.\n\nIf you specify the deprecated model value that includes the `-audio` suffix, this will be the same as included `audio` as `true`."
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "default",
        -  "ltx-2",
        -  "ltx-2.3",
        -  "minimax-h3",
        -  "wan-2.2",
        -  "seedance-1.5",
        -  "seedance-2.0",
        -  "seedance-2.0-mini",
        -  "seedance-2.5",
        -  "kling-2.5",
        -  "kling-2.6",
        -  "kling-3.0",
        -  "veo3.1",
        -  "veo3.1-lite",
        -  "sora-2",
        -  "kling-1.6",
        -  "seedance",
        -  "kling-2.5-audio",
        -  "veo3.1-audio"
        -]New value: +[
        +  "default",
        +  "ltx-2",
        +  "ltx-2.3",
        +  "ltx-2.5",
        +  "minimax-h3",
        +  "wan-2.2",
        +  "seedance-1.5",
        +  "seedance-2.0",
        +  "seedance-2.0-mini",
        +  "seedance-2.5",
        +  "kling-2.5",
        +  "kling-2.6",
        +  "kling-3.0",
        +  "gemini-omni-1.1",
        +  "veo3.1",
        +  "veo3.1-lite",
        +  "sora-2",
        +  "kling-1.6",
        +  "seedance",
        +  "kling-2.5-audio",
        +  "veo3.1-audio"
        +]
      • changedInput schema / properties / resolution / description
        Previous value: -"Controls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers.\n\n* **`kling-2.6`**: Supports 720p, 1080p.\n* **`kling-3.0`**: Supports 720p, 1080p, 4k.\n* **`ltx-2.3`**: Supports 480p, 720p, 1080p.\n* **`minimax-h3`**: Supports 480p, 720p, 1080p.\n* **`seedance-1.5`**: Supports 480p, 720p, 1080p.\n* **`seedance-2.0`**: Supports 480p, 720p.\n* **`seedance-2.0-mini`**: Supports 480p, 720p.\n* **`seedance-2.5`**: Supports 480p, 720p.\n* **`sora-2`**: Supports 720p.\n* **`veo3.1`**: Supports 720p, 1080p.\n* **`veo3.1-lite`**: Supports 720p, 1080p.\n* **`wan-2.2`**: Supports 480p, 720p, 1080p.\n"New value: +"Controls the output video resolution. Defaults to `720p` on paid tiers and `480p` on free tiers.\n\n* **`gemini-omni-1.1`**: Supports 360p, 720p, 1080p, 4k.\n* **`kling-2.6`**: Supports 720p, 1080p.\n* **`kling-3.0`**: Supports 720p, 1080p, 4k.\n* **`ltx-2.3`**: Supports 480p, 720p, 1080p.\n* **`ltx-2.5`**: Supports 480p, 720p, 1080p.\n* **`minimax-h3`**: Supports 480p, 720p, 1080p.\n* **`seedance-1.5`**: Supports 480p, 720p, 1080p.\n* **`seedance-2.0`**: Supports 480p, 720p.\n* **`seedance-2.0-mini`**: Supports 480p, 720p.\n* **`seedance-2.5`**: Supports 480p, 720p.\n* **`sora-2`**: Supports 720p.\n* **`veo3.1`**: Supports 720p, 1080p.\n* **`veo3.1-lite`**: Supports 720p, 1080p.\n* **`wan-2.2`**: Supports 480p, 720p, 1080p.\n"
  7. 44 tool updates
    • First observedai_clothes_changer_create_image
    • First observedai_face_editor_edit_image
    • First observedai_gif_generator_create_image
    • First observedai_headshot_generator_create_image
    • First observedai_image_editor_create_image
    • First observedai_image_generator_create_image
    • First observedai_image_upscaler_create_image
    • First observedai_meme_generator_create_image
    • First observedai_qr_code_generator_create_image
    • First observedai_talking_photo_create_talking_photo
    • First observedai_video_editor_create_video
    • First observedai_voice_cloner_create_audio
    • First observedai_voice_generator_create_audio
    • First observedanimation_create_video
    • First observedaudio_projects_delete
    • First observedaudio_projects_retrieve_details
    • First observedaudio_to_video_create_video
    • First observedauto_subtitle_generator_create_video
    • First observedbody_swap_create_image
    • First observedcharacter_replace_create_video
    • First observedface_detection_detect_faces
    • First observedface_detection_retrieve_details
    • First observedface_swap_create_video
    • First observedface_swap_photo_create_image
    • First observedfetch_audio_download
    • First observedfetch_image_download
    • First observedfetch_video_download
    • First observedhead_swap_create_image
    • First observedimage_background_remover_create_image
    • First observedimage_projects_delete
    • First observedimage_projects_retrieve_details
    • First observedimage_to_video_create_video
    • First observedlip_sync_create_video
    • First observedphoto_colorizer_create_image
    • First observedping
    • First observedtext_to_video_create_video
    • First observedupload_file_to_presigned_url
    • First observedvideo_assets_generate_presigned_url
    • First observedvideo_projects_delete
    • First observedvideo_projects_retrieve_details
    • First observedvideo_to_video_create_video
    • First observedwait_for_audio_project
    • First observedwait_for_image_project
    • First observedwait_for_video_project

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Analyze LinkedIn & email outreach campaigns, track pipeline performance, and review lead conversations for RevOps, Sales Managers, and SDR teams.
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources