BlitzReels Video Editor
Server Details
Create, edit, reframe, caption, organize, generate, and export short-form videos with BlitzReels.
- Status
- Healthy
- Uptime
- 99.3% over 71 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 141 tools
Multiple clusters of near-duplicate tools create real misselection risk: timeline_trim_apply vs update_timeline_clip vs batch_update_timeline_clips vs editor_items_move vs editor_composition_edit all mutate timeline items, and projects_get vs projects_inspect vs editor_snapshot_get all read project state. Media ingest is split across media_import_url, media_import_inspect, media_import_scan_page, media_upload_file, media_upload_start and media_upload_finish with overlapping intent. Captions vs editor_text_set vs add_text_overlay are reasonably separated, but on the whole boundaries are fuzzy at scale.
Most tools follow a domain-prefixed snake_case pattern (clips_, carousels_, captions_, media_, timeline_, series_, publishing_, generation_), which is readable and predictable. However, a substantial legacy subset drops the prefix and uses bare verb_noun or noun_verb forms (add_text_overlay, add_transition, mute_clip_audio, update_timeline_clip, delete_timeline_items, batch_update_timeline_clips), and a few invert order (exports_list vs clips_list). The mix forces an agent to learn two conventions.
141 tools for a video editor is an extreme mismatch; even with a broad domain (clipping, carousels, generation, publishing, learning loops), this volume far exceeds what an agent can survey and choose from reliably. Many tools are micro-operations (timeline_split_preview, media_upscale_estimate, carousels_slides_undo) that could be consolidated into fewer parameterized tools.
The surface covers essentially every lifecycle in the domain: project creation and inspection, media import/upload/transcript, timeline editing with preview/apply/undo, captions, carousels, generation planning and jobs, storyboards, series, publishing scheduling, exports, and analytics/feedback. No obvious dead ends — even recovery, repair, and idempotency paths exist.
Available Tools
141 toolsadd_text_overlayAdd Title CardBIdempotentInspect
Add an opening title card (hook) or generic text overlay to a project timeline. Defaults to classic white: black text on a white card.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | title_card is an opening hook. overlay is generic on-video text. | title_card |
| name | No | ||
| size | No | Title-card size. Ignored for overlay. | default |
| text | Yes | ||
| theme | No | Title-card look. classic_white is black text on a white card. Ignored for overlay. | classic_white |
| projectId | Yes | UUID string. | |
| layerIndex | No | ||
| startSeconds | No | ||
| idempotencyKey | Yes | Retry key. Reuse only with identical inputs. | |
| durationSeconds | No | ||
| expectedRevision | No | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| result | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| projectId | Yes | |
| operationId | Yes | |
| baseRevision | Yes | |
| mutationReceipt | Yes | |
| createdTimelineItemIds | Yes | |
| deletedTimelineItemIds | Yes | |
| affectedTimelineItemIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the agent knows this is a mutating but safe operation. The description adds only the default theme ('classic white') and does not disclose other behavioral traits like interaction with existing timeline items or the impact of layerIndex. With annotations covering the core safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately states the tool's purpose and its default. No wasted words; it front-loads the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters, including two modes (overlay vs title_card) and several parameters that are ignored based on the mode, the description is too thin. It does not explain when to use overlay vs title_card, nor does it mention that certain parameters (size, theme) are ignored for overlay. Since an output schema exists, return values are covered, but the usage context is incomplete for such a configurable tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 55%, so a significant portion of parameters (name, layerIndex, startSeconds, durationSeconds, text) lack descriptions in the schema. The tool description adds no parameter guidance beyond mentioning the default theme, which is already in the schema. It fails to compensate for the undocumented parameters, making this a weak area.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resource 'opening title card (hook) or generic text overlay to a project timeline,' which is specific and unambiguous. It does not explicitly differentiate from sibling tools like timeline_media_add or add_transition, but the purpose is clear enough for an agent to understand what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives, nor does it mention scenarios where another tool would be more appropriate. The distinction between 'overlay' and 'title_card' is only hinted at by the parenthetical, but no concrete usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_transitionAdd TransitionCIdempotentInspect
Add a timed transition effect, optionally attached to one timeline item and paired with sound.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| easing | No | easeInOut | |
| preset | No | flash | |
| intensity | No | ||
| projectId | Yes | UUID string. | |
| includeSfx | No | ||
| layerIndex | No | ||
| startSeconds | Yes | ||
| idempotencyKey | Yes | Retry key. Reuse only with identical inputs. | |
| timelineItemId | No | ||
| durationSeconds | No | ||
| expectedRevision | No | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| result | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| projectId | Yes | |
| operationId | Yes | |
| baseRevision | Yes | |
| mutationReceipt | Yes | |
| createdTimelineItemIds | Yes | |
| deletedTimelineItemIds | Yes | |
| affectedTimelineItemIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-destructive, idempotent, open-world mutation. The description adds no further behavioral context such as what exactly is created, permissions required, side effects on the timeline, or how expectedRevision affects the write. It does not contradict annotations, but it does not enrich them either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. However, it is too sparse for a 12-parameter mutation tool with low schema coverage, so its brevity becomes under-specification rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter tool with 25% schema coverage, existing annotations, and an output schema, this description is incomplete. It gives the purpose but omits the parameter meanings and usage context needed to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema description coverage, the description must compensate for 9 undocumented parameters. It indirectly touches on timelineItemId (optional attachment) and includeSfx (paired with sound), but ignores name, easing, preset, intensity, layerIndex, durationSeconds, and expectedRevision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Add a timed transition effect.' It distinguishes itself from timeline siblings like add_text_overlay or timeline_audio_add by resource type, though it does not explicitly name an alternative. Clarity is high but lacks sibling routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. The phrase 'optionally attached to one timeline item and paired with sound' implies the tool can be used standalone or attached, but this is context about parameters, not selection guidance versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_update_timeline_clipsBatch Update Timeline ClipsADestructiveIdempotentInspect
Update timing, trim, layer, or state for up to 100 timeline items in one sequence transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | Each update needs at least one field to change besides timelineItemId. | |
| projectId | Yes | UUID string. | |
| idempotencyKey | Yes | Retry key. Reuse only with identical inputs. | |
| expectedRevision | No | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| result | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| projectId | Yes | |
| operationId | Yes | |
| baseRevision | Yes | |
| mutationReceipt | Yes | |
| createdTimelineItemIds | Yes | |
| deletedTimelineItemIds | Yes | |
| affectedTimelineItemIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive, idempotent and closed-world behavior, so the bar is lower. The description adds real value by disclosing atomicity ('one sequence transaction') and the 100-item ceiling, which the annotations do not cover. It omits, however, what happens on conflict or partial failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste; the resource, the scope, and the batch limit all land immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema and annotations cover returns and safety, so the description need not restate them. It adequately conveys scope and atomicity, with only expectedRevision conflict semantics left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 loosely maps 'timing, trim, layer, or state' onto the update fields, but adds no syntax or constraint detail beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) plus the resource (timeline clips/items) and the batch scope ('up to 100 timeline items in one sequence transaction'). This distinguishes it from the single-item update_timeline_clip sibling, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'batch' framing and the 100-item cap imply when to prefer this over the single-item sibling, but there is no explicit when-to-use/when-not statement, no mention of expectedRevision conflict behavior, and no guidance on partial failures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captions_look_applyApply Caption LookADestructiveIdempotentInspect
Apply a verified caption look to one project. Preserves word overrides unless clearWordOverrides=true. Existing captions are restyled; spoken audio is preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| lookId | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | No | UUID string. | |
| idempotencyKey | Yes | ||
| clearWordOverrides | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds genuinely useful detail beyond them: it discloses that word overrides are preserved by default and only cleared when clearWordOverrides=true, and that existing captions are restyled while spoken audio is preserved. That explains exactly what the 'destructive' behavior touches, though it says nothing about permissions or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, then the override caveat, then the preservation guarantee. No filler and every sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the mutation's effects and preservation guarantees adequately for a destructive tool. It is still thin on permission/authorization context and on how the required idempotencyKey should be supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%, so the description must compensate, and it does explain the semantics of clearWordOverrides (the flag that controls override destruction). However, projectId, lookId, workspaceId, and idempotencyKey receive no added meaning in the description, leaving most parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Apply') and resource ('a verified caption look') with an explicit scope of 'one project', so the action is unambiguous. It does not explicitly differentiate itself from adjacent caption siblings like captions_themes_list or captions_source_prepare, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'verified' implies a prerequisite that the look must first be validated, giving some implied usage context, but there is no explicit when-to-use, when-not-to-use, or named alternative. The agent has to infer the workflow ordering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captions_source_preparePrepare Source CaptionsADestructiveIdempotentInspect
Restore editable project captions from the selected source's completed canonical transcript. Keeps the full recording and avoids duplicate captions on identical retries. Requires source transcription first; no-speech is an explicit successful state.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | UUID string. | |
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=true, so the burden is lighter, yet the description still adds real context: retry behavior ('avoids duplicate captions on identical retries'), that the full recording is preserved, and that no-speech is a legitimate success rather than a failure. It stops short of saying which existing editable captions are overwritten or what authorizations are needed, so it is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, with the core action front-loaded and each clause carrying distinct information (source, retry/idempotency behavior, precondition, edge case). No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover safety and idempotency. The description supplies the prerequisite and the no-speech success state, leaving only minor gaps around overwrite scope and parameter mapping.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only half the parameters carry schema descriptions, and those present just say 'UUID string'. The description adds indirect meaning for idempotencyKey ('identical retries') and projectId ('project captions'), but it never clarifies the assetId-vs-projectId relationship or the source-selection semantics, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb and resource ('Restore editable project captions from the selected source's completed canonical transcript'), which is clearly distinct from siblings like captions_words_list or media_transcript_get. It does not explicitly name a sibling to disambiguate against, but the resource is precise enough for an agent to select it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a meaningful precondition ('Requires source transcription first') and defines an edge outcome ('no-speech is an explicit successful state'), which tells the agent when the call is valid. However, it never names an alternative tool or a when-not condition, so routing against e.g. captions_words_correct or captions_look_apply is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captions_themes_listList Caption ThemesARead-onlyIdempotentInspect
List built-in caption looks and saved caption themes available to a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| includeSavedThemes | No | Include saved workspace caption themes. | |
| includeBuiltInLooks | No | Include built-in caption looks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| themes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds that it includes both built-in looks and saved themes, which is useful context, but does not disclose additional behaviors like pagination or ordering. This is adequate given the annotations, but not overly rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the action and scope. No redundant words or filler, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation, the description, combined with comprehensive annotations and a full output schema, provides complete context. There are no missing details about return values or safety, and the tool's simplicity means no additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have full descriptions in the input schema, achieving 100% schema coverage. The description itself does not add parameter-level meaning, but the schema is sufficient, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists built-in caption looks and saved caption themes for a workspace, using a specific verb and resource. It distinguishes itself from sibling tools by focusing on caption themes, which is unique among the provided tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a simple listing tool, but provides no explicit guidance on when to use it versus alternatives or when not to use it. Since no alternative theme-listing tools exist among siblings, this is acceptable but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captions_words_correctCorrect Caption WordsADestructiveIdempotentInspect
Replace selected caption words by their stable IDs. Preserves timing and the other captions; this does not change the spoken audio.
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds genuinely useful scope beyond that: it clarifies that timing, other captions, and the spoken audio are preserved, which narrows what "destructive" means here. It stops short of addressing partial-failure or auth behavior, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and followed by the preservation guarantee. No filler, and the second clause carries real information rather than restating the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description covers the action and its side effects adequately, but omits guidance on the required idempotencyKey and the batch constraint (max 200 updates), which an agent must know to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only projectId has a trivial "UUID string" note). The description partially compensates by explaining that updates target words via "stable IDs" (wordId), but leaves idempotencyKey, workspaceId, array size limits, and the text-length constraint entirely unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Replace selected caption words") and the mechanism ("by their stable IDs"), which is easy to distinguish from the list-oriented sibling captions_words_list. It does not explicitly name or contrast any sibling, so it falls just short of the top mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (correcting already-existing caption words identified by ID, which presupposes a prior captions_words_list call) but never states when to use this versus alternatives or any prerequisites. Usage is inferable but not documented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captions_words_listRead Caption WordsARead-onlyIdempotentInspect
Read bounded editable caption words and stable word IDs for one project, optionally matching text.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| offset | Yes | ||
| matchText | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is free. The description adds real context beyond that: results are 'bounded' (paginated), the words are 'editable' (i.e. subsequently mutable via the correct sibling), and IDs are 'stable' so they can be referenced later.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-packed sentence with the read action and scope front-loaded and no filler. Density is high but each clause (bounded, editable, stable IDs, optional match) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. For a 5-parameter read tool the description covers scope, filtering and pagination at a high level but omits ordering behavior, what 'bounded' limits actually are, and how stable IDs map to downstream correction calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only projectId is annotated), so the description must compensate. It does so partially: 'one project' scopes projectId/workspaceId, 'optionally matching text' explains matchText, and 'bounded' signals limit/offset pagination. It still gives no bounds or ordering semantics for limit/offset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (read) plus resource (caption words + stable word IDs) and scope (one project), with an optional text filter. It reads clearly as a listing tool against siblings like captions_words_correct, though it never names the alternative that mutates words.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: reading is clearly the safe/fetch direction, and 'for one project' plus 'optionally matching text' hints at when it applies. There is no explicit when-not guidance or pointer to sibling tools such as captions_words_correct or captions_themes_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_apply_brandCarousel apply brandCDestructiveIdempotentInspect
Replace this carousel's styling with the workspace's saved brand theme.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | No | |
| frame | No | |
| style | No | |
| locale | No | |
| slides | No | |
| can_undo | No | |
| platform | No | |
| revision | No | |
| warnings | No | |
| templates | No | |
| font_faces | No | |
| project_id | No | |
| next_actions | No | |
| mutationReceipt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is covered structurally. The description adds no behavioral context beyond that — it doesn't say what existing styling is lost (overrides? per-slide edits?), that the operation is idempotent and safe to retry, or that it is scoped to one carousel.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, and the destructive verb 'Replace' leads. It is efficient, though the brevity tips into under-specification for a destructive tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with three sibling 'apply' tools and an undocumented optional workspaceId, the description leaves too much open: it never says whether all slides are re-styled, whether manual edits are lost, or how it differs from carousels_apply_theme. An output schema exists, so return values need not be explained, but the selection and impact gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% — only projectId carries a (generic 'UUID string.') description, while workspaceId and idempotencyKey are undocumented in the schema. The description compensates for none of this: it doesn't explain the optional workspaceId, nor whether idempotencyKey enables safe retries of this destructive replace.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific action (replace styling) and the source applied (the workspace's saved brand theme), so the agent knows what the tool does. However, it makes no attempt to distinguish itself from the near-identical siblings carousels_apply_theme and carousels_apply_template, which is the highest-risk confusion for this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no when-not-to-use guidance, and no reference to the alternative 'apply theme' or 'apply template' tools. The agent is left to infer selection purely from the word 'brand' in the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_apply_templateCarousel apply templateCDestructiveIdempotentInspect
Replace one carousel slide with a saved private template.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| slideIndex | Yes | ||
| workspaceId | No | ||
| idempotencyKey | Yes | ||
| savedTemplateId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | No | |
| frame | No | |
| style | No | |
| locale | No | |
| slides | No | |
| can_undo | No | |
| platform | No | |
| revision | No | |
| warnings | No | |
| templates | No | |
| font_faces | No | |
| project_id | No | |
| next_actions | No | |
| mutationReceipt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is known. The description's use of 'Replace' aligns with the destructive hint and adds that the source must be a saved private template, but it says nothing about authorization needs, what happens to the overwritten slide content, or the destructive scope. With annotations covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is tight, though its brevity is partly what leaves the usage and parameter gaps unfilled.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema removes the need to describe return values, but for a destructive five-parameter mutation the description is too thin: no usage context against numerous siblings, no preconditions, and minimal parameter clarification on top of 20% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (just projectId as 'UUID string.'). The description only loosely maps to savedTemplateId ('saved private template') and slideIndex ('one carousel slide'); it says nothing about idempotencyKey, workspaceId, or the 0–34 slideIndex range. For a 5-param tool at low coverage, the description does not compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (replace), resource (one carousel slide), and source (a saved private template), so the operation is clear. It does not, however, distinguish itself from overlapping siblings such as carousels_apply_theme, carousels_apply_brand, or carousels_patch_slide, all of which also mutate a carousel slide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the dense set of carousel siblings (apply_theme, apply_brand, patch_slide, save_template). No prerequisites, no exclusions, and no indication of when a saved-template replacement is preferable to a theme or brand apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_apply_themeCarousel apply themeCDestructiveIdempotentInspect
Replace this carousel's styling with an existing saved theme.
| Name | Required | Description | Default |
|---|---|---|---|
| themeId | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | No | |
| frame | No | |
| style | No | |
| locale | No | |
| slides | No | |
| can_undo | No | |
| platform | No | |
| revision | No | |
| warnings | No | |
| templates | No | |
| font_faces | No | |
| project_id | No | |
| next_actions | No | |
| mutationReceipt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds that styling is replaced by an existing saved theme, which is consistent with the annotations, but it does not explain what prior styling is lost, auth requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though its extreme brevity leaves important details to other fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with four parameters, 25% schema coverage, and no carousel-id parameter described, the description is incomplete. The output schema and annotations reduce some burden, but they do not excuse the absence of parameter and prerequisite context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, and the description names no parameters or formats. It implies themeId is the 'existing saved theme', but does not explain themeId, projectId, workspaceId, or the required idempotencyKey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Replace') and resource ('this carousel's styling'), plus the source ('existing saved theme'). It does not explicitly differentiate itself from close siblings like carousels_apply_brand or carousels_apply_template, but the verb-resource combination is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as carousels_apply_brand or carousels_apply_template. The agent must infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_cloneClone CarouselCIdempotentInspect
Duplicate a carousel onto a new project. Copies slots. Icon and shot values may be pack filenames or asset:<media_asset_id>.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | No | |
| frame | No | |
| style | No | |
| locale | No | |
| slides | No | |
| can_undo | No | |
| platform | No | |
| revision | No | |
| warnings | No | |
| templates | No | |
| font_faces | No | |
| project_id | No | |
| next_actions | No | |
| mutationReceipt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, and idempotent=true, so the safety profile is covered. The description adds a useful trait — 'Copies slots' — clarifying that slot content is duplicated, but it does not state source-carousel behavior or side effects on the origin. Some added value on top of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the purpose. Little waste, though the trailing icon/shot sentence is misaligned with the actual schema and reads as tangential rather than essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but with 4 parameters at 25% coverage the description should explain the required idempotencyKey/projectId semantics and the optional name/workspaceId. It omits these and instead references fields not present in the schema, leaving the definition inadequate for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only projectId documented), so the description must compensate — and it does not. Worse, it discusses 'Icon and shot values' that do not correspond to any of the four parameters (name, projectId, workspaceId, idempotencyKey) and nested objects are absent, so this reference is confusing rather than clarifying. name, workspaceId, and idempotencyKey are left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Duplicate a carousel') plus a target scope ('onto a new project'), which cleanly distinguishes it from siblings like carousels_apply_template and carousels_migrate. It stops short of explicitly naming an alternative, but the core operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use / when-not-to-use guidance and no alternative tool is named. 'Onto a new project' implies context but leaves the agent to infer the conditions that select this over carousels_migrate or carousels_apply_template.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_compileCompile CarouselCDestructiveIdempotentInspect
Create or replace a carousel project from a slide document. Server owns chip layout, safezones, and exact export pixels.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| style | No | ||
| locale | No | ||
| slides | Yes | ||
| platform | Yes | ||
| series_id | No | ||
| project_id | No | ||
| workspaceId | No | ||
| clear_existing | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| frame | Yes | |
| job_id | No | |
| slides | Yes | |
| platform | Yes | |
| revision | Yes | |
| warnings | Yes | |
| project_id | Yes | |
| slide_count | Yes | |
| next_actions | Yes | |
| ai_image_run_id | No | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true, idempotent=true, readOnly=false, and openWorld=false, so the safety profile is covered. The description adds genuinely useful ownership context ('Server owns chip layout, safezones, and exact export pixels'), telling the agent the server controls pixel-level layout. However it does not explain the create-vs-replace trigger, the role of idempotencyKey, or what clear_existing destroys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler, and the operation plus its scope are front-loaded. Nothing is wasted, though the extreme brevity is part of the completeness problem rather than a virtue here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex mutation with 10 parameters, nested objects, and enum-driven visual kinds, and the description covers almost none of that surface. An output schema exists so return values needn't be explained, but the upsert trigger (project_id), clear_existing, idempotencyKey, and the required 'slides' structure are all undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 10 parameters (project_id, clear_existing, style, locale, idempotencyKey, etc.), so the description carries the full burden and largely fails to. 'From a slide document' loosely gestures at the slides array and 'chip layout' at the style.chip object, but no parameter behavior, format, or required-vs-optional meaning is clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create or replace a carousel project from a slide document'), and 'create or replace' usefully signals upsert semantics. It does not name or distinguish itself from adjacent siblings like carousels_preview, carousels_clone, or carousels_patch_slide, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus carousels_preview (validate first?), carousels_clone, or carousels_patch_slide (incremental edits). No prerequisites, no mention of when a replace is triggered vs a fresh create. The agent is left to infer routing from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_delete_templateCarousel delete templateBDestructiveIdempotentInspect
Delete one saved private carousel slide template.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| idempotencyKey | Yes | ||
| savedTemplateId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | No | |
| frame | No | |
| style | No | |
| locale | No | |
| slides | No | |
| can_undo | No | |
| platform | No | |
| revision | No | |
| warnings | No | |
| templates | No | |
| font_faces | No | |
| project_id | No | |
| next_actions | No | |
| mutationReceipt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description only adds that deletion targets a single 'private' template, which is minor context but nothing about irreversibility, confirmation, or the role of idempotencyKey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, which is appropriately tight for this operation. It is efficient, though arguably under-specified rather than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations carry the destructive/idempotent profile, reducing the description's burden. Still, for a destructive delete with 75% of parameters undocumented, the definition leaves real gaps in usage and parameter guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (just 'UUID string.' on projectId), and the description adds no meaning for savedTemplateId, idempotencyKey, or the optional workspaceId. A delete tool with three required params and near-zero schema docs should have its description compensate, and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete) and a well-scoped resource (one saved private carousel slide template), so an agent can distinguish it from sibling mutations like carousels_delete_theme or carousels_save_template. The 'private' qualifier adds a useful scoping detail, though it doesn't explicitly name competing siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only restates what the tool does; it gives no when-to-use context, no prerequisite/permission hints, and no comparison to alternatives such as carousels_delete_theme or the other carousel lifecycle tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_delete_themeCarousel delete themeCDestructiveIdempotentInspect
Delete one saved private carousel theme.
| Name | Required | Description | Default |
|---|---|---|---|
| themeId | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | No | |
| frame | No | |
| style | No | |
| locale | No | |
| slides | No | |
| can_undo | No | |
| platform | No | |
| revision | No | |
| warnings | No | |
| templates | No | |
| font_faces | No | |
| project_id | No | |
| next_actions | No | |
| mutationReceipt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered; the description only adds the word 'private,' which hints at scope but not at irreversibility, permission requirements, or what happens to carousels currently using the theme. It does not contradict the annotations, but adds very little beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is good, but for a destructive, four-parameter mutation the terseness tips into under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but the description omits everything an agent needs for a destructive mutation: scoping rules between projectId/workspaceId, retry semantics via idempotencyKey, and the consequences of removing a theme.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only projectId has a bare 'UUID string.') and the description names no parameters at all, so it does not compensate. Nothing explains themeId, workspaceId versus projectId scoping, or that idempotencyKey makes retries safe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Delete one saved private carousel theme' states a specific verb (delete), resource (carousel theme) and scope (one, saved, private). It does not, however, distinguish itself from the sibling carousels_delete_template or explain why a theme versus a template should be targeted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no prerequisites (e.g., ownership or permission of the private theme), and never points at the adjacent tools carousels_delete_template, carousels_save_theme or carousels_apply_theme. The agent must infer routing from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_expand_recipeExpand Carousel RecipeBRead-onlyIdempotentInspect
Turn a named recipe or a brief into compile-ready named-template slides. Expand never publishes and never invents metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| brief | No | ||
| offer | No | ||
| locale | No | ||
| product | No | ||
| audience | No | ||
| platform | No | ||
| recipeId | Yes | ||
| workspaceId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| locale | No | |
| slides | Yes | |
| platform | Yes | |
| recipe_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is largely covered. The description adds two genuine behavioral guarantees beyond that, 'never publishes' and 'never invents metrics', which are valuable constraints. It says nothing about persistence, whether the expanded slides are saved to a carousel, or how output is scoped, so it is useful but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and followed by the two negative guarantees. No filler, no restatement of the tool name, every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but for a 9-parameter tool with 0% schema coverage the description is far too sparse. It never explains how the non-recipe context fields (audience, platform, offer, locale) shape the expansion, nor where this fits relative to carousels_compile or carousels_apply_template.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 9 parameters, so the description carries the full burden, yet it only obliquely covers the recipe/brief inputs. Parameters such as offer, locale, product, audience, platform, and workspaceId are unexplained in both the schema and the description, and the enum choices for recipeId and platform receive no interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific transformation: turn a named recipe or brief into 'compile-ready named-template slides'. That is a clear verb+resource, and the 'never publishes' clause implicitly separates it from the compile/publish siblings. It stops short of explicitly naming which sibling to use instead, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a named recipe or a brief' implies the two entry paths (recipeId vs. the 'from_brief' recipe plus brief), which is useful routing. However, there is no explicit when-to-use guidance relative to close siblings like carousels_apply_template, carousels_compile, or carousels_clone, leaving the agent to infer the workflow position.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_getGet Carousel DocumentCRead-onlyIdempotentInspect
Read the carousel slot document and the named template catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| workspaceId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | Yes | |
| frame | Yes | |
| style | Yes | |
| locale | Yes | |
| slides | Yes | |
| can_undo | Yes | |
| platform | Yes | |
| revision | Yes | |
| warnings | Yes | |
| templates | Yes | |
| font_faces | No | |
| project_id | Yes | |
| next_actions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds essentially nothing beyond the annotations – it does not explain what the returned "slot document" contains, what the "template catalog" scope is, or any access requirements. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no waste and the action front-loaded. Efficient, though the brevity comes at the cost of substance rather than being paired with it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 read-only behavior is covered by annotations. Still, for a retrieval tool the description leaves key ambiguity about what is being fetched and how workspaceId scopes the result, making it only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: projectId is described only as "UUID string" (a type restatement) and workspaceId has no description at all. The prose mentions neither parameter and adds no meaning about how projectId or workspaceId scope the read, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Read") and two resources ("carousel slot document" and "named template catalog"), so the basic operation is clear. However, the terms "slot document" and "template catalog" are ambiguous, and the description offers no differentiation from siblings like carousels_preview, carousels_compile, or carousels_expand_recipe, which also operate on carousel documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many other carousels_* siblings (preview, compile, migrate, clone). No preconditions or context for invocation are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_migrateMigrate Legacy CarouselBDestructiveIdempotentInspect
Rebuild a compile slot document from a legacy overlay carousel. Then patch slots like any compiled deck.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | No | |
| frame | No | |
| style | No | |
| locale | No | |
| slides | No | |
| can_undo | No | |
| platform | No | |
| revision | No | |
| warnings | No | |
| templates | No | |
| font_faces | No | |
| project_id | No | |
| next_actions | No | |
| mutationReceipt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is largely covered. The description adds the behavioral context that the result is a normal compiled deck and can subsequently be patched, but it never says what gets destroyed or replaced (the existing document? the legacy carousel?), which matters for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, and the core action is front-loaded. It is arguably under-specified rather than over-long, so conciseness itself is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, jargon-heavy migration tool, the description leaves out when to use it versus carousels_compile, what happens to the legacy source after migration, and any meaning for the required idempotencyKey. The output schema covers return values, but the operational context is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% – only projectId has even a minimal 'UUID string.' note, while idempotencyKey and workspaceId are undocumented in both schema and description. The description contributes nothing about parameters, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: rebuilding a 'compile slot document' from a 'legacy overlay carousel'. That is more than a restatement of the name 'carousels_migrate', but it never differentiates itself from close siblings such as carousels_compile or carousels_get, and the internal jargon ('compile slot document') is undefined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Then patch slots like any compiled deck' implies a downstream workflow (the output behaves like a compiled deck and can be patched), which is useful implied usage. However, it never states when to choose migration over carousels_compile or carousels_apply_template, nor any precondition such as 'only for legacy overlay carousels'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_patch_slidePatch Carousel SlideCDestructiveIdempotentInspect
Patch native slots/media or select a completed Remotion frame artifact and crop. Requires expectedRevision; identical keys replay.
| Name | Required | Description | Default |
|---|---|---|---|
| crop | No | ||
| lines | No | ||
| slots | No | ||
| projectId | Yes | UUID string. | |
| slideIndex | Yes | ||
| templateId | No | ||
| workspaceId | No | ||
| mediaAssetId | No | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes | ||
| creativeArtifactId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | Yes | |
| txid | Yes | |
| frame | Yes | |
| style | Yes | |
| locale | Yes | |
| slides | Yes | |
| can_undo | Yes | |
| platform | Yes | |
| revision | Yes | |
| warnings | Yes | |
| templates | Yes | |
| font_faces | No | |
| project_id | Yes | |
| next_actions | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=true; 'identical keys replay' merely restates the idempotency annotation without explaining what is destroyed, merged, or overwritten when patching a slide. No new behavioral context (merge semantics, revision conflict behavior) is added beyond what the annotations and required-field list already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, and the mutation/crop behavior is front-loaded. It is compact to the point of being under-specified, but it is not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An 11-parameter, nested-object, destructive mutation tool with an output schema gets only two terse sentences; the description identifies the two edit modes but leaves mode selection, parameter roles and conflict handling to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 9% across 11 parameters, so the description must compensate and largely does not; it hints at crop, slots/media, creativeArtifact and expectedRevision but says nothing about idempotencyKey, workspaceId, templateId, lines, slideIndex or projectId semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the verb (patch) and the resource from the title, and lists the two modes (native slots/media vs. completed Remotion frame artifact with crop). However, jargon like 'native slots' and 'Remotion frame artifact' is unexplained, and it never articulates how this differs from siblings such as carousels_slides_insert or carousels_clone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States a prerequisite ('Requires expectedRevision') but gives no when-to-use versus the many sibling carousels_* tools, and no indication of when to choose the slots/media path over the artifact-crop path. An agent must guess which mode applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_previewPreview CarouselBDestructiveIdempotentInspect
Render and store private JPEG previews for the selected carousel slides. Replaces cached previews at deterministic storage keys; preserves the source project and slide document.
| Name | Required | Description | Default |
|---|---|---|---|
| chrome | Yes | none | |
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| slideIndexes | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| frame | Yes | |
| slides | Yes | |
| platform | Yes | |
| revision | Yes | |
| warnings | Yes | |
| project_id | Yes | |
| next_actions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is known. The description adds genuinely useful context beyond that: it explains what is overwritten ('Replaces cached previews at deterministic storage keys') and what is preserved ('preserves the source project and slide document'), which is exactly the mutation impact 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste, front-loading the core action and then the storage/impact detail. Nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 destructive/idempotent behavior is well covered. However, with 5 parameters and only 20% schema coverage, the description leaves the enumeration and selection parameters (chrome, slideIndexes) unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (just projectId's 'UUID string'), and the description does not compensate. Key params like 'chrome' (tiktok/instagram/none), 'slideIndexes', 'workspaceId', and the required 'idempotencyKey' are undocumented in either place, leaving their semantics opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Render and store') plus resource and scope ('private JPEG previews for the selected carousel slides'). It clearly distinguishes a preview-generation action from siblings like carousels_apply_template or carousels_compile, though it doesn't name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus carousels_get, carousels_compile, or other carousel tools, and no prerequisites or exclusions are stated. The agent must infer the usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_save_templateCarousel save templateBDestructiveIdempotentInspect
Save one carousel slide as a private template; removes the oldest saved template when the 40-template limit is reached.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| scope | No | ||
| projectId | Yes | UUID string. | |
| slideIndex | Yes | ||
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | No | |
| frame | No | |
| style | No | |
| locale | No | |
| slides | No | |
| can_undo | No | |
| platform | No | |
| revision | No | |
| warnings | No | |
| templates | No | |
| font_faces | No | |
| project_id | No | |
| next_actions | No | |
| mutationReceipt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and idempotentHint=true, and the description adds the concrete side effect behind that flag: the oldest saved template is evicted once the 40-template limit is hit. That is genuine value beyond the annotations. It stops short of covering permissions/visibility rules for 'private' templates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, two clauses, zero filler, with the primary action front-loaded and the destructive limit rule trailing. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 eviction behavior is disclosed. But for a six-parameter mutation with 17% schema coverage, the description leaves scope semantics, idempotency key usage, and template visibility rules unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% (projectId alone has 'UUID string.'), so the description carries the compensation burden and barely does so. It never explains slideIndex, the project/brand scope enum, the idempotencyKey, or when workspaceId is needed; only 'one carousel slide' loosely maps to slideIndex.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: saving one carousel slide as a private template, with the slide-level granularity made explicit. It does not, however, distinguish itself from the adjacent siblings carousels_save_theme or carousels_apply_template, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no exclusions. Nothing tells the agent why it would pick this over carousels_save_theme, nor when to save a template versus applying an existing one, nor how the project/brand scope parameter should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_save_themeCarousel save themeBDestructiveIdempotentInspect
Save and activate the current carousel styling as a private theme; removes the oldest saved theme when the 40-theme limit is reached.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| scope | No | ||
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | No | |
| frame | No | |
| style | No | |
| locale | No | |
| slides | No | |
| can_undo | No | |
| platform | No | |
| revision | No | |
| warnings | No | |
| templates | No | |
| font_faces | No | |
| project_id | No | |
| next_actions | No | |
| mutationReceipt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds real behavior beyond them: the theme is saved as private, it becomes the active theme, and the oldest theme is evicted at the 40-theme cap. That eviction detail is exactly the kind of destruction semantics annotations cannot convey. It still omits permission requirements and what 'activate' changes for other users.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence whose two clauses both earn their place: the primary action first, then the retention constraint. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations carry the safety profile. However, with five parameters at 20% schema coverage and a mutation that maintains a capped theme library, the description should at least hint at scope/idempotency behavior to be fully actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% — just 'UUID string.' on projectId — yet the description explains no parameters. The scope enum (project vs brand), workspaceId, idempotencyKey, and name are all left for the agent to infer, so the description fails to compensate for the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-plus-resource pair ('save and activate the current carousel styling as a private theme'), which clearly separates it from siblings like carousels_save_template or carousels_apply_theme. It stops short of explicitly contrasting itself with those siblings, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this over carousels_save_template, carousels_apply_theme, or carousels_apply_brand, nor any prerequisite (e.g., that styling must already exist on the carousel). Usage is only inferable from the phrase 'current carousel styling'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_slides_insertCarousel Slides insertAIdempotentInspect
Insert one new carousel slide from a named template or copy an existing slide. Preserves existing slide content.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| projectId | Yes | UUID string. | |
| templateId | No | ||
| sourceIndex | No | ||
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | Yes | |
| txid | Yes | |
| frame | Yes | |
| style | Yes | |
| locale | Yes | |
| slides | Yes | |
| can_undo | Yes | |
| platform | Yes | |
| revision | Yes | |
| warnings | Yes | |
| templates | Yes | |
| font_faces | No | |
| project_id | Yes | |
| next_actions | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly=false, destructive=false, idempotent=true), and "Preserves existing slide content" adds useful confirming context. However, the key behavioral detail an agent needs — that templateId and sourceIndex select mutually exclusive modes — is not disclosed, nor is the insertion semantics of index.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action front-loaded and the non-destructive guarantee second. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema is present so return values need no explanation, and annotations cover the safety profile. The remaining gap is the unexplained mode-selection logic and insertion-position semantics, which is a modest but real omission for a mutation tool with 6 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 17%, so the description carries real weight here. It does map "named template" to templateId and "copy an existing slide" to sourceIndex, but index, idempotencyKey, and workspaceId remain undocumented in both schema and description. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Insert one new carousel slide") and clarifies the two sourcing modes (named template vs. copying an existing slide). It is clearly distinct from carousels_slides_remove/reorder/undo, though it does not name any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The two modes (template vs. copy) imply usage conditions, but the description never states when to choose this over alternatives such as carousels_slides_reorder, carousels_patch_slide, or carousels_clone, nor any prerequisites. Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_slides_removeCarousel Slides removeCDestructiveIdempotentInspect
Remove one carousel slide and its content from the project.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | Yes | |
| txid | Yes | |
| frame | Yes | |
| style | Yes | |
| locale | Yes | |
| slides | Yes | |
| can_undo | Yes | |
| platform | Yes | |
| revision | Yes | |
| warnings | Yes | |
| templates | Yes | |
| font_faces | No | |
| project_id | Yes | |
| next_actions | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so safety is covered. The description adds only the detail that the slide's content is removed along with it, with no info on auth, irreversibility, or side effects on indices.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Its brevity is virtuous here, though it verges on being too terse to guide invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive multi-parameter tool with only 25% schema coverage, the description is thin. The output schema relieves it of explaining returns, but nothing compensates for the undocumented index, projectId, and idempotencyKey semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 25% across 4 params, so the description carries most of the burden but adds nothing. It never explains the 'index' selector (including its 0-34 bound), the idempotencyKey, or the optional workspaceId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (remove) and resource (carousel slide) with the scope of 'one' slide plus its content. It is clearly distinguishable from siblings like carousels_slides_insert and carousels_slides_reorder, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives or prerequisites. Notably it does not point to carousels_slides_undo as a recovery path, nor explain how this differs from carousels_patch_slide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_slides_reorderCarousel Slides reorderCDestructiveIdempotentInspect
Move one carousel slide to a new index. Replaces the existing slide order.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | Yes | |
| txid | Yes | |
| frame | Yes | |
| style | Yes | |
| locale | Yes | |
| slides | Yes | |
| can_undo | Yes | |
| platform | Yes | |
| revision | Yes | |
| warnings | Yes | |
| templates | Yes | |
| font_faces | No | |
| project_id | Yes | |
| next_actions | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds the meaningful behavioral fact that the operation 'replaces the existing slide order' (i.e., other slides shift), which is useful context beyond the flags, but says nothing about bounds, failures, or side effects on dependent assets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and no wasted words. It is arguably under-specified rather than bloated, so terseness itself is not a fault here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be documented, and annotations cover destructive/idempotent behavior. However, with 5 parameters at 20% coverage and no usage routing against three closely related sibling tools, the description leaves substantial gaps for a mutation operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% across 5 params, so the description must compensate and largely does not. 'New index' loosely grounds the from/to positional integers, but projectId, workspaceId, and idempotencyKey receive no explanation and the 0-34 index bound is left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Move one carousel slide') plus the destination concept ('new index'), which cleanly separates it from carousels_slides_insert, carousels_slides_remove, and carousels_slides_undo. It stops short of explicitly naming those siblings or confirming which operation family it belongs to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no condition that selects this over carousels_slides_insert/remove/undo, and no prerequisites such as required permissions. The reader must infer the use case entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carousels_slides_undoCarousel Slides undoCDestructiveIdempotentInspect
Restore the previous carousel document revision, replacing the current slide document.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| workspaceId | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| kit | No | |
| name | Yes | |
| txid | Yes | |
| frame | Yes | |
| style | Yes | |
| locale | Yes | |
| slides | Yes | |
| can_undo | Yes | |
| platform | Yes | |
| revision | Yes | |
| warnings | Yes | |
| templates | Yes | |
| font_faces | No | |
| project_id | Yes | |
| next_actions | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description usefully reinforces this by saying the current slide document is replaced, but it does not say how far back the revision goes, whether the operation can itself be undone, or what happens if no prior revision exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the action front-loaded and no filler. It is appropriately short, though the brevity borders on under-specification rather than being optimally sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover the safety profile. But for a destructive, low-coverage-parameter mutation, the description leaves key call-time questions unanswered: revision depth, undo-of-undo behavior, and the role of idempotencyKey and workspaceId.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (just a trivial 'UUID string' for projectId), leaving workspaceId and idempotencyKey undocumented, and the description adds nothing about any parameter — not even which project's carousel is targeted. With low coverage the description needed to compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Restore) and resource (previous carousel document revision) and notes the replace semantics, which separates it from additive siblings like carousels_slides_insert or carousels_patch_slide. It does not, however, distinguish itself from editor_edit_undo, and the mismatch between the slide-oriented name and the 'document revision' wording leaves the scope slightly ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the obvious alternative editor_edit_undo or of when an undo is unavailable (e.g., no prior revision). The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
characters_applyApply Reusable CharacterCDestructiveIdempotentInspect
Create or update a reference-based character for repeatable faceless story generation.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | No | human | |
| species | No | ||
| storyFacts | No | ||
| characterId | No | ||
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. | |
| defaultVoiceId | No | ||
| idempotencyKey | Yes | ||
| defaultVoiceStyle | No | ||
| referenceAssetIds | No | ||
| canonicalDescription | No | ||
| confirmLikenessConsent | No | For a human character, set true only after the user confirms consent to use the depicted person's likeness. | |
| primaryReferenceAssetId | No | ||
| confirmRightsToReferences | No | Set true only after the user confirms they own the reference media or have permission to use it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| character | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not explain what gets destroyed/overwritten on update, that likeness and reference-rights consent must be confirmed before a human character is applied, or how idempotencyKey governs replay. It essentially restates the annotation-covered mutation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is well-formed, though its brevity is a symptom of under-specification rather than disciplined economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter, destructive, consent-gated mutation tool, this description is far too thin. An output schema exists so return values need not be explained, but the create-vs-update branching, consent prerequisites, and idempotency behavior are all missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 2 of 14 parameters carry schema descriptions (~21% coverage), so the description must compensate and largely fails to. 'Reference-based' loosely gestures at referenceAssetIds/primaryReferenceAssetId, but type/species/storyFacts/defaultVoiceId/characterId/canonicalDescription are left with no semantic explanation at the description level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb pair ('create or update') and a specific resource ('reference-based character'), and adds the domain ('repeatable faceless story generation'). An agent can distinguish it from the read-only siblings characters_get and characters_list, though it never states that distinction explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing says when to create vs update (e.g., presence of characterId), when the consent flags are required, or how this relates to characters_get/characters_list or generation_faceless_create. The phrase 'for repeatable faceless story generation' implies context but is not actionable routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
characters_getGet Reusable CharacterARead-onlyIdempotentInspect
Inspect one reusable character and its ordered reference-image set before planning a story.
| Name | Required | Description | Default |
|---|---|---|---|
| characterId | Yes | ||
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| character | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the annotations. 'Inspect' aligns with readOnlyHint=true and destructiveHint=false. The mention of 'ordered reference-image set' hints at the output structure, but no further details about auth, rate limits, or idempotency are provided. Annotations already cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence of 14 words that is front-loaded and efficient. However, it is slightly terse and could be more explicit about the core resource (e.g., 'Reusable character' is a domain term that may not be universally understood). Still, it earns its place without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (read a single character), the presence of annotations and an output schema, the description is mostly complete. It clarifies the use case and the ordered reference-image set. However, it does not explicitly state that the characterId is required or that the operation is read-only, though these are inferred from context and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention any parameters. Schema coverage is 50% (workspaceId has a description in the schema, but characterId does not). The tool description could have explained what characterId represents, but it fails to compensate for the undocumented parameter, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'Inspect' (read-only) and the resource 'one reusable character and its ordered reference-image set', with a clear scope ('before planning a story'). This distinguishes it from siblings like 'characters_list' (list all) and 'characters_apply' (apply a character).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for when to use this tool ('before planning a story'), but does not explicitly mention when not to use it or alternatives such as 'characters_list' for browsing. The sibling list implies the differentiation, but the description could be more direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
characters_listList Reusable CharactersARead-onlyIdempotentInspect
List bounded reusable characters with identity, voice, facts, and image-reference metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. | |
| includeArchived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| characters | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the agent knows this is a safe, repeatable read operation. Description adds the term 'bounded' which hints at scope but doesn't explain what 'bounded' means (e.g., workspace-scoped, project-scoped) nor mention pagination behavior that offset/limit implies. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 14 words, zero waste. Each part ('List', 'bounded reusable characters', metadata details) serves a clear purpose. Front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite low parameter description coverage, the output schema exists and parameter names are clear. The description lacks a note about workspace scoping or archived behavior, but for a simple list tool with rich annotations and output schema, it is largely complete. Could mention that workspaceId is optional and defaults to user's default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 4 parameters but description coverage is only 25%—it does not mention or elaborate on any parameter. However, the output schema exists and parameters like limit/offset/workspaceId/includeArchived are self-explanatory from names and schema defaults. Baseline 3 is appropriate since description adds no value beyond schema, but schema names provide adequate context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states specific verb ('List'), resource ('bounded reusable characters'), and included data ('identity, voice, facts, and image-reference metadata'). It clearly distinguishes this tool from sibling tools like characters_get or characters_apply by framing it as a list operation. However, it doesn't explicitly differentiate from other list tools in the sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is listing characters, but no explicit guidance on when to use this vs alternatives like characters_get (for a single character) or characters_apply (for applying characters). No exclusion criteria or context about filtering, pagination, or prerequisites beyond schema-bound parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clip_batches_deleteDelete Clip BatchADestructiveIdempotentInspect
Preview or delete a terminal clip batch. Dry-run is the default; real deletion requires explicit confirmation, retention choice, workspace delete permission, and an idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | ||
| batchId | Yes | UUID string. | |
| retention | No | retain_projects_and_exports | |
| workspaceId | No | UUID string. | |
| confirmDelete | No | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations (which already indicate destructive and idempotent). It discloses that dry-run is the default, real deletion requires confirmation and a retention choice, workspace delete permission is needed, and an idempotency key is required. This fully informs the agent of conditions and side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys purpose, default behavior, and prerequisites. Every phrase adds value without wordiness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior and preconditions for this destructive, idempotent tool with 6 parameters. Given that the output schema exists (so return format is already specified), the description provides sufficient context for the agent to understand the tool's workflow, though it does not elaborate on what the dry-run preview returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema description coverage, the description must compensate for the lack of parameter details. It does add semantic value by referencing dry-run, confirmation, retention choice, workspace permission, and idempotency key. However, it does not explain the precise conditions for each parameter (e.g., dryRun must be false, confirmDelete must be true, or the meaning of retention enum values), leaving some ambiguity for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb and resource: 'Preview or delete a terminal clip batch.' It distinguishes itself from sibling tools like delete_timeline_items by focusing on clip batches, and the dual preview/delete nature is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: for previewing or deleting a terminal clip batch. It implies that real deletion requires explicit confirmation and permissions, giving the agent actionable guidance. It doesn't explicitly name alternatives, but the resource type is distinct enough from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_candidates_listReview Clip CandidatesARead-onlyIdempotentInspect
Read existing suggested moments with source ranges, hooks, transcript excerpts and thumbnails before producing videos. Results are bounded; this does not generate suggestions or render clips.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| offset | Yes | ||
| assetId | Yes | UUID string. | |
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered by structured data. The description adds that results are bounded and that no generation/rendering occurs, but says nothing about pagination traversal, ordering, or what happens when no candidates exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded: the first says what is returned, the second bounds expectations and rules out adjacent operations. No filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the description need not explain return shapes, and it correctly focuses on purpose, exclusions and boundedness. The only real gap is parameter-level guidance for the two UUID scoping arguments and paging controls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (assetId is documented merely as "UUID string"; workspaceId, limit and offset have none). The description contributes no parameter meaning at all — it never explains what assetId/workspaceId scope the candidate listing to, nor that limit/offset drive the paging implied by "results are bounded."
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Read") and resource ("existing suggested moments") and enumerates the payload an agent will see (source ranges, hooks, transcript excerpts, thumbnails). It is clear this is a read of pre-computed candidates rather than the clips themselves, though no sibling from the large clips_* family (e.g. clips_list, clips_inspect) is named to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"before producing videos" places the call in a workflow sequence, and "this does not generate suggestions or render clips" is an explicit when-not that excludes clips_create/clips_export style work. No named alternative tool is given for the case where the agent wants committed clips rather than candidates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_createCreate ClipsBDestructiveInspect
Create a private BlitzReels clip batch from an existing asset or a user-provided video URL. Supports public social videos, Google Drive, and direct media URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Video URL to import before clipping. Supports social video links, Google Drive file links, and direct video file URLs. | |
| assetId | No | Existing BlitzReels video asset ID. Provide assetId or url, not both. UUID string. | |
| seriesId | No | Optional Series UUID. Omitted inherits the source Series; null creates standalone clips. | |
| clipCount | No | Maximum clips requested. Available source moments and account limits can yield fewer. | |
| selection | No | Existing asset only: reviewed candidate IDs to include in order or exclude. Resolve IDs with clips_candidates_list first. Null delegates selection. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| clipPresetId | No | Clip style preset. Use high-retention for High Retention clips or demo-focus for product and screen demos. | default |
| captionThemeId | No | Saved theme UUID or built-in caption look. Omitted inherits Series defaults; null uses workspace captions. | |
| durationBounds | No | Requested clip duration bounds. Selection preserves complete moments; minimum cannot exceed maximum. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| autoTrimSilence | No | Trim silence around selected moments. | |
| createSharePage | No | Create a public showcase page where completed clips appear. | |
| selectedAudioLanguage | No | Audio language track for a social-video URL, using the language reported by media_import_inspect. Null uses source default. Existing assets and direct files preserve source audio. |
Output Schema
| Name | Required | Description |
|---|---|---|
| batch | Yes | |
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, openWorldHint=true, and idempotentHint=false, covering the mutation/safety profile well. The description adds only that the batch is private, then repeats the URL source-type capability already in the schema. It does not add beyond annotations like async/polling behavior or what gets destroyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with no padding; the core action is stated first. The second sentence is somewhat redundant with the url parameter description, but the overall size is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters, no required fields, an output schema, and 100% schema coverage, the structured data carries most of the burden. However, the description omits the end-to-end workflow (list candidates, select, then create/reselect) and any async/status context, leaving gaps for a fairly complex creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 13 parameters are fully documented in the schema and the baseline is 3. The description's mention of source URL types duplicates the url parameter's own description rather than adding syntax or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: create a private clip batch from an asset or a URL, with the supported source types named. It does not differentiate itself from siblings like clips_reselect, clips_recover, or clips_repair, which also operate on clip batches, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names source capabilities (social videos, Google Drive, direct URLs) but gives no when-to-use guidance, no prerequisites, and no routing to alternatives such as clips_reselect or clips_candidates_list. The one useful routing hint ('Resolve IDs with clips_candidates_list first') lives only in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_delivery_promotePromote Reviewed Clip ExportADestructiveIdempotentInspect
Make one completed export the accepted delivery for a clip after explicit visual-QA confirmation. Replaces the delivery pointer and preserves earlier exports.
| Name | Required | Description | Default |
|---|---|---|---|
| clipId | Yes | ||
| exportId | Yes | ||
| workspaceId | No | UUID string. | |
| idempotencyKey | Yes | ||
| confirmVisualQa | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is partly covered. The description adds genuinely useful behavior beyond that: it replaces the delivery pointer and preserves earlier exports, telling the agent exactly what state changes and what is retained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and followed by the side-effect/precondition detail. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the mutation's precondition and effect on state. It is slightly under-complete on parameter meaning and on routing to alternatives, but adequate for a 5-param delivery operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20% (essentially just workspaceId's UUID note), so the description must carry the load. It only indirectly clarifies confirmVisualQa as a QA gate; clipId, exportId, and especially idempotencyKey are left undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb+resource: promoting a completed export to the accepted delivery for a clip. It clearly distinguishes this from siblings like clips_export, exports_start, or exports_list by describing a selection/pointer operation rather than a creation one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the precondition 'after explicit visual-QA confirmation,' which tells the agent when it is legitimate to call this tool. However, it names no alternative tools and gives no when-not guidance (e.g. what to do if QA has not passed, or how this relates to exports_list).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_exportExport One ClipBDestructiveIdempotentInspect
Render one managed clip at an existing-account-supported quality. Returns persisted export state; inspect until the accepted delivery file is ready. Can spend existing account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| clipId | Yes | ||
| format | No | mp4 | |
| resolution | No | 1080p | |
| workspaceId | No | UUID string. | |
| idempotencyKey | Yes | ||
| coverFrameSeconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses two meaningful traits: it can consume account credits (a cost/side-effect warning) and it is asynchronous with persisted state that must be polled. Idempotency is already carried by annotations and idempotencyKey. It stops short of explaining what the destructiveHint entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action front-loaded, followed by the return/async behavior and the credit caveat. Each sentence carries information with no filler, though the phrasing is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be described, and the description does cover cost and async flow. Still, as a credit-spending mutation tool with 6 params at 17% coverage, it omits enough parameter behavior that an agent cannot call it confidently without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% (just workspaceId's 'UUID string'), so the description must compensate across 6 parameters. It vaguely gestures at quality/format via 'existing-account-supported quality' but never explains format, resolution, coverFrameSeconds, workspaceId, or the required idempotencyKey, leaving most parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Render one managed clip') and implies scope via 'one' and 'at an existing-account-supported quality', which separates it from batch/status siblings. However it does not explicitly distinguish itself from exports_start or clips_status_get, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Returns persisted export state; inspect until the accepted delivery file is ready' implies a polling workflow, which is useful usage context. But it never states when to choose this over exports_start, nor how it relates to clips_delivery_promote or clips_inspect, leaving the selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_getGet Clip BatchBRead-onlyIdempotentInspect
Get status, generated clips, render counts, and download links for a BlitzReels clip batch.
| Name | Required | Description | Default |
|---|---|---|---|
| batchId | Yes | Clip batch ID. UUID string. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| batch | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds that the response includes render counts and download links, which hints at a polling/retrieval use case, but does not state whether the batch must be complete or whether the data is eventually consistent. Modest added value above the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that lists the four returned artifacts with no filler or repetition. Nothing could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not document return values, and it is adequate for a two-parameter read tool with full annotations. The gap is routing: with siblings clips_status_get, clips_inspect, and clips_list in the same namespace, the description never helps the agent choose this one over those.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the schema already explains batchId and the optional workspaceId default. The description adds no syntax, format, or scoping detail beyond what the schema provides, making the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') plus resource ('a BlitzReels clip batch') and enumerates what comes back: status, generated clips, render counts, and download links. That is more informative than a bare 'get batch'. It does not, however, distinguish this tool from the closely named sibling clips_status_get, leaving some ambiguity about which retrieval endpoint to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no preconditions (e.g. batch must be finished rendering), and no mention of alternatives such as clips_status_get or clips_list. The agent must infer usage purely from the name and the description's field list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_inspectInspect One ClipBRead-onlyIdempotentInspect
Read one managed clip's selected source range, project, workflow state and delivery information.
| Name | Required | Description | Default |
|---|---|---|---|
| clipId | Yes | ||
| workspaceId | No | UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description contributes only that the read covers a 'selected source range' and workflow/delivery info, adding modest context but no auth, pagination, or scoping behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no waste and the resource and scope front-loaded. It is efficient, though very sparse for a tool with two parameters and several near-identical siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be described, and the annotations cover the safe-read profile, making the bare description minimally workable. Still, it omits clipId semantics and any disambiguation from clips_get, leaving the agent to guess when this differs from the other clip read tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% and the required `clipId` has no description at all, nor does the description clarify its format or how it relates to `workspaceId`. The description provides no parameter meaning beyond what the (partially documented) schema shows, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (one managed clip) and enumerates the facets returned: selected source range, project, workflow state, delivery information. However, it never distinguishes this from the very similar sibling `clips_get` (nor `clips_status_get`), so an agent cannot tell the two apart from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no reference to alternatives such as clips_get, clips_list, or clips_candidates_list. Given how many clip-related siblings exist, this absence is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_listList ClipsBRead-onlyIdempotentInspect
List bounded managed clips from the selected source or project with their current workflow state.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| status | No | ||
| assetId | No | UUID string. | |
| projectId | No | UUID string. | |
| workspaceId | No | UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description adds only that results carry 'current workflow state'; it says nothing about pagination limits, filter behavior, or result ordering, so it adds limited value beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. Its only weakness is the compressed, undefined jargon ('bounded managed clips'), which costs a little clarity at the same word count.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover the read-only/idempotent profile. What remains missing is filter semantics for a six-parameter listing tool, particularly the undocumented status filter and pagination bounds, which an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the covered fields are trivially documented as 'UUID string.' The description does not explain limit, offset, or the status filter at all, nor does it clarify how assetId/projectId/workspaceId scope the listing; the vague 'selected source or project' is the only hint and it is not tied to a named parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (List) and resource (managed clips) plus scope (from the selected source or project) and a hint at returned data (current workflow state). It does not, however, distinguish itself from close siblings like clips_candidates_list or clips_presets_list, and the qualifier 'bounded managed' is unexplained jargon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus clips_get, clips_inspect, clips_candidates_list, or clips_status_get, and no preconditions or exclusions. The phrase 'from the selected source or project' implies a context dependency but never says how that selection is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_presets_listList Clip PresetsARead-onlyIdempotentInspect
List available clip batch presets and their clipping/caption defaults.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| presets | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well-covered. The description adds the factual content (clipping/caption defaults) but does not disclose additional behavioral traits such as return format, pagination, or whether presets include custom user-defined ones.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately states the action and object. It contains no redundant phrases or filler, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and comprehensive annotations, the description is largely complete for a simple list tool. However, it could provide slightly more contextual value by hinting at how these presets are used (e.g., 'These presets can be applied when creating clip batches'), which would help new users understand the workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially 100% and the description has no parameter burden. A baseline score of 4 is appropriate since there is nothing to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('List') and resource ('available clip batch presets'), and specifies the included information ('clipping/caption defaults'). This distinguishes it from sibling tools like captions_themes_list and clips_get, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the tool's name and description—if you need to list presets, this is the tool—but there is no explicit guidance on when to use it versus alternatives, nor any mention of prerequisites or follow-up actions. The description could benefit from noting that these presets are for use with clip batch creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_recoverRecover Missing ClipsADestructiveIdempotentInspect
Recover a terminal batch's missing clip count through the persisted recovery workflow. Preserves accepted clips and returns the recovery batch ID. Can spend existing account credits; retry with the identical idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| batchId | Yes | UUID string. | |
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| targetClipCount | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered; the description goes beyond them by stating that accepted clips are preserved, that the recovery batch ID is returned, and that credits may be spent. The credit-cost disclosure and the preserved-work guarantee are exactly the kind of context annotations cannot express, though side effects on the original batch remain unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler, with the core action front-loaded and the operational caveats (credit spend, retry key) trailing in priority order. Dense without being cryptic, though the middle sentence could be folded into the first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 destructive/idempotent annotations cover the safety burden. Gaps remain on the input side: half the parameters are undocumented in both schema and description, and there is no statement of what happens when targetClipCount is null or how partial failures are surfaced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (batchId's 'UUID string.'), so the description must carry more weight than it does. It usefully ties the idempotencyKey to retry safety and gestures at targetClipCount via 'missing clip count', but says nothing about workspaceId, the 1-30 bounds, or the null defaults on workspaceId/targetClipCount.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (recover) and resource (a terminal batch's missing clip count) and grounds it in a named workflow, so the agent knows this is a recovery action rather than a general clip operation. It does not, however, distinguish itself from close siblings like clips_repair or clips_reselect, leaving the agent to infer which recovery path applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when this applies ('terminal batch', missing count) and gives retry guidance ('retry with the identical idempotency key'), which is genuinely useful. It stops short of naming alternatives such as clips_repair/clips_reselect or stating exclusions, so routing between the three recovery tools is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_repairRepair One Clip LayoutBDestructiveIdempotentInspect
Request a layout repair for one managed clip, such as preserving a screen demo or moving captions away from faces. Changes that clip's project; preserves the other clips.
| Name | Required | Description | Default |
|---|---|---|---|
| clipId | Yes | ||
| repairMode | No | auto | |
| workspaceId | No | UUID string. | |
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuine scoping context ('Changes that clip's project; preserves the other clips'), clarifying the blast radius of the destructive operation, but says nothing about reversibility, permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight, front-loaded sentences with no filler: purpose plus examples first, scope constraint second. Well-structured, though the second clause is the only scope information and could be slightly more precise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a destructive, 4-parameter mutation tool with only 25% schema coverage, the description leaves the repair modes and permission/authorization requirements unexplained, which is a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (25%). The examples ('screen demo', 'captions away from faces') indirectly illustrate two repairMode enum values, but the description never explains repairMode, clipId, workspaceId, or idempotencyKey — including the two required parameters — so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Request a layout repair for one managed clip') and gives concrete examples of the operation ('preserving a screen demo or moving captions away from faces'). This lets an agent understand the action, though it never explicitly contrasts with near-siblings like clips_manage, clips_recover, or batch_update_timeline_clips.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer this is for fixing the layout of a single clip. There is no explicit when-to-use vs when-not guidance and no named alternative for related tasks such as batch-editing or manually updating timeline clips.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_reselectRevise Selected MomentADestructiveIdempotentInspect
Replace the source moment for one managed clip using a verified suggestion or explicit time range. Can spend existing account credits. Preserves the other clips; read current state before retrying.
| Name | Required | Description | Default |
|---|---|---|---|
| clipId | Yes | ||
| lookId | No | ||
| endSeconds | No | ||
| layoutMode | No | ||
| workspaceId | No | UUID string. | |
| startSeconds | No | ||
| suggestionId | No | UUID string. | |
| selectionMode | Yes | ||
| idempotencyKey | Yes | ||
| captionsEnabled | No | ||
| contentTypeHint | No | ||
| maxDurationSeconds | No | ||
| minDurationSeconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (destructiveHint=true, idempotentHint=true, readOnlyHint=false), so the bar is lower. The description adds valuable non-structured context: it can consume account credits, it preserves the other clips (blast radius), and it advises reading current state before retrying. Missing only details like whether the replaced source can be recovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the operation and mechanism before cost and retry caveats. No filler, though the credit and retry notes are compressed to the point of mild ambiguity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but with 13 parameters at 15% schema coverage and a credit-spending mutation, the description leaves several parameters unexplained and gives no detail on the auto_best mode or the layout/content hints. Adequate for the main path, thin for full complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 15% across 13 parameters, so the description must carry meaning. It maps well to selectionMode (suggestion/time_range) and suggestion/time params, but leaves layoutMode, contentTypeHint, captionsEnabled, min/maxDurationSeconds, lookId, workspaceId, and idempotencyKey entirely undocumented. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Replace the source moment for one managed clip') plus the two mechanisms ('verified suggestion or explicit time range'). This clearly separates it from siblings like clips_create, clips_get, and clips_repair without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the usage path via 'using a verified suggestion or explicit time range' and gives a retry prerequisite ('read current state before retrying'), but never states when to prefer this over clips_create, clips_repair, or clips_recover, nor any when-not condition. Usage is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clips_status_getRefresh Clip ProgressARead-onlyIdempotentInspect
Read one existing batch's progress, ready clips and renewed signed links without opening or remounting a review widget. Safe for bounded polling and widget refresh; does not recreate or repair clips.
| Name | Required | Description | Default |
|---|---|---|---|
| batchId | Yes | UUID string. | |
| workspaceId | No | UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| batch | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive behavior, but the description adds real value beyond them: it discloses that signed links are renewed, that a review widget is not opened/remounted, and that bounded polling is supported. This is useful operational context not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded with the highest-value information (what is returned, then safety constraints). No filler and no repetition of structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 summarizes the return payload (progress, ready clips, renewed links). Combined with annotations covering the safety profile, nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only two UUID parameters, so the schema already carries the parameter documentation. The description implies a single existing batch via 'one existing batch' but adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and a precise resource set: one batch's progress, ready clips, and renewed signed links. It also implicitly differentiates itself from the repair/recover siblings by declaring it does not recreate or repair clips, so an agent can distinguish 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context ('safe for bounded polling and widget refresh') and a negative constraint ('does not recreate or repair clips'). It stops short of explicitly naming the alternative siblings (e.g. clips_repair, clips_recover) that handle those cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
content_performance_listRead Published Content PerformanceARead-onlyIdempotentInspect
Read bounded existing provider-reported engagement in the selected workspace, sorted by views. Filters by format, account and publication window. Returns lifetime counters, saved watch metrics, capture/check times, availability, and saved Project/export lineage when known. includeDetails includes bounded retention and audience tables. Does not import new data, start monitoring or infer attributable leads, sales or revenue.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| range | Yes | 30d | |
| format | Yes | all | |
| offset | Yes | ||
| search | Yes | ||
| platform | Yes | all | |
| workspaceId | Yes | ||
| connectionIds | Yes | ||
| includeDetails | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial context beyond the read-only annotations: it discloses sorting by views, lifetime counters, saved watch metrics, capture/check times, availability, lineage, and what includeDetails adds. It also clearly scopes out write-like behaviors like importing data or starting monitoring.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded: it states the core read operation first, then filters, return content, includeDetails behavior, and exclusions. Every sentence carries relevant information, though the phrase 'bounded existing provider-reported engagement' is slightly jargon-heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has rich annotations and an output schema, and the description covers the return shape, lineage, and non-goals well. The remaining gap is that several required filter and pagination parameters are not semantically explained in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage across 9 required parameters, the description compensates for some filters: format, account, publication window, workspace selection, and includeDetails behavior. However, it leaves platform, search, limit, and offset unexplained, which are meaningful gaps for an agent constructing a request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: reading existing provider-reported engagement in a selected workspace, sorted by views. It clearly establishes the scope as published content performance rather than content creation, import, or monitoring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful exclusions: it does not import new data, start monitoring, or infer attributable leads, sales, or revenue. It does not name a specific alternative tool, so the routing guidance is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customer_link_applySave customer tracking linkAIdempotentInspect
Create a stable HTTPS tracking link or revise its label/enabled state. Destination and content association are immutable. Revisions require expectedRevision; null creates.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| label | Yes | ||
| postId | Yes | ||
| enabled | Yes | ||
| seriesId | Yes | ||
| projectId | Yes | ||
| destination | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| link | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly=false, idempotent=true, destructive=false, openWorld=false), and the description adds genuinely new behavioral context: destination and content association are immutable, and revisions use optimistic concurrency via expectedRevision. It does not state auth requirements or rate limits, but the immutability and concurrency disclosures exceed 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the primary action and followed by the two constraints an agent most needs (immutability, concurrency). No filler or restatement of the name/title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be described, and annotations carry the safety profile; the description fills the remaining gap with the create/revise distinction and immutable-field rules. The main omission is a map of the six undocumented identifier parameters, but for a mutation tool this is largely covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 10 parameters, so the description must carry the burden. It meaningfully explains expectedRevision (null=create, value=revise), label/enabled (the mutable revision fields) and destination (immutable), but leaves idempotencyKey, seriesId, projectId, postId, id and workspaceId entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (create/revise) and resource (tracking link) and clarifies the two operating modes. It distinguishes create from revise contextually, though it does not name any sibling tool it competes with (none is obviously adjacent). Clear enough for an agent to know what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The rule 'Revisions require expectedRevision; null creates' selects between two modes but reads more as parameter semantics than usage guidance. It never states when to reach for this tool versus others in the workspace, nor any prerequisites beyond the revision rule. Implied usage only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customer_measurements_listRead customer outcomesARead-onlyIdempotentInspect
Read observed link clicks and self-reported outcomes in a bounded window up to 90 days. Counts are not verified conversions. Provider engagement remains separate.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| limit | Yes | ||
| offset | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| links | Yes | |
| window | Yes | |
| outcomes | Yes | |
| linkBounds | Yes | |
| outcomeBounds | Yes | |
| retentionDays | Yes | |
| clickSemantics | Yes | |
| outcomeSemantics | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe-read profile (readOnly, idempotent, non-destructive). The description goes further by disclosing data-quality limits ('counts are not verified conversions') and scope exclusions ('provider engagement remains separate'), which are genuine behavioral traits not derivable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the core action and scope, then caveats. No filler; every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and annotations carry the safety profile. The definition is largely sufficient for a read tool, with the only shortfall being the absence of guidance on the pagination and workspace parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all five parameters. The description adds one meaningful semantic constraint — the from/to window is bounded to 90 days — but says nothing about limit, offset, or workspaceId, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('observed link clicks and self-reported outcomes') with clear scope. It distinguishes its content from provider engagement, though it does not name the closely related sibling content_performance_list, leaving some overlap unresolved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 90-day window bound and the 'counts are not verified conversions' caveat imply when this data is appropriate, but there is no explicit when-to-use versus alternatives such as content_performance_list or customer_outcome_apply. Usage must be inferred from the constraints rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customer_outcome_applySave self-reported outcomeBIdempotentInspect
Record or revise leads, sales, revenue or another measured outcome with source, time and explicit attribution. Revision history is retained; voided records remain visible. No conversion is inferred from clicks.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| kind | Yes | ||
| unit | Yes | ||
| value | Yes | ||
| postId | Yes | ||
| source | Yes | ||
| voided | Yes | ||
| seriesId | Yes | ||
| projectId | Yes | ||
| occurredAt | Yes | ||
| attribution | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| outcome | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare write, idempotent and non-destructive. The description adds real behavioral context beyond them: revision history is retained, voided records remain visible, and no conversion is inferred from clicks. It stops short of noting auth requirements or whether revise is matched by expectedRevision.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action front-loaded and no filler. Every clause adds information, though the opening could more directly signal 'manual/self-reported' to aid routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be explained, but a 14-param required-schema write tool with 0% schema coverage needs more param detail than is provided. The description partially compensates via behavioral notes but leaves too many identifiers and the idempotency/revision mechanics under-described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 14 required params, so the description carries heavy burden. It does add meaning for several fields (kind, source, occurredAt/time, attribution, voided, revision history for expectedRevision), but leaves seriesId, projectId, postId, workspaceId, unit, value and idempotencyKey unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb (Record/revise) plus specific resource (leads, sales, revenue or another measured outcome), and the title reinforces the self-reported nature. It does not explicitly differentiate itself from siblings like customer_measurements_list or content_performance_list, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description describes what the record contains but gives no guidance on when to use this tool versus alternatives (e.g. the sibling customer_measurements_list or customer_link_apply). The 'No conversion is inferred from clicks' line is a boundary statement, not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_timeline_itemsDelete Timeline ItemsBDestructiveIdempotentInspect
Preview or delete up to 100 timeline items and optionally remove linked captions.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | ||
| projectId | Yes | UUID string. | |
| confirmDelete | No | ||
| idempotencyKey | No | ||
| timelineItemIds | Yes | ||
| expectedRevision | No | Expected sequence revision, or null. | |
| removeAssociatedCaptions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds information about the preview mode and optional caption removal beyond the annotations, which already indicate destructive behavior. Still, it doesn't explain the dryRun/confirmDelete workflow or other behavioral nuances, so only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no redundant filler. Efficiently conveys the core functionality and primary option.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having annotations and an output schema, the description omits essential workflow details for a destructive tool—such as how preview (dryRun) and confirmDelete interact, the purpose of idempotencyKey, and revision handling. This is a significant gap for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to timelineItemIds (up to 100) and removeAssociatedCaptions (linked captions), but schema coverage is only 29%, leaving many parameters (dryRun, confirmDelete, idempotencyKey, expectedRevision) unaddressed. The description does not compensate enough for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it previews or deletes timeline items and optionally removes linked captions. The verb 'delete' and resource 'timeline items' are specific, though it doesn't explicitly distinguish from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Preview or delete' implies a safe preview mode before deletion, providing some usage context. However, there's no explicit guidance on when to use this tool versus alternatives, nor on when to choose preview vs actual deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_asset_replaceeditor asset replaceADestructiveIdempotentInspect
Replace one shot's media asset while preserving the other timeline items. Revision checked; dryRun previews by default. Requires a current editor snapshot and an asset in the same workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | Yes | ||
| itemId | Yes | ||
| assetId | Yes | UUID string. | |
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true, idempotent=true, readOnly=false. The description adds genuine context beyond them: optimistic concurrency ('Revision checked'), default preview behavior via dryRun, and the workspace-scoping constraint on the asset. It does not say what a revision mismatch does, but the added disclosure is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, all front-loaded: action and scope first, then revision/preview behavior, then preconditions. No filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool the description covers the critical agent-facing facts (concurrency check, preview default, prerequisites), and an output schema exists so return values need not be described. Minor gap in not stating the failure path on a revision mismatch, but it is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% across 7 required params. The description clarifies dryRun (previews by default), expectedRevision (revision checked), and workspaceId (same workspace as the asset), but leaves itemId, assetId, projectId, and idempotencyKey entirely to the schema. Partial compensation for a low-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Replace one shot's media asset') with an explicit scope constraint ('while preserving the other timeline items'), which separates it from siblings like editor_assets_insert or update_timeline_clip. An agent can tell what it mutates 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real preconditions for use: a current editor snapshot must exist and the asset must be in the same workspace, plus dryRun previews by default. It does not name a competing sibling tool to route against, so it falls short of 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.
editor_assets_inserteditor assets insertBIdempotentInspect
Insert a workspace image, generated shot or audio asset at an explicit project time. Revision checked; dryRun previews by default.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | Yes | ||
| assetId | Yes | UUID string. | |
| projectId | Yes | UUID string. | |
| layerIndex | Yes | ||
| workspaceId | Yes | ||
| startSeconds | Yes | ||
| idempotencyKey | Yes | ||
| durationSeconds | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a non-read-only, idempotent, non-destructive write. The description's added value is the phrase 'Revision checked', which signals optimistic-concurrency failure behavior beyond the schema, and the default-preview behavior. However, it does not explain what a revision conflict looks like or what the dry run returns, so the added context is thin against a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action and the placement constraint front-loaded, followed immediately by the two behavioral caveats. No filler or restated title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but for a nine-parameter, fully-required mutation the description stops short of covering layer semantics, duration handling, or the idempotency key's role. It is adequate as a headline, not complete as a spec.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 22% across nine required parameters. The description maps loosely to assetId, startSeconds, expectedRevision and dryRun, but layerIndex, durationSeconds (nullable), workspaceId, projectId and especially idempotencyKey receive no semantic explanation in either the description or the schema, leaving the agent to guess at stacking and deduplication behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Insert) and enumerates the asset kinds it accepts (workspace image, generated shot, audio asset) plus the placement target (an explicit project time). That is enough for an agent to distinguish it from generic clip/media siblings, though it does not explicitly contrast with timeline_media_add or timeline_audio_add, which overlap on the 'put media on the timeline' intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'dryRun previews by default' implies a preview-then-commit workflow, which is useful usage context, but the wording is terse and relies on the agent inferring that the first call should be a dry run. There is no explicit when-to-use or when-not-to-use guidance relative to the many adjacent timeline/clip tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_audio_seteditor audio setADestructiveIdempotentInspect
Adjust one item's volume and audio fades. Revision checked; dryRun previews by default. Preserves the rest of the project.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | Yes | ||
| itemId | Yes | ||
| volume | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| fadeInSeconds | Yes | ||
| fadeOutSeconds | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds real value beyond that: optimistic concurrency ('Revision checked'), default preview behavior, and the guarantee that the rest of the project is preserved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler, and the core action is front-loaded ahead of the concurrency and preservation notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations plus description jointly cover the mutation and concurrency behavior. It is nearly complete for its complexity, though the roles of several identifiers remain unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 11% across 9 required params, so the description must compensate. It clarifies volume, fade in/out, expectedRevision (revision checked) and dryRun, but leaves itemId, projectId, workspaceId and idempotencyKey entirely unexplained in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (adjust) and a precise scope (one item's volume and audio fades), which cleanly separates it from siblings like mute_clip_audio or timeline_audio_add. It does not name an explicit alternative, but the resource and scope are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention that 'dryRun previews by default' implies a preview-then-apply workflow, giving implied usage. However, there is no explicit when-to-use vs when-not guidance and no routing to alternatives such as batch_update_timeline_clips for multi-item edits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_composition_editeditor composition editADestructiveIdempotentInspect
Edit composition elements by stable element ID from the editor snapshot: text content, style and animation. Content/style edits preserve placement timing. Optional edit.structure runs ordered insert/move/remove operations before changes. Group by inserting a group and moving children into it. Supply new unique IDs; beforeId null appends. Move coordinates preserveLocal keeps local style and frame offsets, not world position/time. Remove deletes the subtree. Preview reports affected and removed element IDs. Optional edit.duration sets source frames with explicit placements policy: preserve keeps visible windows and syncs unused tails; resizeAll preserves starts/trims and resizes all active placements. Source windows must fit; invalid shortening is rejected. Shared content changes affect all its placements. Omitted fields stay unchanged; null clears a style override; animation values replace the whole property's animation. Attached presets require explicit detachment. Revision checked; dryRun previews by default.
| Name | Required | Description | Default |
|---|---|---|---|
| edit | Yes | ||
| dryRun | Yes | ||
| itemId | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Substantial disclosure beyond annotations: omitted fields stay unchanged, null clears a style override, animation values replace the entire property animation, attached presets require explicit detachment, shared content changes propagate to all placements, move preserveLocal keeps local style/frame offsets rather than world position/time, and remove deletes the subtree. It also covers failure semantics (source windows must fit, invalid shortening rejected) and preview reporting of affected/removed IDs, which goes well past the destructiveHint/idempotentHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core operation, and nearly every sentence adds a distinct constraint (ordering, ID uniqueness, timing preservation, duration policy, null-clears semantics). The downside is a dense run-on with no paragraph or bullet structure, making it hard to scan, even though little is verifiably wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Return values needn't be covered since an output schema exists, and annotations carry the safety profile. However, for a 7-required-parameter mutation tool with 14% schema coverage, the description leaves the top-level identity and concurrency parameters (itemId, workspaceId, projectId, idempotencyKey, expectedRevision) unexplained, which is a real gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14%, so the description must carry the load. It does explain the deep edit internals well (edit.structure ordering, beforeId null meaning append, edit.duration frames/placements policies, ownership detach requirement) but says nothing about the required top-level itemId, workspaceId, projectId, idempotencyKey, or expectedRevision semantics beyond the terse 'Revision checked'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Edit composition elements by stable element ID from the editor snapshot') and enumerates the edit domains (text content, style, animation, structure). An agent can identify the operation, though overlap with siblings like editor_items_move and editor_items_remove is never explicitly disambiguated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied throughout ('Group by inserting a group and moving children into it', 'beforeId null appends') but there is no explicit statement of when to prefer this tool over editor_items_move, editor_items_remove, or editor_text_set. Conditions such as revision-checking and dryRun defaulting are stated, so the agent can infer safe usage without being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_crop_seteditor crop setADestructiveIdempotentInspect
Adjust the crop of one existing source view after a layout has been applied. Revision checked; dryRun previews by default. Preserves the other shots.
| Name | Required | Description | Default |
|---|---|---|---|
| crop | Yes | ||
| dryRun | Yes | ||
| itemId | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, and the description adds real context beyond that: revision checking (optimistic concurrency against expectedRevision), dryRun defaulting to true so the operation is a preview unless explicitly committed, and 'preserves the other shots' scoping the blast radius. It stops short of saying what happens on a revision mismatch (error vs. merge).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, all front-loaded: the action, the precondition, the concurrency/dryRun behavior, the scope guarantee. No filler and no restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers the key safety behavior for a destructive mutation. However, for a 7-required-parameter nested-object tool with 14% schema coverage, the absence of crop coordinate semantics and idempotency-key guidance 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% – only projectId is documented ('UUID string'), and the crop object's x/y/width/height have no textual explanation of whether they are normalized fractions or pixels. The description clarifies expectedRevision ('revision checked') and dryRun ('previews by default'), but leaves itemId, workspaceId, and idempotencyKey semantics unaddressed despite all seven being required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adjust the crop of one existing source view') plus a precondition ('after a layout has been applied'). No sibling performs crop adjustment, so the agent can distinguish it silently, but no sibling is named for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'After a layout has been applied' gives a precondition, and 'dryRun previews by default' hints at the safe usage path, so usage is implied rather than spelled out. There is no statement of when not to use this versus siblings like editor_composition_edit or timeline_trim_apply, and no guidance on promoting a dryRun preview to a real write.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_edit_undoUndo Saved EditADestructiveIdempotentInspect
Restore one saved editor action at the expected current revision. Requires the action ID from edit history and an idempotency key. Existing project data is changed.
| Name | Required | Description | Default |
|---|---|---|---|
| actionId | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds genuine context beyond that: it warns 'Existing project data is changed,' explains the revision precondition ('at the expected current revision' implies optimistic concurrency that will fail on a stale revision), and flags the idempotency-key requirement. It does not describe what is destroyed in detail, but the added context is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences that are front-loaded with the action, then the input requirements, then the side effect. No wasted words, though the phrasing could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. For a destructive mutation, the description covers the key behavioral facts an agent needs: revision precondition, idempotency key, and that project data changes. Only the two undocumented UUID params leave a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only projectId is annotated), so the description carries burden. It adds meaning for three of five params: actionId ('from edit history'), expectedRevision ('expected current revision'), and idempotencyKey ('an idempotency key'). projectId and workspaceId remain unexplained in both schema and description, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: restoring one saved editor action, scoped to the expected current revision. An agent can distinguish this from editor_history_list (which reads history) or timeline_edit_apply, though the description never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Requires the action ID from edit history' implicitly points the agent to the history listing tool as the source of the actionId, which is useful. However, it never states when to use undo versus re-applying an edit or reverting via other timeline tools, and gives no prerequisites beyond the inputs themselves.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_history_listList Edit HistoryARead-onlyIdempotentInspect
Read up to 50 saved edit actions, their labels and undo state. Does not restore or change the project.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds real value beyond them by disclosing the 50-item cap and explicitly clarifying that no state is mutated or restored, which is the key behavioral question for a history tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core read operation front-loaded and the safety clarification immediately after. Nothing wastes space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover the safety profile. The description still leaves the workspaceId parameter unexplained and offers no pagination or ordering context, but it is otherwise adequate for a simple read-only list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only projectId carries a terse 'UUID string.' note; limit and workspaceId rely on type/bounds alone). The description partially compensates by explaining that limit reads 'up to 50 saved edit actions', giving the bound meaning, but it says nothing about workspaceId scoping or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read ... saved edit actions, their labels and undo state') and the phrase 'Does not restore or change the project' implicitly distinguishes it from write siblings like editor_edit_undo. It never names a sibling explicitly, so it falls just short of full differentiability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The negative clause ('Does not restore or change the project') implies this is the inspection counterpart to undo/restore operations, giving usable context. However, there is no explicit when-to-use or when-not-to-use statement and no alternative tool is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_items_moveeditor items moveADestructiveIdempotentInspect
Move selected timeline items to explicit times and layers. Revision checked; dryRun previews by default.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| dryRun | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds real value beyond that: it discloses optimistic concurrency ('Revision checked') and that the default is a non-committing preview ('dryRun previews by default'), which the annotations alone do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler, and the core operation is front-loaded before the revision/dryRun caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be explained. But for a destructive, 6-required-parameter mutation with low schema coverage, the description omits the idempotency contract and the meaning of the items array and its limits, leaving notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% and six parameters are required. The description hints at startSeconds/layerIndex ('explicit times and layers') and expectedRevision ('Revision checked'), but leaves idempotencyKey, items array bounds (1-500), and item id/layer constraints entirely to the schema. It does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Move selected timeline items') plus the scope of the operation ('explicit times and layers'). It is distinguishable from siblings like update_timeline_clip or batch_update_timeline_clips, though it never names an alternative directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'dryRun previews by default' implies the intended preview-then-commit workflow, but there is no explicit guidance on when to prefer this tool over update_timeline_clip, batch_update_timeline_clips, or editor_items_remove.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_items_removeeditor items removeBDestructiveIdempotentInspect
Remove selected timeline items and, if requested, their linked captions. Revision checked; dryRun previews by default. The saved action can be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | Yes | ||
| itemIds | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes | ||
| removeAssociatedCaptions | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuinely new context: optimistic revision checking, dryRun defaulting to preview, caption cascade behavior, and that the saved action is undoable — all beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the destructive action front-loaded and no filler. Minor cost: "Revision checked" is compressed jargon that would need unpacking to be actionable against the expectedRevision parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 dryRun/undo semantics are present. For a destructive, 7-required-parameter tool at 14% schema coverage, though, the description leaves expectedRevision and idempotencyKey — both essential to invoking it successfully — undocumented anywhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% with 7 required parameters, so the description must compensate and largely does not. It explains dryRun's default-preview behavior and nods at removeAssociatedCaptions ("if requested, their linked captions"), but expectedRevision, idempotencyKey, workspaceId, and itemIds are never clarified — "Revision checked" only gestures at the concurrency contract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Remove selected timeline items") plus the optional caption cascade, which is more precise than the name alone. However, it never distinguishes itself from the near-identical sibling delete_timeline_items, so an agent cannot tell which removal tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage context by noting the revision check and that dryRun previews by default, which suggests a safe preview-then-apply workflow. But it gives no explicit when-to-use or when-not-to-use guidance relative to delete_timeline_items, batch_update_timeline_clips, or editor_edit_undo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_snapshot_getRead Editor SnapshotARead-onlyIdempotentInspect
Read the current revision, stable timeline IDs, captions, style and bounded media context before a precise revision. Signed media links are refreshed by reading again.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| offset | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: media context is 'bounded' and signed media links go stale and must be refreshed by reading again. That is useful disclosure not available in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with the returned-content list front-loaded and the refresh nuance last. No filler and every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 spelled out, and the description does summarize the payload. But for a tool with five required parameters and 20% schema coverage, the meaning of expectedRevision and the pagination contract are left entirely unexplained, leaving a noticeable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, and the sole documented field is a generic 'UUID string.' The description never explains expectedRevision (a likely concurrency precondition), offset/limit pagination, or workspaceId. 'Bounded media context' only faintly gestures at limit/offset and does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Read) and resource (editor snapshot) and enumerates what it returns: current revision, stable timeline IDs, captions, style and bounded media context. That is far more concrete than a tautology. It doesn't explicitly contrast with siblings like editor_history_list, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'...before a precise revision' implies the tool belongs at the start of an edit workflow, and the note that signed media links are refreshed by re-reading is a genuine usage hint. However, no alternative is named and no explicit when-not condition is given, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_text_seteditor text setBDestructiveIdempotentInspect
Create or revise one title or text overlay with explicit timing. Revision checked; dryRun previews by default. This edits project text, not spoken audio or captions.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | ||
| text | Yes | ||
| dryRun | Yes | ||
| itemId | Yes | ||
| textKind | Yes | ||
| projectId | Yes | UUID string. | |
| workspaceId | Yes | ||
| startSeconds | Yes | ||
| idempotencyKey | Yes | ||
| durationSeconds | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior: revision checking (optimistic concurrency) and, critically, that dryRun defaults to true so the call previews rather than writes unless overridden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and no filler. Slightly under-specified rather than verbose, so brevity here is not purely a virtue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-required-parameter mutation with 9% schema coverage and only one described property, the description is too thin. It flags the critical dryRun default but omits expectedRevision mechanics, idempotency behavior and spec shape; the output schema removes the need to explain returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 9% across 11 required parameters, so the description carries nearly the whole burden. It only gestures at timing ('explicit timing') and text/title concepts, leaving spec, itemId, idempotencyKey, expectedRevision and textKind semantics undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create or revise one title or text overlay with explicit timing') and scopes it away from audio and captions. It does not, however, differentiate itself from the sibling add_text_overlay, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a useful when-to-use signal via 'dryRun previews by default' and a when-not via 'not spoken audio or captions.' But it names no alternative tool and gives no condition distinguishing it from add_text_overlay, leaving the primary routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exports_caption_track_getRead Export Caption TrackARead-onlyIdempotentInspect
Read a WebVTT caption track from the completed export's immutable canonical speech snapshot, preserving the actual export trims. Returns unavailable for older exports or unverified speech; never fabricates captions from titles or current edited timelines.
| Name | Required | Description | Default |
|---|---|---|---|
| exportId | Yes | UUID string. | |
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds real value beyond them: availability limits (older exports, unverified speech) and an explicit non-fabrication contract against titles and edited timelines.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the core action and then the failure semantics. Dense but each clause carries information; the second sentence is slightly overloaded but earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers the key behavioral edges for a read-only two-parameter tool. The only real gap is parameter meaning, which is minor against the otherwise complete behavioral picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: exportId carries a bare 'UUID string.' and workspaceId has no description at all. The description adds nothing about what either parameter means or how workspace scoping interacts with the export, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Read) plus a precisely scoped resource: a WebVTT caption track from the completed export's immutable canonical speech snapshot. It distinguishes itself from transcript and caption siblings by anchoring to the export snapshot preserving actual trims, so an agent can tell it apart without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states the when-not conditions: 'Returns unavailable for older exports or unverified speech' and refuses to work from titles or current edited timelines. It does not name a sibling alternative (e.g. media_transcript_get) for the unsupported cases, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exports_listList ExportsARead-onlyIdempotentInspect
List exports with render status and progress. Completed exports include a signed download URL. Pass exportId to return one export.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum exports to return when exportId is absent (1-50). | |
| offset | No | Export offset when exportId is absent. | |
| exportId | No | Return only this export, including its signed download URL when the render is complete. UUID string. | |
| projectId | No | Filter exports by project ID. UUID string. | |
| workspaceId | No | Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| exports | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds valuable behavioral context beyond annotations: render status/progress and the presence of signed download URLs on completed exports. This informs the agent about the data shape and what to expect, without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. It front-loads the primary action and then adds the key differentiator (single export via exportId). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, rich annotations, complete parameter schemas, and presence of an output schema, the description is sufficiently complete. It covers what the tool does, the main data included (status/progress, signed URLs), and the single-record mode. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter clearly explained. The description adds no new information about parameters beyond saying 'Pass exportId,' which the schema already documents. This meets the baseline of 3 when the schema carries the parameter-semantics burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List exports with render status and progress.' It also distinguishes two modes — listing all exports vs. returning one by exportId — which separates this from sibling tools like exports_start. The verb 'List' and resource 'exports' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it lists exports with status/progress and notes that completed exports include signed download URLs. It also instructs when to pass exportId to retrieve a single export. While it does not explicitly name alternatives or exclusions, the single-vs-list distinction serves as effective usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exports_startStart ExportBDestructiveInspect
Export a BlitzReels video or native carousel and return export and job IDs for status checks.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Video container or native carousel image ZIP format | mp4 |
| projectId | Yes | BlitzReels project ID. UUID string. | |
| resolution | No | Export resolution | 1080p |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| expectedRevision | No | Reject export if the Project changed since this revision was read. | |
| coverFrameSeconds | No | Optional cover thumbnail timestamp |
Output Schema
| Name | Required | Description |
|---|---|---|
| export | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and readOnlyHint=false, so the safety profile is covered externally. The description adds only that the call is asynchronous (returns export and job IDs), a fact the output schema likely already conveys. It does not explain the destructive classification, whether re-exporting overwrites prior output, or how the idempotencyKey param interacts with idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The action comes first and the follow-up identifier information second; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and annotations carry the return shape and safety profile, so the description needn't repeat them. But for an async, destructive-tagged export initiation tool, it omits when to invoke it relative to the many export/clip siblings and gives no sense of the job lifecycle beyond the ID handoff, leaving clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters including the format/resolution enums and the idempotencyKey are documented in the schema itself. The description contributes no additional parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Export") and resource ("BlitzReels video or native carousel"), which is clear and concrete. It does not, however, differentiate itself from siblings like exports_list, clips_export, or exports_caption_track_get, so an agent cannot tell from the description alone why it should pick this one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. The only routing hint is that it "return[s] export and job IDs for status checks," which implies a follow-up call but never states when this tool is the right choice versus other export-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_faceless_createGenerate Faceless VideoADestructiveIdempotentInspect
Turn a script into a full faceless video project: scene plan, generated visuals, optional voiceover, captions, music, and sound. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | The narration or story to turn into a video. | |
| voiceId | No | Optional voice override from the BlitzReels voice catalog. The Story Kit narrator voice is used when omitted. | |
| seriesId | No | Optional Series UUID. Inherits its Story Kit and branding defaults for this new video. | |
| storyKitId | No | Reusable Story Kit UUID for characters, references, locations, style, and narrator voice. | |
| videoModel | No | Image-to-video model used to animate scenes. | seedance-2.0-ref2v |
| projectName | No | Name for the created BlitzReels project. | Faceless Video |
| visualStyle | No | Optional art direction override. A Story Kit style is used when omitted. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| imageModelId | No | Model used to generate scene images. | fal-ai/nano-banana-pro |
| captionStyleId | No | Optional caption theme ID from captions_themes_list. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| plannerModelId | No | Model used to plan the video scenes. | google/gemini-3.8-flash |
| includeCaptions | No | Burn captions into the timeline. | |
| generateVoiceover | No | Narrate the script with a generated voice. | |
| generateSoundEffects | No | Add generated sound effects. | |
| targetDurationSeconds | No | Target runtime between 10 and 120 seconds. | |
| styleReferenceAssetIds | No | Optional stills that lock rendering medium, palette, lighting and texture. Not used as scene frames. | |
| generateBackgroundMusic | No | Add a generated background track. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, but the description adds information they cannot convey: the call consumes AI credits, and the result is asynchronous, requiring polling via generation_jobs_get. That credit-cost warning is the highest-value behavioral fact for this tool. It does not describe what project state is created or how failures/credit refunds are handled, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The pipeline scope is front-loaded and the cost/polling consequence is placed second, which is the right priority order for an agent deciding whether to call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter, expensive, asynchronous mutation, the description gives the essentials: what it produces, that it costs credits, and how to retrieve the result. An output schema exists, so return values needn't be spelled out. A note on how seriesId/storyKitId inherit defaults, or expected job duration, would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 18 parameters, including the 58-value videoModel enum and the idempotencyKey retry rule, is already documented in the schema. The description only echoes the feature list (voiceover, captions, music, sound) without adding guidance such as model-selection tradeoffs or how seriesId/storyKitId defaults interact. Baseline 3 applies when the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Turn a script into a full faceless video project') and enumerates the concrete outputs (scene plan, visuals, voiceover, captions, music, sound). This clearly separates it from the granular siblings like generation_video_create, generation_image_create, and video_storyboard_create, which do one piece rather than the whole pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the context of use (script-in, full project out) and the follow-up step ('returns a job to poll with generation_jobs_get'), which is the key routing info an agent needs. It stops short of explicit exclusion language such as 'use generation_voiceover_create / generation_music_create if you only want one asset,' so the boundary with the other generation_* tools is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_image_createGenerate ImageADestructiveIdempotentInspect
Queue an AI image generation into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Exact output size as WIDTHxHEIGHT, for example 1920x2304. Only models whose parameters.size.supported is true in generation_options_list; it replaces aspectRatio, and credits scale with pixel count. | |
| model | No | Image model. Call generation_options_list for costs. | fal-ai/nano-banana-2 |
| prompt | Yes | What the image should show (8-5000 characters). | |
| folderId | No | Optional media library folder ID. | |
| resolution | No | Native image resolution. Call generation_options_list for model support and resolution pricing. Unsupported settings are rejected. | |
| aspectRatio | No | Output aspect ratio. | 1:1 |
| characterId | No | Workspace character to keep consistent (characters_list). Its reference images or trained weights and description are added; they count toward the model reference limit. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| enhancePrompt | No | Enhance using BlitzReels model grammar and actual input context. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| referenceAssetIds | No | Ordered image references. Model-specific limits are listed in generation_options_list; unsupported references fail. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, destructive, idempotent, and open-world behavior; the description adds genuinely useful context that the call spends AI credits (a cost the annotations do not convey) and returns an asynchronous job handle. However, it doesn't reconcile the destructiveHint=true flag or explain what idempotencyKey protects against, and with credit spend being the key risk, a 3 is fair rather than generous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and destination, then the cost and the follow-up step. Every clause earns its place with no restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter async job-creation tool with annotations and an output schema, the description covers the essentials: what it produces, that it costs credits, and how to track the result. It could say slightly more about the credit magnitude or the idempotency-retry expectation, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 11 parameters including the model enum, size/resolution constraints, characterId, and referenceAssetIds are already documented in the schema. The description adds no parameter-level meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (queue), resource (AI image generation) and destination (BlitzReels media library), which cleanly separates it from the many sibling generation_* tools that produce video, music, sound, voiceover, or faceless content. An agent can identify the tool's 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use (create an image job) and routes the follow-up step explicitly to generation_jobs_get for polling, which is a real workflow hint. It does not state exclusions or contrast with generation_video_create / generation_faceless_create when a prompt could apply to either.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_jobs_cancelCancel Generation JobADestructiveIdempotentInspect
Request cancellation of the identified queued or running generation. Work already performed can consume credits; cancellation does not establish a refund.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID returned by any generation_*_create tool. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, but the description adds non-obvious billing behavior: already-performed work can consume credits and cancellation does not establish a refund. It stops short of saying whether the cancellation is immediate, guaranteed, or what happens to partial output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and scope, followed by the consequential caveat. No filler and nothing that fails to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two fully-documented params and an output schema covering return values, the description supplies the missing piece (cost/refund consequences) for a destructive, non-readOnly operation. Minor gaps remain around post-cancellation state and reversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so jobId and workspaceId are already fully documented in the schema; the description adds no additional parameter meaning. Baseline 3 applies when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (cancel) and resource (generation job) and narrows the applicable scope to jobs that are 'queued or running', which distinguishes it from generation_jobs_get and the generation_*_create siblings without requiring the schema to be opened.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope qualifier 'queued or running' implies when the tool is valid, but there is no explicit when-not guidance and no named alternative (e.g. what to do for an already-completed job). Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_jobs_getGet Generation JobARead-onlyIdempotentInspect
Read generation status, failure category, ledger-confirmed credit outcome, prompt history and compatible model alternatives. Alternatives report duration splits, estimated credits and unverified acceptance. reviewUrl opens prompt review and support escalation. Completed jobs include a media ID and download URL.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID returned by any generation_*_create tool. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds real context: ledger-confirmed credit outcome, an 'unverified acceptance' caveat on alternatives, reviewUrl behavior for prompt review/escalation, and media ID/download URL on completion. It omits auth/rate-limit detail, keeping 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the core action and then layering return-field detail. No filler, though the sentence about alternatives is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the description is not required to explain return values, yet it usefully summarizes them. For a simple two-parameter read tool with full annotation and schema coverage, nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both jobId and workspaceId are already documented in the schema. The description adds no parameter-level detail (e.g., where jobId comes from), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Read") and resource (generation status/job), and enumerates the exact fields returned (status, failure category, credit outcome, prompt history, model alternatives). An agent can tell what it does, though the description never explicitly contrasts it with the sibling generation_jobs_cancel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus alternatives such as generation_jobs_cancel or generation_options_list, nor any prerequisite like 'poll after a generation_*_create'. Usage is only inferable from the tool name and the returned-content list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_music_createGenerate MusicADestructiveIdempotentInspect
Queue a background music track into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| mood | No | Track mood. | neutral |
| prompt | No | Optional description of the track. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| durationSeconds | No | Track length between 10 and 120 seconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=false, openWorldHint=true, idempotentHint=true, and destructiveHint=true, the description still adds two facts not present in structured data: the operation consumes AI credits, and it is asynchronous, returning a job handle rather than a finished asset. It does not explain the destructiveHint=true flag, but nothing in the text contradicts it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and artifact, followed by the two operationally important facts (credit spend, async polling). Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-param, fully documented generation tool with an output schema, the description covers the essentials: what is produced, that it costs credits, and how to retrieve the result. The remaining gap is sibling differentiation, which the description leaves to the reader.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all five parameters (mood enum, prompt, workspaceId, idempotencyKey, durationSeconds bounds) documented inline, so the schema does the heavy lifting. The description adds no parameter-level detail beyond what is already there; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: "Queue a background music track into the BlitzReels media library," which is distinct from generation_video_create, generation_image_create, generation_sound_create, and generation_voiceover_create by naming the artifact type. It stops short of explicitly contrasting itself with the nearest sibling (generation_sound_create), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides the follow-up step ("returns a job to poll with generation_jobs_get"), which is useful workflow context, but gives no condition for choosing this over generation_sound_create or the other generation_* tools, and no exclusions. Usage is implied by the artifact type rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_options_listList Generation OptionsARead-onlyIdempotentInspect
List the models, defaults, limits, and credit costs available for one generation kind before queueing it. Video duration is an enum per model (durations_seconds), not a min-max range.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Generation kind to describe. |
Output Schema
| Name | Required | Description |
|---|---|---|
| options | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuine value beyond them by disclosing the shape of returned data: video duration is an enum per model (durations_seconds), not a min-max range — a trait an agent would otherwise guess wrong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded: the first states the purpose, the second immediately delivers the non-obvious durations_seconds caveat. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be described in full, yet the description includes the one detail most likely to cause misuse (duration enum vs range). For a single-enum-param read tool, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter (kind), and schema description coverage is 100% with a full enum of allowed kinds. The description adds no meaning to the 'kind' parameter itself, so the baseline 3 applies; the durations_seconds note pertains to output, not this parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (models, defaults, limits, credit costs) scoped to 'one generation kind before queueing it'. An agent can distinguish it from the generation_*_create siblings, which consume the options this tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before queueing it' clearly signals this is a pre-flight/discovery call that precedes a generation create. It does not explicitly name the alternative tools (generation_image_create, generation_video_create, etc.), but the sequencing intent is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_plan_briefGet Generation Plan BriefARead-onlyIdempotentInspect
Read a generation brief from rawPrompt. Source-video edits return execution for generation_video_create with required assets and transformation controls. New scenes return an authoring grammar and planJsonSchema for generation_plan_validate. The video creation provenance.originalRequest field retains rawPrompt when supplied. This read does not generate media or spend credits.
| Name | Required | Description | Default |
|---|---|---|---|
| genre | No | Genre pack id (e.g. pixar-culture-skit). The brief lists available ids in availableGenres; the pack's beats and visual contract override the generic grammar. | |
| rawPrompt | No | Original request. Clone or character-replacement requests select a video transformation brief instead of a new-story plan. | |
| aspectRatio | No | 9:16 | |
| visualStyle | No | Visual style preset id; its locked style contract is included in the brief. | |
| videoModelId | No | Target video model id (see generation_options_list, kind: video). Defaults to the strongest single-take model. | |
| targetDurationSeconds | No | Desired final video duration in seconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| brief | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely new behavioral context: no media is generated and no credits are spent, plus the provenance.originalRequest retention note. The latter sentence is oddly phrased and hard to parse, which costs a point.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The mode-routing information is front-loaded, but the sentence "The video creation provenance.originalRequest field retains rawPrompt when supplied" is dense, jargon-laden and does not help an agent decide or invoke correctly. The description reads as five compressed statements rather than a clean, prioritized explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover the safety profile, so the description need only establish the routing logic and cost profile — both of which it does. Minor gap: no stated prerequisites for the genre/visualStyle presets referenced by the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so the schema already documents genre, visualStyle, videoModelId, aspectRatio and duration thoroughly. The description adds meaning mainly for rawPrompt (source-video/transformation vs. new-story branching), but that same branching is already stated in the schema's rawPrompt description, so the added value is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource is explicit ("Read a generation brief from rawPrompt") and the description distinguishes the two output modes and names the downstream consumers generation_video_create and generation_plan_validate. What a "brief" actually is remains somewhat abstract jargon, so it falls just short of a fully self-evident purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the workflow position clear: this is the read/planning step whose output feeds generation_video_create (edits) or generation_plan_validate (new scenes). It does not state explicit "do not use when" conditions or required preconditions (e.g., must a genre pack exist first), which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_plan_validateValidate Generation PlanARead-onlyIdempotentInspect
Validate a self-authored generation plan against the schema and the target model's real capabilities before execution. Returns directive errors to fix and revalidate; only a valid plan is executable.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | The generation plan object authored from generation_plan_brief's planJsonSchema. |
Output Schema
| Name | Required | Description |
|---|---|---|
| valid | Yes | |
| errors | Yes | Empty when valid. Each entry states exactly what to change. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds context about return behavior ('Returns directive errors to fix and revalidate') and establishes this tool as a gate for execution. This goes beyond annotations without conflicting with them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundant wording. The purpose is front-loaded, and the second sentence efficiently conveys return behavior and the validity constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single well-documented parameter, output schema, and clear annotations, the description sufficiently covers purpose, usage context, and return behavior. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a full description for the 'plan' parameter, referencing generation_plan_brief's planJsonSchema. The tool description adds no additional parameter-specific semantics, but with 100% schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: validating a generation plan against the schema and model capabilities. It uses a specific verb ('validate') and resource ('generation plan'), and the phrase 'before execution' distinguishes it from planning or execution tools like generation_plan_brief.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: after authoring a plan and before execution. It does not explicitly name alternatives or exclusions, but the context is clear enough from 'self-authored' and 'only a valid plan is executable.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_sound_createGenerate Sound EffectADestructiveIdempotentInspect
Queue a sound effect into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| loop | No | Produce a seamlessly loopable effect. | |
| prompt | Yes | The sound to create (3-500 characters). | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| durationSeconds | No | Effect length between 0.5 and 30 seconds. | |
| promptInfluence | No | How literally to follow the prompt, between 0 and 1. Higher is more literal. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readonly, destructive, idempotent, and open-world traits. The description adds genuinely new context: it spends AI credits (cost/irreversibility) and is asynchronous, requiring polling via generation_jobs_get. That async + cost disclosure goes beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, both front-loaded with the highest-value facts (what it does, cost, then next step). Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be described, and the async-job/cost model is covered. What remains slightly thin is guidance on choosing this over sibling generation tools, but for a 6-param tool with full schema coverage it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so prompt, loop, durationSeconds, promptInfluence, workspaceId, and idempotencyKey are all documented in the schema. The description adds no parameter-level meaning beyond that, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Queue") and resource ("sound effect") and locates it in the BlitzReels media library. It implicitly distinguishes from generation_music_create and generation_voiceover_create by naming the artifact type, but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage through "returns a job to poll with generation_jobs_get," which correctly points to the follow-up tool, but gives no explicit when-to-use-this-vs-alternatives (e.g. music vs voiceover vs sound effect) and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_video_createGenerate VideoADestructiveIdempotentInspect
Queue video generation, image animation, source-video editing or character replacement into the media library. Editing accepts referenceVideoAssetIds and transformation controls, including original-audio preservation. Spends AI credits and returns a job readable with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional seed for reproducible output. | |
| model | No | Video model. generation_options_list publishes generation type, source limits, character controls, resolution and pricing for each model. | kling-v3-pro-t2v |
| prompt | Yes | What should happen in the shot (3-5000 characters). | |
| folderId | No | Optional media library folder ID. | |
| provider | No | Explicit provider must support the model and input mode. auto uses a configured compatible provider. | auto |
| provenance | No | Original user request before prompt authoring, and previous failed job ID when retrying. Retained for review; never infer missing wording. | |
| resolution | No | Output resolution. Call generation_options_list for model-specific supported values and defaults. Unsupported settings are rejected. | |
| aspectRatio | No | Output aspect ratio. | 9:16 |
| characterId | No | Workspace character to keep consistent (characters_list). Its reference images come first (@Image1 is the primary), capped to the model limit. Only models whose parameters.character_id.supported is true in generation_options_list. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| enhancePrompt | No | Enhance using BlitzReels model grammar and actual input context. | |
| generateAudio | No | null uses model audio behavior. Explicit true/false must be supported by the selected model. | |
| sourceAssetId | No | First-frame still. Required only when that model's parameters.source_asset_id.required is true. Optional on reference-capable I2V including Seedance 2.5. Text-to-video rejects it. Cannot combine with reference arrays and end_frame_asset_id. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| negativePrompt | No | What to avoid in the shot. | |
| transformation | No | ||
| durationSeconds | No | Video transformations inherit the processed source duration and aspect ratio; duration_seconds is not a trim request. Choose a value from the selected model's durations_seconds. duration_seconds_min and duration_seconds_max are the bounds of that list, not a continuous range. | |
| endFrameAssetId | No | Last-frame still. Interpolates from the source first frame to this image across the full duration. Requires a source first frame; cannot combine with reference arrays. | |
| referenceAssetIds | No | Ordered reference images: Seedance 2.5 up to 30; Seedance 2.0 ref2v up to 9; other reference models up to 4. Source counts toward the limit. | |
| referenceAssetUris | No | BytePlus ModelArk real-human assets as asset://ID, for people who verified themselves in the BytePlus console. Requires provider byteplus-modelark and a model whose parameters.reference_asset_uris.supported is true in generation_options_list. They follow referenceAssetIds in @ImageN numbering and count toward the reference limit. | |
| referenceVideoRange | No | Cut this range from the reference video before a character swap or video edit; billed for the range length. | |
| referenceAudioAssetIds | No | Reference audio: Seedance 2.5 up to 10; Seedance 2.0 ref2v and fast up to 3. Other models reject them. | |
| referenceVideoAssetIds | No | Video transformations require one processed source video. Other reference modes have model-specific counts published by generation_options_list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavior beyond the annotations: it says the tool queues asynchronous work, spends AI credits, returns a job readable via generation_jobs_get, and supports editing controls including original-audio preservation. This complements the destructive/idempotent annotations without contradicting them, though it does not explain model-specific constraints or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences with no waste. It is front-loaded with the creation modes and then adds cost and job-retrieval behavior where useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 23-parameter tool, the description gives the essential high-level shape: supported creation/editing modes, credit spend, and asynchronous job retrieval. The rich schema and existing output schema cover most remaining details, though the description could have pointed more explicitly to generation_options_list for model capability discovery.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 96%, so the schema already documents nearly all 23 parameters in depth. The description mentions referenceVideoAssetIds and transformation controls, but adds little beyond what the schema already provides, so this sits at the baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: queue video generation, image animation, source-video editing, or character replacement into the media library. It clearly identifies this as a video-creation tool, but it does not explicitly distinguish it from specialized sibling generators such as generation_faceless_create or generation_image_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The listed modes imply when this tool is appropriate, and it points to generation_jobs_get for reading the resulting job. However, it gives no explicit when-not guidance and does not name alternative generation tools or prerequisites such as consulting generation_options_list before choosing model settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generation_voiceover_createGenerate VoiceoverADestructiveIdempotentInspect
Queue a text-to-speech voiceover into the BlitzReels media library. Spends AI credits and returns a job to poll with generation_jobs_get.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Script to read aloud (3-8000 characters). | |
| speed | No | Speaking rate between 0.5 and 1.6. | |
| voiceId | No | Catalog voice ID (generation_options_list with kind voiceover) or a workspace voice ID (voices_list), such as a cloned voice. | pNInz6obpgDQGcFmaJgB |
| voiceStyle | No | Delivery emotion. | neutral |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| generation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds valuable context beyond annotations: it consumes AI credits (cost awareness) and is asynchronous (returns a pollable job). These aren't captured by the hints. Annotation destructiveHint=true is odd but not contradicted — queueing a job writes to the library.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste; the action and the key behavioral facts (credit spend, async job) are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be explained, and annotations cover safety flags. The description supplies the credit and async-polling essentials. Minor gap: no mention of idempotency for retries, though the schema covers the key.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all six parameters (text, speed, voiceId, voiceStyle, workspaceId, idempotencyKey) are already documented. The description adds nothing parameter-specific, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Queue) and resource (text-to-speech voiceover) with destination (BlitzReels media library). Clearly distinguishable from sibling generators like generation_image_create or generation_music_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear workflow signal: it returns a job to poll with generation_jobs_get. However, it doesn't explicitly contrast voiceover generation against sibling generation_* variants or state when-not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
learning_controlControl learning jobBIdempotentInspect
Cancel a queued or running analysis, recover an unconfirmed dispatch by its existing identity, or deliver a retained result. Resume never repeats an uncertain model call and rejects changed owner direction.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | ||
| action | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| error | Yes | |
| runId | Yes | |
| status | Yes | |
| evidence | Yes | |
| proposal | Yes | |
| canResume | Yes | |
| direction | Yes | |
| documents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare mutation (readOnly=false), idempotency, and non-destructiveness. The description adds genuine behavioral detail beyond them: resume 'never repeats an uncertain model call' and 'rejects changed owner direction,' which concretely explains the idempotency guarantee. It does not explain what cancel does to an in-flight result, but the resume semantics are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation list followed by the resume safety guarantee. No filler, though jargon like 'unconfirmed dispatch by its existing identity' slightly obscures meaning for an agent unfamiliar with the domain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covered, and annotations carry the safety profile. Still, the prose-to-enum mismatch and total absence of parameter guidance leave the agent on a 3-required-parameter mutation tool with clear gaps before it can invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning and largely does not. It never names jobId, action, or workspaceId, nor explains the resume/cancel mapping to the action enum; only the vague phrase 'by its existing identity' hints at the identifier parameter without any format or usage detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific operations (cancel a queued/running analysis, recover an unconfirmed dispatch, deliver a retained result) for the 'learning job' resource, so the general purpose is clear. However, it lists three operations while the action enum only offers 'resume' and 'cancel', leaving the agent unsure whether 'recover' and 'deliver' are separate actions or aliases of resume. Sibling differentiation from learning_get/learning_start/learning_quote is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied context: cancel applies to a queued or running analysis, and resume is a safety operation that 'rejects changed owner direction.' There is no explicit when-to-use-vs-alternatives guidance (e.g., vs learning_get for status, or vs generation_jobs_cancel), so routing between siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
learning_getRead learning jobBRead-onlyIdempotentInspect
Read frozen evidence, exact creative lineage, progress and saved lessons for a workspace learning job. Current owner direction overrides saved suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| error | Yes | |
| runId | Yes | |
| status | Yes | |
| evidence | Yes | |
| proposal | Yes | |
| canResume | Yes | |
| direction | Yes | |
| documents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: the evidence is 'frozen' (snapshot/immutability semantics) and current owner direction overrides saved suggestions (a result-interpretation precedence rule). It stops short of describing auth or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core read purpose and contents front-loaded, and no filler. The second sentence is terse but earns its place by stating a precedence rule.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is unnecessary, and annotations carry the safety profile for this read tool. The main shortfall is the absence of any parameter explanation, but otherwise the definition is sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions jobId or workspaceId, so it does not compensate for the undocumented parameters. The agent must infer meaning purely from self-descriptive parameter names, which is a clear gap under the low-coverage rule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (workspace learning job), plus the concrete contents returned: frozen evidence, creative lineage, progress, and saved lessons. It is distinguishable from learning_start/learning_control by the read framing, but it does not explicitly name or contrast those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the sibling tools (learning_start, learning_control, learning_quote) that an agent must choose between. The only supplementary sentence addresses precedence of results, not invocation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
learning_quoteInspect learning evidenceBRead-onlyIdempotentInspect
Read bounded Series feedback, metrics, clicks and self-reported outcomes with current owner direction and a cost quote. No model call. Missing or incomparable evidence remains explicit.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| goal | Yes | ||
| language | Yes | ||
| seriesId | Yes | ||
| workspaceId | Yes | ||
| maxVariations | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| credits | Yes | |
| quoteId | Yes | |
| evidence | Yes | |
| expiresAt | Yes | |
| maximumUsd | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuine context beyond that: 'No model call' (no generation side effect), that a cost quote is returned, and that missing or incomparable evidence is surfaced explicitly rather than silently omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no filler; the read scope leads and the two behavioral caveats follow. It is dense and slightly cryptic, but every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover safety. But for a tool with 7 required parameters at 0% schema coverage, the description's thin parameter hints leave an agent under-informed about how to populate the call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 required parameters, so the description carries the full burden. It only loosely gestures at seriesId ('Series feedback') and from/to ('bounded'), and says nothing about goal, language, maxVariations, or workspaceId, leaving most parameters semantically undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a concrete verb ('Read') and enumerates the evidence types (Series feedback, metrics, clicks, self-reported outcomes) plus a cost quote, which roughly reconciles the cryptic name 'learning_quote' with the title. However, it never distinguishes itself from the sibling learning_get, and the domain jargon ('owner direction', 'Series feedback') leaves the actual purpose somewhat opaque.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus learning_get, learning_control, or learning_start, nor any prerequisite or exclusion. The only hint is 'No model call', which implies a read-only inspection but does not route the agent between the four learning_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
learning_startPropose content variationsAIdempotentInspect
Start one bounded model call from a reviewed learning quote and approved credits/USD cap. Saves cited lessons and up to five experimental briefs in the shared brain. Idempotent; never publishes or promises performance.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| goal | Yes | ||
| maxUsd | Yes | ||
| quoteId | Yes | ||
| language | Yes | ||
| seriesId | Yes | ||
| maxCredits | Yes | ||
| workspaceId | Yes | ||
| maxVariations | Yes | ||
| idempotencyKey | Yes | ||
| expectedEvidence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| error | Yes | |
| runId | Yes | |
| status | Yes | |
| evidence | Yes | |
| proposal | Yes | |
| canResume | Yes | |
| direction | Yes | |
| documents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover idempotency and non-destructiveness, so the description adds real value by disclosing what gets written ("cited lessons and up to five experimental briefs in the shared brain") and the blast-radius boundary ("never publishes or promises performance"). Remaining gaps are around failure modes with exhausted credits/USD or what "bounded" costs in practice. Restating "Idempotent" duplicates the annotation rather than adding nuance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with the core action, side effect, and safety boundary front-loaded; no filler. One small inefficiency: "Idempotent" repeats the annotation, and "bounded" / "shared brain" are unexplained jargon that could have been traded for a missing parameter hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Placeholder.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 12 required parameters, so the description carries the full burden and only touches four: quoteId ("reviewed learning quote"), maxUsd/maxCredits ("approved credits/USD cap"), and maxVariations ("up to five"). seriesId, goal, from/to, language, expectedEvidence, idempotencyKey and workspaceId receive no explanation anywhere, and opaque fields like the sha256 expectedEvidence pattern are especially costly to leave undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ("Start one bounded model call") and its concrete inputs/outputs (reviewed learning quote, cited lessons, up to five experimental briefs), which goes well beyond the vague title. It implicitly points at the learning_quote sibling by requiring a "reviewed learning quote," but never names learning_quote/learning_get/learning_control, so an agent must infer the ordering of the family. Clear on what it does, weaker on distinguishing it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"from a reviewed learning quote and approved credits/USD cap" implies prerequisites (a prior learning_quote, an approved budget) but never states them as preconditions. There is no explicit when-to-use vs alternatives, no mention of following up with learning_get or stopping via learning_control. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_assets_getGet Media AssetARead-onlyIdempotentInspect
Get metadata and processing state for one media-library asset without returning transcript segments.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Media asset UUID. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| asset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, idempotentHint, and destructiveHint=false, the description adds meaningful behavioral context by specifying the type of data returned (metadata, processing state) and explicitly stating what is not returned (transcript segments). This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the verb and object, includes a necessary exclusion clause, and contains zero filler. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-id tool with one parameter, a rich output schema, and strong annotations, the description is complete. It explains what the tool returns (metadata and processing state), what it excludes (transcript segments), and the tool is simple enough that no further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single parameter, describing it as 'Media asset UUID. UUID string.' The description reinforces the parameter's role by saying 'one media-library asset', but it does not add additional semantic detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: 'Get metadata and processing state for one media-library asset'. It clearly identifies the verb (get), resource (media-library asset), and scope (one). The exclusion clause 'without returning transcript segments' also distinguishes it from sibling tools like media_transcript_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need metadata and processing state for a single asset. The phrase 'without returning transcript segments' provides guidance that this is not the tool for transcript retrieval, effectively directing users to a sibling tool. It does not explicitly name alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_assets_previewPreview Media AssetARead-onlyIdempotentInspect
Return one bounded JPEG as MCP image content for visual inspection. Images use the stored visual; videos use the existing thumbnail.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Media asset UUID. UUID string. | |
| maxDimension | No | Maximum preview width or height in pixels (256-1536). |
Output Schema
| Name | Required | Description |
|---|---|---|
| asset | Yes | |
| preview | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds valuable context beyond annotations by specifying the output as a bounded JPEG and the conditional behavior for images vs videos (stored visual vs thumbnail). This clarifies what the agent can expect from the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, each adding value. The first sentence states the action and result; the second clarifies behavior for different asset types. No wasted words, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has full schema coverage, an output schema, and safety annotations. The description covers the key behavioral distinction (image vs video) and clearly communicates the return format. Nothing critical is missing for the agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description mentions 'bounded' which relates to maxDimension, but doesn't add new parameter-specific meaning beyond what the schema already provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Return one bounded JPEG as MCP image content for visual inspection.' It specifies the verb (return), the resource (media asset), the output format (JPEG), and the purpose (visual inspection). It also distinguishes itself from siblings by noting the difference between image and video behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the phrase 'for visual inspection' and the tool name, but there is no explicit comparison to alternatives or guidance on when not to use it. No exclusions or alternative tool references are provided, so it falls short of a clear contextual distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_assets_updateUpdate Media AssetADestructiveIdempotentInspect
Rename one media asset, edit its description, move it to a folder, or change B-roll eligibility. Provide at least one of name, description, folderId, or allowUsingAsBroll.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New media asset name. | |
| assetId | Yes | Media asset UUID. UUID string. | |
| folderId | No | Target folder UUID, or null to move the asset to root. | |
| description | No | New description, or null to clear it. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| allowUsingAsBroll | No | Whether the asset may be selected as B-roll. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| asset | Yes | |
| updatedFields | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (destructiveHint=true, idempotentHint=true, readOnlyHint=false). The description reinforces what can be modified but adds no context beyond that — no note on overwrite/clear semantics, reversibility, or auth, though the schema descriptions do cover null-clearing. Adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action list and closed by the key precondition. No filler; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover the safety profile. The description is nearly complete for a single-asset mutation tool, with the only mild gap being no routing guidance among the many sibling media/editor tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter in more detail (e.g. 'null to clear it', UUID formats, maxLength). The description only echoes the field names, adding no syntax or meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb (update) and resource (media asset) and enumerates the four concrete mutations supported: rename, edit description, move to folder, change B-roll eligibility. This clearly distinguishes it from read-side siblings like media_assets_get and media_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a real precondition ('Provide at least one of name, description, folderId, or allowUsingAsBroll'), which tells the agent how to invoke it validly. However it gives no explicit when-to-use/when-not guidance or routing against alternative tools, so it stops 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.
media_folders_createCreate Media FolderAIdempotentInspect
Create one media-library folder in a workspace and return a retry-safe mutation receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Folder name. | |
| iconType | No | Folder icon type. | folder |
| description | No | Optional folder description. | |
| workspaceId | No | Workspace UUID, or null for the default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| parentFolderId | No | Parent folder UUID, or null for the root. |
Output Schema
| Name | Required | Description |
|---|---|---|
| folder | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'retry-safe mutation receipt' which aligns with the idempotentHint annotation, providing a bit more nuance. However, it does not disclose other behavioral aspects beyond what annotations already indicate, and the annotations already cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the primary action and result. It is concise without any redundant words, earning the highest score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complete schema coverage and existence of an output schema, the description is sufficient. It states the core action and the return of a receipt, providing all necessary context for an AI agent to understand the tool's purpose and outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All six parameters are fully described in the schema with 100% coverage. The description itself adds no additional parameter semantics or relationships, so the schema does the heavy lifting. A baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create') and resource ('media-library folder'), and mentions the return of a mutation receipt. This distinguishes it from siblings like media_folders_list, and the scope ('one folder') is explicitly defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage context: when you need to create a media folder. However, it does not explicitly name alternatives (e.g., media_folders_list for listing) or provide when-not-to-use guidance, so there is 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.
media_folders_listList Media FoldersARead-onlyIdempotentInspect
List one bounded level of media-library folders and direct asset counts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum folders to return (1-50). | |
| offset | No | Folder offset. | |
| workspaceId | No | Workspace UUID, or null for the default workspace. UUID string. | |
| parentFolderId | No | Parent folder UUID, or null for root folders. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| folders | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive behavior, and the description adds useful behavioral context: it returns only one level of folders and direct (non-recursive) asset counts. This clarifies scope and return semantics beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that fully conveys the tool's purpose and key scoping behavior. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the description covers the essential scope and return value, and the output schema and annotations fill remaining gaps (pagination, safety). No critical missing details for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not add additional meaning to the parameters; 'bounded level' implicitly relates to parentFolderId but does not explain parameter syntax or behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('media-library folders') and scopes the action ('one bounded level', 'direct asset counts'). This distinguishes it from sibling tools like media_folders_create (create) and media_list (likely asset-level listing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by noting 'one bounded level' (i.e., not recursive), but it does not explicitly state when to prefer this over alternatives or provide exclusions. The parentFolderId parameter further hints at hierarchy traversal, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_import_inspectInspect Import URLARead-onlyIdempotentInspect
Inspect a user-provided public social-video or Google Drive URL and return available import metadata without creating media.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public video URL. Supports social video links and Google Drive file links. |
Output Schema
| Name | Required | Description |
|---|---|---|
| preview | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds useful context by specifying it returns available import metadata and explicitly does not create media, though it does not cover auth requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-constructed sentence that front-loads the action and scope. Every phrase earns its place by clarifying what is inspected, what sources are supported, and what side effect is avoided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one required parameter, full schema coverage, a rich set of annotations, and an output schema. The description provides enough context to call it correctly without needing to explain return values, and the non-creation behavior is stated explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains that the url parameter accepts public social video links and Google Drive file links. The description restates this without adding new syntax, format, or validation detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Inspect'), a precise resource ('user-provided public social-video or Google Drive URL'), and the key scope constraint ('without creating media'). This distinguishes it from the sibling import tool that likely performs creation, so an agent can tell what it does at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without creating media' clearly signals when-not to expect side effects and implicitly contrasts with import tools that do create media. However, it does not explicitly name an alternative tool like media_import_url or state a situation such as 'use this to preview before importing,' so routing is left slightly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_import_scan_pageScan Page For VideoARead-onlyIdempotentInspect
Scan a user-controlled public page and return an importable video URL found on it without creating media.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Video page URL or direct media URL to inspect for an importable video. | |
| confirmAuthorizedToScan | No | Set true only after the user confirms they control the page or are authorized to scan it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| resolved | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false; the description reinforces this with 'without creating media.' It also adds the authorization context (user-controlled public page) that maps to the confirmAuthorizedToScan gate, though it says nothing about failure modes or redirect/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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and packs scope, output, and side-effect posture with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only scan with an output schema present, the description covers what the tool does, the constraint (public page), and the result (importable URL) well. It is slightly thin on what happens when no video is found, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are fully documented in the schema. The description adds only marginal meaning ('user-controlled public page' gestures at confirmAuthorizedToScan) and no syntax or format details beyond what the schema supplies, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (scan), resource (user-controlled public page), scope (public page), and output (importable video URL), and explicitly contrasts with media creation. An agent can distinguish this from media_import_url and media_import_inspect without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without creating media' establishes the non-mutating pre-import context, hinting this is the reconnaissance step before media_import_url. However, it never names the alternative tools or gives explicit when-not-to-use conditions, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_import_urlImport Media From URLAInspect
Import video, audio, images, fonts, SVG or JSON from a direct URL into the private workspace library. Returns a durable asset ID and verified contentHashSha256. Fonts, SVG and JSON are limited to 25 MiB.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the media file to download and upload | |
| name | No | Optional name for the file | |
| projectId | No | Optional project ID to associate the upload with. UUID string. | |
| workspaceId | No | Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string. | |
| autoTranscribe | No | Request transcription for video uploads. | |
| autoSuggestShorts | No | ||
| contentHashSha256 | No | Optional expected SHA-256; mismatching bytes are rejected before deduplication. 64-character hex string. | |
| autoProcessEnabled | No | Enable media analysis after upload. | |
| autoDescribeAfterTranscribe | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| media | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the bar is lower. The description earns credit by adding real behavior: the 25 MiB ceiling for fonts/SVG/JSON and the returned durable asset ID and verified SHA-256 hash. It omits auth requirements and deduplication/overwrite semantics beyond what the schema hints at.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the import scope and source constraint front-loaded before the return value and size limit. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return values need not be elaborated, and annotations cover the safety profile. For a 9-parameter import tool the description is adequate, though the defaults for autoTranscribe/autoSuggestShorts/autoProcessEnabled and the project/workspace targeting rules are left entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 78%, so the schema already documents most of the 9 parameters, including contentHashSha256 and the auto* flags. The description adds only the accepted media-type list and the per-type size limit, which map loosely onto the url parameter; it says nothing about name, projectId/workspaceId scoping, or the auto-process toggles. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (import) and resource (media from a direct URL) plus an enumerated set of supported media types, which implicitly separates it from media_upload_file/media_upload_start. It never names an alternative sibling, so differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'from a direct URL' suggests picking this over the file-upload siblings when the source is a URL. There is no explicit when-to-use, no prerequisite (e.g. URL must be publicly reachable), and no exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_listList MediaARead-onlyIdempotentInspect
List media files in user's library (videos, audio, images)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of assets to return (1-50) | |
| offset | No | Media asset offset. | |
| assetType | No | Filter by asset type | all |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| assets | Yes | |
| bounds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds minimal extra behavioral context beyond scope ('user's library'), but does not disclose pagination, ordering, or default workspace behavior beyond what schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's purpose without redundancy or filler. It is front-loaded and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple filtered-list tool, the description is sufficient when combined with complete schema documentation, strong annotations, and an output schema. There are no complex behaviors or hidden side effects to explain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter documented (limit, offset, assetType, workspaceId). The description adds no new parameter nuance beyond mentioning media types, which duplicates the assetType enum. Baseline 3 is appropriate because the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('media files in user's library'), and clarifies scope with media types ('videos, audio, images'). This clearly distinguishes it from siblings like media_assets_get (singular asset retrieval) and media_folders_list (folders).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly establishes usage context: use this tool to list media assets in the user's library. It doesn't explicitly name alternatives or exclusions, but the purpose is clear enough and no conflicting sibling offers the same list functionality with these filters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_narration_getRead narration timingBRead-onlyIdempotentInspect
Read retained voice inputs, measured duration, audio SHA-256 and word timing. Defaults to 200 words, maximum 500; offset selects the next page. take is null for audio without a retained narration take.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| offset | Yes | ||
| assetId | Yes | UUID string. | |
| workspaceId | No | UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| take | Yes | |
| bounds | Yes | |
| assetId | Yes | |
| wordTimings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description does add two genuinely extra facts: the page size ceiling and that 'take is null for audio without a retained narration take', which clarifies a return-state edge case. With an output schema present, that return-value note is the main additional value, so a middling score is warranted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the returned data, then pagination, then the edge case. No filler. Minor deduction for jargon ('take', 'retained voice inputs') used without definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required, and annotations cover the safety profile. What is missing is the meaning of the required assetId and the optional workspaceId scoping (does omitting workspaceId change results?), which matters for a tool that reads per-asset narration state. Adequate but incomplete for a 4-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: assetId and workspaceId are documented only as 'UUID string.', while limit/offset carry no schema description at all. The description partially compensates by explaining limit (default 200, max 500) and offset (selects the next page), though the default/maximum values merely restate schema constraints. It adds nothing about assetId or workspaceId scoping, so the baseline 3 holds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource (retained narration data: voice inputs, duration, audio SHA-256, word timing). An agent knows exactly what payload it gets. However, it never distinguishes itself from adjacent siblings like media_transcript_get or media_assets_get, which could also surface audio/timing data, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. The pagination sentence ('Defaults to 200 words, maximum 500; offset selects the next page') is invocation mechanics, not selection guidance. The agent must infer this is the narration-timing reader purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_transcript_getGet Media TranscriptARead-onlyIdempotentInspect
Get transcript summary metadata or a bounded window of transcription segments for a video asset.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Summary returns metadata only. Text returns joined text for a bounded segment window. Full returns the bounded segment objects without duplicating their text. | summary |
| limit | No | Maximum transcript segments to return (1-200). | |
| offset | No | Transcript segment offset. | |
| assetId | Yes | The media asset ID to get transcript for. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| transcript | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool's safety profile is clear. The description adds 'bounded window' to indicate pagination/limiting behavior, which is useful context beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no wasted words. It front-loads the action and clearly states the two output forms, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 4-parameter schema fully described, an output schema present, and annotations covering safety, the description provides adequate context. It might slightly under-explain the three modes, but the schema's mode enum descriptions fill that gap sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, including mode, limit, offset, and assetId. The description's reference to 'summary metadata or bounded window' loosely maps to mode but adds no concrete parameter details beyond what the schema already specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets transcript summary metadata or a bounded window of transcription segments for a video asset, using a specific verb ('Get') and identifying the resource and scope. This distinguishes it from sibling media tools, none of which handle transcripts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context implies this is the tool for retrieving transcript data from a video asset, with no sibling transcript tools offering an alternative. It does not explicitly state when not to use it, but the clarity of purpose and lack of transcript siblings provide sufficient usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_upload_fileUpload FileAInspect
Import a video, audio, or image file from ChatGPT into the BlitzReels media library. Use this for a file the user attached or picked, and for an image ChatGPT generated in this conversation that the user wants to keep, animate, or edit in BlitzReels.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | A file from ChatGPT: attached by the user, picked from their file library, or produced earlier in this conversation. ChatGPT provides this value. | |
| name | No | Optional name to use in BlitzReels. | |
| projectId | No | Optional BlitzReels project ID to associate with the uploaded file. UUID string. | |
| workspaceId | No | Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| media | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, and destructiveHint=false, so the mutation/network profile is covered structurally. The description adds that the file originates from ChatGPT and that ChatGPT supplies the file value, but says nothing about duplicate handling, auth requirements, or how it differs from the staged upload_start/upload_finish flow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource, and the second sentence carries only the usage condition. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers the core action and usage trigger. It falls slightly short of the surrounding upload/import tool family by not clarifying how it relates to media_upload_start, media_upload_finish, or media_import_url.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with per-field descriptions including the nested file object, projectId, and workspaceId. The description adds no parameter-level detail beyond what the schema already documents, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Import), the resource types (video, audio, or image file), the source (from ChatGPT), and the destination (the BlitzReels media library). This distinguishes it from the URL-based and multi-step upload siblings such as media_import_url and media_upload_start/finish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states clearly when to use the tool: for a user-attached or picked file, and for a ChatGPT-generated image the user wants to keep, animate, or edit. There is clear positive context but no explicit exclusion of alternatives (e.g., when to use media_import_url or the media_upload_start/finish flow instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_upload_finishFinish Media UploadAInspect
Verify uploaded bytes and save a reusable workspace asset after presigned PUT. Returns contentHashSha256, fileSizeBytes and mimeType.
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | Yes | Name of the uploaded file | |
| projectId | No | Optional project ID to associate the upload with. UUID string. | |
| storageKey | Yes | Storage key for the uploaded file | |
| contentType | Yes | MIME type of the file | |
| workspaceId | No | Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string. | |
| fileSizeBytes | Yes | Size of the uploaded file in bytes | |
| autoTranscribe | No | Request transcription for video uploads. | |
| autoSuggestShorts | No | ||
| contentHashSha256 | No | Optional expected SHA-256; mismatching bytes are rejected before deduplication. 64-character hex string. | |
| autoProcessEnabled | No | Enable media analysis after upload. | |
| autoDescribeAfterTranscribe | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| media | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readOnly, non-idempotent, non-destructive, so the safety profile is covered. The description adds that it verifies bytes and persists a reusable asset, but does not disclose what happens on retry (annotations say not idempotent, so duplicates are plausible) or hash-mismatch behavior beyond what the schema already states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the action and flow position front-loaded, and no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so enumerating return fields ('contentHashSha256, fileSizeBytes, mimeType') is redundant. For an 11-parameter, non-idempotent mutation that ties into workspace/project association and several auto-processing flags, the description says nothing about those side effects, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 82%, so the schema already documents nearly all 11 parameters. The description only echoes contentHashSha256 verification, which is already described in the schema, adding no new parameter meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('verify uploaded bytes and save a reusable workspace asset') and places the call in the upload flow ('after presigned PUT'), so an agent can distinguish it from media_upload_start and media_upload_file. It stops short of naming any sibling explicitly, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'after presigned PUT' gives clear sequential context that tells the agent when this finalization step applies. It gives no exclusions or retry/abort conditions, but the trigger condition is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_upload_startStart Media UploadBInspect
Get a presigned URL for direct file upload (for large files)
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | Yes | Name of the file to upload | |
| projectId | No | Optional project ID to associate the upload with. UUID string. | |
| contentType | Yes | MIME type (e.g., video/mp4, audio/mp3, image/jpeg, font/woff2, image/svg+xml, application/json) | |
| workspaceId | No | Optional workspace ID when projectId is not provided. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| uploadInfo | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic safety profile (readOnlyHint=false, destructiveHint=false). The description omits the critical behavioral fact that this is step one of an upload flow that must be followed by media_upload_finish, and says nothing about what the returned presigned URL can be used for or its constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though its brevity pushes missing detail into contextual completeness rather than being a fault of structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but for a start-upload tool participating in a multi-step flow with dedicated media_upload_file and media_upload_finish siblings, the description should say the URL is used for a direct PUT and that the flow must be completed. That omission leaves the agent without the sequencing it needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (fileName, contentType, projectId, workspaceId) are already documented in the schema. The description adds no meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: 'Get a presigned URL for direct file upload', plus a scoping hint ('for large files'). However, it does not differentiate itself from the obvious siblings media_upload_file and media_upload_finish, leaving the agent to infer the multi-step relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'for large files' implies a when-condition versus a smaller-file path, but the alternative (media_upload_file) is never named and no exclusions are given. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_upscaleUpscale VideoADestructiveIdempotentInspect
Queue a ByteDance upscale of one stored video asset to 1080p or 4k. Call media_upscale_estimate first. Spends AI credits and returns a new pending media asset to poll with media_assets_get.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Source video asset UUID. UUID string. | |
| projectId | No | Optional project UUID to attach the credit spend. UUID string. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. | |
| targetResolution | Yes | Output long-edge target. |
Output Schema
| Name | Required | Description |
|---|---|---|
| runId | Yes | |
| status | Yes | |
| assetId | Yes | |
| sourceAssetId | Yes | |
| creditsRequired | Yes | |
| mutationReceipt | Yes | |
| targetResolution | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description adds meaningful context beyond them: it spends AI credits, queues asynchronously, and returns a new pending asset rather than mutating the source in place. Minor gap in not tying the credit cost to the consuming project/workspace parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what it does, followed by the prerequisite and the cost/return behavior. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still notes the return shape (a new pending asset) and the follow-up tool to poll it (media_assets_get), plus the credit-spend caveat and estimate prerequisite. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five parameters—including targetResolution's enum and idempotencyKey's retry semantics—are already documented. The description echoes the 1080p/4k values but 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (upscale) and resource (one stored video asset) with explicit scope (1080p or 4k) and vendor (ByteDance). An agent can distinguish this from unrelated siblings like media_assets_get or generation_video_create without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the required prerequisite ('Call media_upscale_estimate first'), which routes the agent to the correct preceding step. It doesn't state when-not to use it or frame it against alternative upscaling paths, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_upscale_estimateEstimate Video UpscaleARead-onlyIdempotentInspect
Estimate ByteDance upscale eligibility and credits for one stored video. Does not spend credits or queue a job. Call this before media_upscale.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Source video asset UUID. UUID string. | |
| projectId | No | Optional project UUID for the estimate context. UUID string. | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| targetResolution | Yes | Output long-edge target. |
Output Schema
| Name | Required | Description |
|---|---|---|
| eligible | Yes | |
| targetFps | Yes | |
| sourceLongEdge | Yes | |
| targetLongEdge | Yes | |
| creditsRequired | Yes | |
| durationSeconds | Yes | |
| ineligibleReason | Yes | |
| targetResolution | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description reinforces this with valuable context: 'Does not spend credits or queue a job,' which tells the agent the side-effect profile. It does not add rate limits, auth requirements, or latency expectations, so it falls slightly 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero waste. The purpose is front-loaded, the behavioral constraint follows, and the routing instruction comes last.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a read-only estimation tool. The description establishes purpose, side-effect profile, and sibling relationship; the schema and annotations cover parameters and safety. With an output schema present, no return-value explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are fully documented in the schema, including the enum for targetResolution. The description adds no parameter-level detail beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Estimate ByteDance upscale eligibility and credits for one stored video.' Explicitly distinguishes from the sibling media_upscale by noting it 'does not spend credits or queue a job' and instructs calling it 'before media_upscale.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing guidance: 'Call this before media_upscale' names the alternative and the condition that selects it. The agent knows exactly when to use this tool versus the actual upscale tool, with no exclusions left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mute_clip_audioMute Clip AudioBDestructiveIdempotentInspect
Set one timeline media item's volume to zero.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| idempotencyKey | Yes | Retry key. Reuse only with identical inputs. | |
| timelineItemId | Yes | ||
| expectedRevision | No | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| result | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| projectId | Yes | |
| operationId | Yes | |
| baseRevision | Yes | |
| mutationReceipt | Yes | |
| createdTimelineItemIds | Yes | |
| deletedTimelineItemIds | Yes | |
| affectedTimelineItemIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful mechanism detail (mute is implemented as volume set to zero, not a boolean flag), but says nothing about reversibility or a corresponding unmute path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the effect front-loaded. It is efficient, though its very terseness means it forgoes the context that would make it genuinely helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema and annotations exist, so return values and safety need not be explained. Still missing is the relationship to editor_audio_set/unmute alternatives, which matters for a destructive audio mutation in a dense sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so most parameters are self-documented. The phrase 'one timeline media item' loosely maps to timelineItemId, but idempotencyKey and expectedRevision semantics are left entirely to the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Set one timeline media item's volume to zero'), making the effect concrete. It does not, however, distinguish itself from the closely related sibling editor_audio_set, which presumably also manipulates clip audio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus editor_audio_set or update_timeline_clip, nor any stated preconditions. The agent must infer the choice from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_createCreate ProjectBInspect
Create a new private BlitzReels video project.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name (1-100 characters) | |
| seriesId | No | Optional Series UUID for this new project. | |
| frameRate | No | Video frame rate | 30 |
| aspectRatio | No | Video aspect ratio | 9:16 |
| description | No | Project description (optional, max 500 characters) | |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. | |
| idempotencyKey | No | Retry key. Reuse only with identical inputs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=false, so the write nature is disclosed. The description adds that the project is 'private', a useful behavioral detail, but does not mention authentication, default workspace resolution, or any side effects beyond the creation itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean sentence delivers the core intent without waste. It front-loads the action and object, though given the 7-parameter surface, the description is relatively thin if not actively concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and output schema cover the parameter and return details. However, the description omits usage guidance (when to use vs alternatives) and does not clarify operational defaults or consequences like default workspace or private visibility, which would help an agent invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 7 parameters are already documented in the schema. The description adds no additional meaning or constraints about parameters (e.g., default aspectRatio, frameRate behavior) beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create') and a specific resource ('new private BlitzReels video project'), which clearly identifies it as a creation tool for projects. It distinguishes from sibling read/list tools like projects_get and projects_list, though it doesn't explicitly name any alternative as another option.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as workflow_runs_create or clips_create. There is no mention of prerequisites, idempotency usage, or scenarios where this should be preferred over other create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_getGet ProjectARead-onlyIdempotentInspect
Get details for one BlitzReels project, including timeline summary, clips, captions, and current recovery state with an app path and next read tool.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID to get details for. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds genuine value by disclosing that the response includes recovery state plus an 'app path and next read tool', suggesting a recovery workflow, though it does not explain that behavior further.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the list of returned contents is a bit dense but every clause carries information relevant to selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full annotation coverage, a 100%-documented single parameter, and an output schema covering return values, little is left for the description to carry. The hint about the recovery state and suggested next tool fills the remaining gap adequately for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema description coverage is 100%, so the schema already documents projectId as a UUID. The description never mentions the parameter at all, so it adds nothing beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get details for one BlitzReels project') and scopes it to a single entity, which implicitly separates it from projects_list. It also enumerates what comes back (timeline summary, clips, captions, recovery state), but never names the closest siblings (projects_inspect, projects_list) explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: fetch one project by ID when you already have its identifier. There is no when-to-use vs when-not, no mention of alternatives like projects_inspect or projects_list, and no stated prerequisites such as needing a valid UUID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_inspectInspect ProjectARead-onlyIdempotentInspect
Read bounded project context for editing, including timeline items, media assets, transcripts, captions, and stable IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Bounded project context view to return. | timeline |
| search | No | Optional media search when mode is assets or full. | |
| projectId | Yes | Project UUID. UUID string. | |
| assetLimit | No | Maximum media assets to return (1-50). | |
| assetOffset | No | Media asset offset. | |
| timelineLimit | No | Maximum timeline items to return (1-1000). | |
| timelineOffset | No | Timeline item offset. | |
| transcriptLimit | No | Maximum transcript segments to return (1-500). | |
| captionWordLimit | No | Maximum caption words to return (1-2000). | |
| transcriptOffset | No | Transcript segment offset. | |
| captionWordOffset | No | Caption word offset. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| mode | Yes | |
| bounds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description is not burdened with safety disclosure. It adds the 'bounded' trait and lists content types, but does not describe pagination defaults, mode behavior, or other operational details beyond what the schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single, compact sentence that front-loads the core action ('Read bounded project context') and then efficiently enumerates the major content categories. No redundant words or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count (11) and the presence of a full output schema, the description provides a sufficient high-level overview without needing to explain return values or parameter syntax. It could have mentioned the default mode or the purpose of the 'mode' parameter, but that is covered in the schema, so the description remains adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 itself does not add parameter-specific meaning; it only states what content is included. All 11 parameters are fully documented in the schema, so no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and identifies the exact resource ('bounded project context for editing') with a clear list of included content (timeline items, media assets, transcripts, captions, and stable IDs). This clearly distinguishes it from sibling tools like projects_get or media_transcript_get by emphasizing the consolidated yet bounded nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage during editing workflows by stating 'for editing', but it does not explicitly mention when to use this tool versus alternatives such as projects_get, media_assets_get, or media_transcript_get. There are no exclusions or explicit alternative references, leaving the decision to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_listList ProjectsBRead-onlyIdempotentInspect
List the user's BlitzReels projects with status, duration, and basic metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of projects to return (1-50) | |
| offset | No | Project offset. | |
| search | No | Search projects by name | |
| status | No | Filter by project status | active |
| workspaceId | No | Optional workspace ID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| projects | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the safety burden is covered. The description adds the returned fields but says nothing about pagination behavior or defaults despite limit/offset being present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource and returned fields front-loaded. No wasted words, though it is arguably too terse given the available parameter surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema and complete annotations, an agent has enough to call this correctly; the returned fields are even summarized. Only the lack of sibling disambiguation and pagination notes keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented in the schema, including the status enum and workspaceId default. The description adds no parameter-level meaning beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (projects) and even names what each item carries: status, duration, and basic metadata. It does not differentiate itself from close siblings like projects_get or projects_inspect, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives (projects_get, projects_inspect), and no note on pagination or default scoping. An agent must infer all of this from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publishing_accounts_listRead Connected Publishing AccountsBRead-onlyIdempotentInspect
Read the supported accounts available through the existing workspace and provider access rules. Does not connect new accounts, publish, schedule or bypass provider review.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| offset | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description's 'does not publish/schedule' claims largely restate that read-only nature, though 'provider access rules' and 'does not bypass provider review' add genuine domain context. No pagination or scope behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the positive scope before the negative exclusions. Efficient, though the 'does not' list is partly boilerplate that duplicates the read-only annotation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations carry the safety profile. The remaining gap is parameter documentation: with three required params and 0% schema coverage, an agent has no guidance on pagination limits or the workspaceId requirement, which the description should have supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all three parameters (workspaceId, limit, offset) are required but undocumented in the schema. The description only indirectly hints at workspace scoping via 'existing workspace' and says nothing about limit/offset pagination bounds, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('supported accounts') scoped to the existing workspace, which is clearer than a bare name restatement. However, it never distinguishes itself from the very similar sibling publishing_connections_list, leaving 'accounts' vs 'connections' ambiguous for an agent choosing between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context plus explicit exclusions: it does not connect new accounts, publish, schedule, or bypass provider review. That tells the agent when this tool is the wrong choice. It stops short of naming the alternatives (e.g., publishing_connections_list, the scheduling tools) that should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publishing_connections_listList Publishing ConnectionsARead-onlyIdempotentInspect
List Instagram accounts connected through the BlitzReels UI for the authenticated workspace, including their connection status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| connections | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds only that the listing is scoped to the authenticated workspace and surfaces connection status — useful but modest additional context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, stating the resource, the scope, and the returned attribute. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, full annotation coverage, and an output schema that documents the return shape, the description covers the remaining needs adequately. The one omission is routing guidance against the near-identical sibling publishing_accounts_list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. The baseline of 4 applies; no parameter-related gaps exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Instagram accounts connected via BlitzReels UI) scoped to the authenticated workspace, and mentions the returned fields (connection status). However, it does not distinguish itself from the sibling publishing_accounts_list, which reads similarly — an agent cannot tell from the description alone which list tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance, no mention of alternatives such as publishing_accounts_list, and no stated precondition (e.g. call before scheduling a post). Usage is only weakly implied by the phrase 'connected through the BlitzReels UI'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publishing_instagram_scheduleSchedule Instagram PublishADestructiveInspect
Schedule a completed project export to Instagram. Optional includeAffiliateCta appends Try BlitzReels for free plus the Affonso tracking URL. Requires an active Instagram account connected in the BlitzReels UI.
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | Caption text (max 2200). | |
| exportId | No | Completed export UUID. Defaults to latest completed. UUID string. | |
| timezone | No | IANA timezone. Defaults to UTC. | UTC |
| projectId | Yes | Project UUID. UUID string. | |
| trialReel | No | Publish as Trial Reel (video only). | |
| shareToFeed | No | Also share Reel to profile feed. | |
| connectionId | No | Instagram connection UUID when multiple exist. | |
| scheduledFor | Yes | ISO-8601 datetime for the scheduled publish. | |
| affiliateCtaText | No | Optional CTA text override (max 80). | |
| includeAffiliateCta | No | Append Try BlitzReels for free plus Affonso tracking URL. | |
| affiliateTrackingUrl | No | Optional BlitzReels URL with via/ref/aff override. | |
| trialGraduationStrategy | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| postId | Yes | |
| status | Yes | |
| exportId | Yes | |
| platform | Yes | |
| targetId | Yes | |
| projectId | Yes | |
| publishKind | Yes | |
| connectionId | Yes | |
| scheduledFor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true and idempotentHint=false, so the safety profile is largely covered structurally. The description adds the account-connection prerequisite and the effect of includeAffiliateCta, but says nothing about the irreversible external-publish consequence or rate limits — modest value on top of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler, and the core action is front-loaded before the optional-flag note and the prerequisite. Efficient, though the prerequisite could arguably precede the optional flag for better scanning order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 12-parameter schema carries 92% description coverage. The description supplies the one thing structured fields cannot: the account-connection prerequisite for a destructive, open-world publish action. Adequately complete for the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 92%, so the baseline is 3 and the schema already documents nearly every parameter. The description's only parameter-level addition is restating includeAffiliateCta's effect, which the schema already states almost verbatim, so it does not meaningfully go beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Schedule) and resource (a completed project export to Instagram), with scope made explicit by 'completed project export'. It does not explicitly differentiate itself from the sibling publishing_video_schedule, though the Instagram target is a reasonable implicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one prerequisite ('Requires an active Instagram account connected in the BlitzReels UI'), which is genuinely useful context. However it never states when to choose this over publishing_video_schedule or the other publishing/clip_share tools, so usage routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publishing_post_getVerify Video PublicationARead-onlyIdempotentInspect
Read the current targets for one publishing receipt with scheduled/published state and verified remote URLs. Does not retry or publish a failed target.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description still adds value by clarifying this is a pure status check that will not retry or publish a failed target, which is a behavioral boundary not encoded in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler, the read/scope statement front-loaded and the behavioral boundary second. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with rich annotations and an output schema, the description adequately conveys what the tool returns and what it will not do. The only real gap is the completely undocumented parameters, which is a small deficiency given they are plain UUID identifiers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions postId or workspaceId. With two undocumented parameters the description should compensate, e.g. by stating that postId identifies the publishing receipt and workspaceId scopes it, but it provides no parameter-level meaning at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (current targets for one publishing receipt) plus the key returned attributes (scheduled/published state, verified remote URLs). It is clearly distinguishable from write-side siblings such as publishing_video_schedule or clip_share_publish. Minor friction: the tool name says 'post' while the description talks about a 'publishing receipt', which an agent must reconcile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence 'Does not retry or publish a failed target' implies the boundary of use and hints that some other tool handles retry/publish, but no alternative is named. Usage is implied (check status after scheduling) rather than explicitly stated as when-to-use/when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publishing_video_scheduleSchedule Reviewed Video PublicationADestructiveIdempotentInspect
Schedule a selected existing video asset to explicit active YouTube, Instagram, Facebook, TikTok, LinkedIn or Threads accounts connected in the BlitzReels UI, using reviewed copy, privacy/consent choices, synthetic-media disclosure, time and timezone. Requires confirmPublish=true. Existing workspace permissions and provider access rules apply. A scheduled receipt is not proof of publication.
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | ||
| targets | Yes | ||
| timezone | No | ||
| workspaceId | Yes | ||
| project_name | No | ||
| scheduled_for | Yes | ||
| confirmPublish | Yes | ||
| idempotencyKey | Yes | ||
| media_asset_id | Yes | ||
| affiliate_cta_text | No | ||
| include_affiliate_cta | No | ||
| affiliate_tracking_url | No | ||
| contains_synthetic_media | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, openWorldHint=true and idempotentHint=true. The description adds the crucial caveat that 'a scheduled receipt is not proof of publication', plus permission/provider-access constraints, which goes beyond the annotations. It does not explain the destructive implications of targeting live accounts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded verb+resource, and the important confirmPublish requirement and receipt caveat are prominent. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 params, 7 required, 0% schema description coverage, nested platform objects, and no human-readable field docs, the description leaves most of the calling contract unstated. The output schema lightens the return-value burden, but the gap on required identifiers and target structure is substantial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning, and it only gestures at copy, privacy/consent, synthetic-media disclosure, time and timezone. It legitimately names timezone, scheduled_for, synthetic media, and privacy concepts, but never mentions required fields like media_asset_id, targets, workspaceId or idempotencyKey by name/semantics, leaving the 0%-covered required params largely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (schedule) plus resource (selected existing video asset) and enumerates the exact supported destinations. An agent can distinguish this from publishing_instagram_schedule and clip_share_publish from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says the tool requires confirmPublish=true and that it schedules an already-selected/reviewed asset, implying it is not for generating or approving content. It does not name alternative tools for the single-platform (Instagram) case, so routing guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recording_sets_clips_createClip a Synchronized RecordingADestructiveIdempotentInspect
Produce a batch from a ready synchronized camera and screen recording, with optional clip count, maximum duration and caption look. Preserves readable screen context through the existing layout pipeline. Can spend existing credits; follows clips_get with the returned batch_id.
| Name | Required | Description | Default |
|---|---|---|---|
| clipCount | Yes | ||
| workspaceId | Yes | ||
| captionThemeId | Yes | ||
| idempotencyKey | Yes | ||
| recordingSetId | Yes | ||
| maxDurationSeconds | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true, idempotent=true and openWorld=true, so the bar is lower, yet the description adds a material cost disclosure ('Can spend existing credits') that annotations do not carry. It also notes screen-context preservation through the layout pipeline, a side effect an agent would not otherwise know about; it stops short of quantifying credit spend or describing the batch lifecycle.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action and source, then side effects, then the next step. The phrase 'through the existing layout pipeline' is slightly internal jargon but still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the description need not explain return values, and it correctly points at batch_id for the follow-up call. For a destructive, credit-spending, open-world operation the description covers cost and safety adequately, though it omits any indication of credit magnitude or failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it only covers three of six parameters ('clip count, maximum duration and caption look'). It adds the useful nuance that these are optional, but workspaceId, recordingSetId and idempotencyKey semantics are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and output ('Produce a batch') plus the exact source resource ('a ready synchronized camera and screen recording'), which separates it from recording_sets_finalize and clips_create. It does not name a sibling explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a precondition ('ready synchronized recording') and a follow-up step ('follows clips_get with the returned batch_id'), which is real guidance. It never states when to prefer this over clips_create or other clipping entry points, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recording_sets_createCreate Synchronized RecordingAIdempotentInspect
Create an empty camera and screen recording set in the explicit workspace. Requires existing recording-set access; does not import files or start processing.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, idempotent, non-destructive, non-open-world behavior, so the safety profile is covered. The description adds that the created set is empty, that access must pre-exist, and that no import or processing is triggered, which is meaningful mutation context. It does not discuss what happens on a repeated idempotency key beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the core action and scope front-loaded and constraints/exclusions trailing. Nothing is wasted, though the sentence could be slightly sharper about the idempotency parameter given its required status.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 prose explanation, and annotations carry the safety and idempotency profile. The description covers scope, prerequisites, and exclusions; the remaining gap is the undocumented required idempotencyKey parameter, which is the main thing an agent could get wrong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and none of the three parameters (name, workspaceId, idempotencyKey) are explained in the description; the constraints (name 1-200 chars, idempotencyKey min 8 chars, nullable workspaceId defaulting to null) exist only in the raw schema with no prose. The phrase 'in the explicit workspace' loosely implies workspaceId but adds no semantics about the null default or key reuse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create') and resource ('camera and screen recording set'), and the qualifier 'empty' plus 'in the explicit workspace' distinguishes it from siblings like recording_sets_clips_create (adds clips) and recording_sets_finalize. An agent can tell what this tool does and does not do 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a prerequisite condition ('Requires existing recording-set access') and explicit exclusions ('does not import files or start processing'), which steers the agent away from populating or processing workflows. It stops short of naming the specific sibling to use for adding clips or finalizing, so it is clear context rather than full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recording_sets_finalizeSynchronize Recording TracksBDestructiveIdempotentInspect
Finalize the collected camera and screen tracks and queue analysis. Can spend existing transcription credits. Inspect returned alignment and warnings before clipping.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| recordingSetId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, destructive, idempotent, and open-world behavior, so the safety profile is covered. The description adds genuinely new context beyond structured fields: 'can spend existing transcription credits' (a cost side effect) and 'inspect returned alignment and warnings' (output contents to check), which the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the primary action and with no filler. The workflow pointer and cost warning each earn their place, though the phrasing is slightly telegraphic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations carry the safety profile and an output schema exists, so return-value documentation is not needed. The description adds workflow position and a cost warning, but omits prerequisites (tracks must already be attached) and any indication of what happens if the set is incomplete, leaving a meaningful gap for a destructive mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three required parameters (workspaceId, idempotencyKey, recordingSetId), and the description explains none of them. The idempotencyKey in particular warrants a note about retry semantics, which is absent from both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (finalize) and resource (collected camera and screen tracks) plus a downstream effect (queue analysis), which distinguishes it from siblings like recording_sets_track_attach and recording_sets_get. It does not explicitly name a sibling to route against, so it clears the bar for clear-but-undifferentiated rather than the top mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Inspect returned alignment and warnings before clipping' implies a workflow position (finalize before clipping), which is useful sequencing context. However, there is no explicit when-to-use vs. alternative guidance or stated prerequisites (e.g., tracks must first be attached), so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recording_sets_getInspect Synchronized RecordingARead-onlyIdempotentInspect
Read one camera and screen recording set, its primary speaker, content windows, alignment and warnings. Separate audio-only tracks are not supported.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | Yes | ||
| recordingSetId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so safety is covered. The description adds real value beyond that by disclosing the content of the returned set and, importantly, the capability boundary that audio-only tracks are unsupported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource, then the single relevant limitation. Nothing is padded and everything earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be detailed, and the description still summarizes the salient payload fields plus a key constraint. The remaining gap is any guidance on parameters and how the pair of IDs interacts, which is minor for a simple read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions workspaceId or recordingSetId — not their format (UUID), precedence, or what happens if workspaceId is null. The parameter names are mostly self-explanatory, but the description contributes nothing to their semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (one camera and screen recording set) and enumerates what comes back: primary speaker, content windows, alignment and warnings. This clearly separates it from the list/create/finalize siblings, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is a negative constraint — 'Separate audio-only tracks are not supported' — which usefully rules out an unsupported input but says nothing about when to call this versus recording_sets_list or recording_sets_create. Usage is implied by the singular framing rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recording_sets_listList Synchronized RecordingsBRead-onlyIdempotentInspect
Read bounded camera and screen recording sets in the selected workspace with status, duration and alignment warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| offset | Yes | ||
| status | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds that results are 'bounded' (pagination constraint) and surfaces alignment warnings, which is useful context beyond annotations, but it stops short of explaining pagination mechanics or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though the brevity comes partly at the cost of missing parameter detail rather than pure economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and annotations cover the read-only safety profile. However, with four required undocumented parameters at 0% schema coverage, the description is under-complete on how to actually call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all four parameters (workspaceId, status, limit, offset) are required with no inline documentation. The description loosely implies workspace scoping and references 'status' as a returned field, but never explains the status enum values, pagination limits, or offset semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (Read/List) and resource (camera and screen recording sets) scoped to the selected workspace. The mention of returning 'status, duration and alignment warnings' gives it a distinctive flavor versus a generic list, though it never names the sibling recording_sets_get to differentiate the two explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisite conditions, and never points to alternatives such as recording_sets_get for a single set. Usage is only implied by the verb 'List' and the workspace scoping.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recording_sets_track_attachAttach Camera or Screen RecordingAIdempotentInspect
Attach one existing authorized video asset as a camera or screen track. Specify the main speaker when known; alignment happens during finalization.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | ||
| asset_id | Yes | ||
| is_primary | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| recordingSetId | Yes | ||
| participant_name | Yes | ||
| participant_label | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation profile (readOnly=false, idempotent=true, destructive=false, openWorld=false). The description adds genuinely useful non-structured context: the asset must be pre-existing and authorized, and speaker alignment is deferred to finalization rather than happening at attach time. It doesn't clarify what happens on re-attach of the same role, but that is largely covered by idempotentHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the core action is front-loaded and the deferred-alignment note follows as supporting context. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be described, but for an 8-required-parameter mutation with zero schema descriptions the definition leaves too much unspecified: the purpose of recordingSetId, the role of idempotencyKey, and the semantics of participant_label vs participant_name and is_primary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 8 required parameters, so the description must compensate. It only sheds light on role ('camera or screen'), asset_id ('existing authorized video asset'), and loosely participant_name ('main speaker'). workspaceId, idempotencyKey, recordingSetId, participant_label, and is_primary are entirely unexplained, including the ambiguous label-vs-name distinction and the meaning of is_primary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (attach), a specific resource (one existing authorized video asset), and the role slot it fills (camera or screen track). An agent can distinguish this from siblings like recording_sets_clips_create or timeline_media_add without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'existing authorized' implies a precondition (the asset must already exist and be authorized) and 'alignment happens during finalization' hints at when in the workflow this is used. But no explicit when-to-use/when-not guidance or named alternative among the many recording_sets_* and editor_* siblings is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_applyApply SeriesBDestructiveIdempotentInspect
Create or replace a Growth+ Series identity and defaults. defaultCreationMode selects podcast branding or faceless Story Kit defaults; membership stays mixed. Updates require expectedRevision. Existing content keeps its settings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| seriesId | Yes | ||
| storyKitId | Yes | ||
| description | Yes | ||
| logoAssetId | Yes | ||
| workspaceId | Yes | ||
| coverAssetId | Yes | ||
| captionThemeId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes | ||
| defaultCreationMode | Yes | podcast |
Output Schema
| Name | Required | Description |
|---|---|---|
| series | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=true, but the description adds real behavior beyond them: 'Existing content keeps its settings' clarifies the blast radius of a replace, 'membership stays mixed' clarifies what is NOT touched, and 'Updates require expectedRevision' discloses an optimistic-concurrency requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences with no filler, and the create-or-replace scope is front-loaded. Slightly dense (multiple clauses per sentence) but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 concurrency and preservation semantics are covered. The gap is invocation shape: with 11 required-but-nullable parameters and 0% schema coverage, an agent cannot tell from the definition which fields to null on create versus which to supply on update.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 11 parameters, so the description must carry the burden. It explains only defaultCreationMode (podcast vs faceless Story Kit defaults) and expectedRevision, leaving name, seriesId, storyKitId, captionThemeId, coverAssetId, logoAssetId, workspaceId, and idempotencyKey completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 or replace a Growth+ Series identity and defaults.' That distinguishes it from siblings like series_assign (content membership) and series_get/series_list (reads), though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Create or replace' implies an upsert and 'Updates require expectedRevision' gives a conditional for the update path, which is useful. However, it never states when to choose this tool over series_assign, series_delete, or story_kits_apply, so routing still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_assignAssign Series ContentBDestructiveIdempotentInspect
Assign, move or detach one source or project using expectedSeriesId. Moving a source does not move existing clips or change branding.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| seriesId | Yes | ||
| contentId | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedSeriesId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| kind | Yes | |
| changed | Yes | |
| seriesId | Yes | |
| mutationReceipt | Yes | |
| previousSeriesId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuinely useful non-obvious behavior: 'Moving a source does not move existing clips or change branding,' which is not derivable from annotations or schema. It stops short of 5 because it does not clarify the detach path (e.g. that seriesId null means detach) or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, and the core verb list is front-loaded. It is appropriately sized for the tool, though the second sentence's caveat could be tied more explicitly to the move operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations carry the destructive/idempotent profile. However, for a 6-required-parameter mutation, the description leaves idempotencyKey, workspaceId and the assign-vs-move-vs-detach semantics underexplained, and gives no routing against sibling series tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 6 parameters. The description only illuminates expectedSeriesId (and implicitly seriesId via 'detach') and the kind enum ('source or project'). contentId, workspaceId and especially idempotencyKey remain completely unexplained, so the description does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs and resources: 'Assign, move or detach one source or project.' An agent can tell it manipulates series membership for a single content item. It does not, however, differentiate itself from the sibling 'series_apply' or explain the assign/move/detach distinction, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. The description never says when this tool is preferred over the sibling 'series_apply', nor when a caller would detach versus move. The mechanism 'using expectedSeriesId' is mentioned but no preconditions or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_contentList Series ContentARead-onlyIdempotentInspect
List sources or projects in a Series. Null seriesId lists standalone content. sourceId filters projects by clip origin.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| limit | Yes | ||
| offset | Yes | ||
| search | Yes | ||
| seriesId | Yes | ||
| sourceId | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| bounds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description only needs to add semantic behavior. It does so by explaining that null seriesId returns standalone content and that sourceId filters projects by clip origin. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The primary action and scope are front-loaded, and the additional parameter guidance is compact and meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return structure and annotations cover safety, so those do not need elaboration. Still, with 7 required parameters and no schema descriptions, the description leaves important questions about required combinations and the meaning of kind/workspaceId unanswered. It is minimally viable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all 7 parameters are required, yet the description only clarifies seriesId and sourceId. It leaves kind, workspaceId, search, limit, and offset semantically unexplained, which is insufficient compensation for a low-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a specific resource ('sources or projects in a Series'), and it adds a key distinguishing detail: null seriesId lists standalone content. This clearly separates it from sibling tools like series_list or series_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: to enumerate content within a series, and it clarifies the standalone-content case. However, it does not explicitly mention alternatives or state when not to use it, so an agent must infer the boundary against related series tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_deleteDelete SeriesADestructiveIdempotentInspect
Delete the Series container at an expected revision and detach its content. Sources, projects and exports are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| seriesId | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| detachedSources | Yes | |
| mutationReceipt | Yes | |
| contentPreserved | Yes | |
| detachedProjects | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: deletion is conditional on an expected revision, the operation detaches content rather than destroying it, and sources, projects, and exports are preserved. It does not contradict the destructiveHint or idempotentHint annotations, though it could disclose what happens on a revision mismatch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences deliver the essential action, the concurrency condition, and the preservation guarantee with no filler. The destructive scope is front-loaded, making the tool easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives a clear picture of what is deleted and what is preserved, and the output schema covers return values. However, with four required parameters and zero schema coverage, it does not explain idempotencyKey expectations or revision-conflict behavior, so an agent still lacks some operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only hints at expectedRevision via 'at an expected revision'. It does not explain seriesId, workspaceId, or idempotencyKey semantics, leaving the agent to rely on parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Delete the Series container') and clarifies the operation's scope by stating it detaches content while preserving sources, projects, and exports. This clearly distinguishes it from sibling tools like series_get, series_list, series_content, series_apply, and series_assign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when deleting the container itself rather than its content—but it does not explicitly name alternatives or state when not to use it. The preservation note provides useful context but no direct routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_getGet SeriesCRead-onlyIdempotentInspect
Read a Series identity, creative defaults and revision.
| Name | Required | Description | Default |
|---|---|---|---|
| seriesId | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| series | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description's 'Read' aligns with the readOnlyHint annotationating and there is no contradiction. It adds some transparency by listing what is read (identity, creative defaults, revision), but it does not explain side effects or lack thereof beyond what the readOnlyHint already signals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that leads with the operation ('Read') and lists the resource aspects. It is efficient and free of padding, though the phrasing 'a Series identity' is slightly awkward and could be more polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description leaves out important context: what the revision is, how it is selected, and what the workspace/series relationship is. While annotations cover safety, the description is too terse to fully prepare an agent to make correct use of this tool among many series-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for either parameter, so an agent must infer that `seriesId` identifies the resource and `workspaceId` scopes the read only from their names. The description fails to clarify how the parameters relate to the returned identity, creative defaults, or revision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses the verb 'Read' and names the resource (a Series) plus the data facets: identity, creative defaults, and revision. It is specific enough for an agent to understand this is a read operation, though it does not explicitly contrast with sibling tools like series_content or series_apply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many related series_* and get_* siblingsamental. It does not mention which series fields are included, whether the revision is current or historical, or any preconditions such as needing a project or workspace context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
series_listList SeriesCRead-onlyIdempotentInspect
List optional Series with bounded counts and cover previews.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| offset | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| bounds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive. The description adds minor behavioral context by mentioning 'bounded counts' (pagination) and 'cover previews' (response contents), but it does not explain scoping, ordering, or auth requirements. This is adequate but not rich beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb and resource, keeping length appropriate. It loses some clarity due to ambiguous phrasing like 'optional Series' and 'bounded counts,' but overall it is efficient and not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a simple three-parameter input schema and available annotations/output schema, the description leaves critical context vague: what makes a Series 'optional,' whether results are scoped by workspace, and what 'bounded counts' precisely means. An agent would need additional inference to call this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only loosely maps to parameters. 'Bounded counts' hints at limit/offset behavior, yet workspaceId is completely unexplained, and there is no parameter-level clarification of defaults or relationships between parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'List Series' names a clear verb and resource, and the description distinguishes listing from sibling tools like series_get or series_content by specifying a list operation. However, the phrase 'optional Series' is ambiguous about whether it means optional flags, optional parameters, or a category of series, which slightly weakens clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool instead of series_get, series_content, or other series-related tools. There are no stated alternatives, exclusions, or conditions that would help an agent route between sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
story_kits_applyApply Story KitCDestructiveIdempotentInspect
Create or update a Story Kit with optimistic concurrency and an idempotent mutation receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Stable Story Kit name. | |
| facts | No | ||
| locations | No | ||
| storyKitId | No | ||
| description | No | ||
| visualStyle | Yes | Canonical visual-style contract. | |
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. | |
| characterIds | No | ||
| idempotencyKey | Yes | ||
| expectedRevision | No | ||
| narratorCharacterId | No | ||
| styleReferenceAssetIds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| storyKit | Yes | |
| mutationReceipt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds real value beyond that by naming 'optimistic concurrency' (hinting at expectedRevision conflict behavior) and an 'idempotent mutation receipt', but it never states what a destructive update overwrites or what happens on revision conflict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the core action front-loaded and zero padding. Its brevity is a virtue structurally, though it leaves content gaps addressed in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter destructive mutation with 25% schema coverage, the description is under-specified: it omits how create-vs-update is selected, the default workspace behavior, and any conflict-resolution detail. The output schema covers returns, but the inputs and mode selection remain thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% across 12 parameters, so the description must compensate and largely does not. 'Optimistic concurrency' and 'idempotent mutation receipt' gesture at expectedRevision and idempotencyKey, but name, visualStyle, workspaceId, storyKitId, and the locations/facts structures get no clarification beyond the thin schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (create or update) and the resource (Story Kit), which cleanly separates it from story_kits_get and story_kits_list. It does not name those siblings explicitly, so it falls short of a 5, but the intent is immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to create versus update (presumably storyKitId presence), no prerequisites, no mention of the get/list siblings, and no exclusions. The agent must infer the mode from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
story_kits_getGet Story KitBRead-onlyIdempotentInspect
Inspect one Story Kit and its revision before generating or updating a story.
| Name | Required | Description | Default |
|---|---|---|---|
| storyKitId | Yes | ||
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| storyKit | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey this is a read-only, idempotent, non-destructive tool. The description adds 'Inspect one Story Kit and its revision', which aligns with annotations without contradicting them. The added value is minimal—just specifying the 'revision' aspect—but since annotations handle the heavy lifting, a 3 is appropriate. No contradiction detected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action ('Inspect one Story Kit and its revision') and places context later ('before generating or updating a story'). No extraneous words. It could be structured to hint at the required parameter, but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 params, 1 required, no enums/nested objects) and the presence of an output schema (which handles return values), the description is mostly complete. However, it fails to describe the 'storyKitId' parameter, which is required and has no schema description, leaving a gap for the agent. Additional hints about what kind of story kit (e.g., draft or published) would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: one required param (storyKitId) has no description, while workspaceId has a description in the schema. The description does not document the 'storyKitId' parameter or explain its format/expected value, and it doesn't clarify that 'workspaceId' is optional. With two parameters and half undocumented in both schema and description, a baseline 3 is reasonable, but no extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Inspect' with 'one Story Kit and its revision', which clearly specifies the resource and scope (single item plus revision). It also alludes to a workflow purpose ('before generating or updating a story'), distinguishing it from sibling tools like story_kits_list (which lists kits) and story_kits_apply (which applies a kit). However, it doesn't explicitly exclude other potential actions like copying or deleting, leaving slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('before generating or updating a story'), which helps an agent understand the typical workflow position. However, it does not explicitly state when NOT to use this tool vs alternatives like story_kits_list (for browsing) or projects_get (for inspecting a project instead of a story kit). No exclusion or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
story_kits_listList Story KitsBRead-onlyIdempotentInspect
List bounded reusable Story Kits that bind characters, locations, style, facts, and narrator voice.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| workspaceId | No | Optional workspace UUID. Defaults to the user's default workspace. UUID string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bounds | Yes | |
| storyKits | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds the concept of 'bounded reusable Story Kits' but does not disclose behavioral traits like pagination behavior, scoping (workspace filtering), or authentication requirements. This is adequate but not additive beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently states the purpose and defines the resource. Every word adds value, and there is no extraneous information. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the core concept of Story Kits, but with an output schema present, it need not describe return values. However, it omits context about the three parameters (pagination, workspace filtering) and does not mention that the result is a list. For a list tool with multiple parameters, the description is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (workspaceId described). The description adds no parameter information at all. It does not mention that limit and offset control pagination or that workspaceId filters the workspace. Given the low schema coverage, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'List' and the resource 'Story Kits', and defines what a Story Kit is ('bind characters, locations, style, facts, and narrator voice'). This clearly distinguishes it from sibling tools like story_kits_get (single retrieval) and story_kits_apply (application), and from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., story_kits_get for a specific kit, story_kits_apply to apply a kit, or other list tools). It does not mention pagination, filtering, or any prerequisites. The agent is left to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_audio_addAdd Audio To TimelineBInspect
Place an audio asset onto a BlitzReels project timeline at a timestamp for voiceover, music, or sound.
| Name | Required | Description | Default |
|---|---|---|---|
| loop | No | Loop audio to fill requested duration | |
| volume | No | Audio volume multiplier, 1 is normal | |
| assetId | Yes | Audio media asset ID. UUID string. | |
| projectId | Yes | BlitzReels project ID. UUID string. | |
| startSeconds | No | Timeline start time in seconds | |
| fadeInSeconds | No | Fade-in length in seconds | |
| fadeOutSeconds | No | Fade-out length in seconds | |
| durationSeconds | No | Optional duration. Required if the audio asset duration is not known yet. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
All annotations are false, providing no positive safety or behavioral profile. The description only restates the action ('Place an audio asset onto...') without disclosing side effects, prerequisites, error conditions, or whether the operation is additive, even though destructiveHint=false suggests it is not destructive. For a mutation tool, this is minimal behavioral disclosure, with the description doing little beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently states the action, resource, destination, and purpose. It contains no filler or redundant information and is appropriately succinct for a relatively simple tool, though it could have incorporated a bit more behavioral/usage detail without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, an output schema, and all-false annotations, the one-line description is thin but sufficient when combined with the complete schema. It does not provide usage alternatives, side-effect context, or when-to-use guidance, so while it is minimally viable, an agent selecting among many timeline tools would need to rely on the schema and tool name to make the right call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 8 parameters (projectId, assetId, startSeconds, durationSeconds, volume, loop, fadeInSeconds, fadeOutSeconds) are already documented in the schema. The description adds only a hint about 'timestamp' (matching startSeconds) and the purpose, but does not meaningfully supplement the schema. The baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Place') and resource ('audio asset') with a clear destination ('BlitzReels project timeline') and timestamp, and identifies the use cases (voiceover, music, sound). It implicitly distinguishes from sibling tools like timeline_media_add by specifying audio, but it does not explicitly name or contrast with an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when placing an audio asset for voiceover, music, or sound—but provides no explicit guidance on when not to use it or how it compares to alternatives like timeline_media_add. There are no exclusionary statements or alternative tool mentions, so the agent must infer the usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_media_addAdd Media To TimelineBInspect
Place an image or video asset onto a BlitzReels project timeline at a timestamp, including B-roll and static images.
| Name | Required | Description | Default |
|---|---|---|---|
| assetId | Yes | Image or video media asset ID. UUID string. | |
| projectId | Yes | BlitzReels project ID. UUID string. | |
| layerIndex | No | Exact timeline layer to use. Lower layer numbers render on top. Omit for intent-based placement. | |
| startSeconds | No | Timeline start time in seconds | |
| allowDuplicate | No | Allow inserting the same asset more than once | |
| positionPreset | No | Visual placement preset | fullscreen |
| animationPreset | No | Optional visual animation preset | none |
| durationSeconds | No | Duration in seconds. Required for still images when a specific length is needed. | |
| placementIntent | No | Layer intent used when layerIndex is omitted. Use overlay for visible B-roll/logo/sticker over video, background for behind video, exact when layerIndex is supplied. | overlay |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is a non-destructive, non-idempotent write operation. The description adds no behavioral context beyond restating the action; it does not clarify side effects, prerequisites, duplication behavior, or what happens to existing clips. For a mutation operation, the description should disclose core behavioral traits (e.g., whether it inserts without replacement, whether assets/projects must exist), but it remains a near-tautology of the schema and title. This adds marginal value over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that begins with the core action and object, then adds a clarifying scope note ('including B-roll and static images'). There is no filler, repetition, or unnecessary detail. The structure is front-loaded and appropriately sized for a tool of this complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 9 parameters with enums (placementIntent, positionPreset, animationPreset) and an output schema, the description offers no higher-level guidance on parameter selection. It does not explain when to use layerIndex versus placementIntent, when durationSeconds is needed, or how options like positionPreset affect output. The schema covers syntax, but the description fails to provide the contextual decision-making help an agent needs to invoke the tool effectively. For a complex tool, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all 9 parameters, including detailed descriptions for each. The tool description does not add any additional semantic meaning beyond what is already in the schema—it focuses only on the general action. Since the schema covers parameter meaning and defaults, the description's lack of parameter elaboration is acceptable, hitting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (place) and resource (image or video asset onto a BlitzReels project timeline), with an explicit mention of B-roll and static images. This distinguishes it from sibling tools like timeline_audio_add, add_text_overlay, and add_transition, which serve different media types. The verb and target are unambiguous, making the purpose immediately clear to an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the primary use case—adding media to a timeline—but does not explicitly contrast it with alternatives or mention when not to use it. It does not reference sibling tools or state conditions like 'for text use add_text_overlay.' The mention of 'including B-roll and static images' hints at scope but lacks exclusion or alternative routing. This is adequate but leaves the agent to infer when this is the correct choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_split_applyApply Timeline SplitBDestructiveIdempotentInspect
Split one timeline item at the expected project revision. Changes existing timeline state and returns a retry-safe receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| snapToFrame | Yes | ||
| idempotencyKey | Yes | ||
| splitAtSeconds | Yes | ||
| timelineItemId | Yes | ||
| expectedRevision | Yes | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety and idempotency profile is covered. The description's 'changes existing timeline state' and 'retry-safe receipt' largely restate those hints, adding only modest output context on top of the existing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the resource and revision constraint front-loaded and no filler. It is appropriately sized, though the second sentence is close to restating the destructive and idempotent annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with full annotation coverage and an output schema needs less prose, and the description does convey the state change and revision guard. However, it leaves out what happens on a revision mismatch and how splitAtSeconds/snapToFrame interact, which are material for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the schema does not carry the load. The description names the item and the revision expectation, which maps to timelineItemId and expectedRevision, but splitAtSeconds, snapToFrame, and idempotencyKey semantics are not clarified beyond their type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Split one timeline item') with an explicit scoping constraint ('at the expected project revision'), so the agent can distinguish it from the many other timeline mutators. It never names timeline_split_preview as the read-only counterpart, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the apply-vs-preview sibling pairing and by the requirement of an expectedRevision, but the description never states when to call this instead of timeline_split_preview or what to do when the revision is stale. No exclusions or preconditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_split_previewPreview Timeline SplitBRead-onlyIdempotentInspect
Preview splitting one timeline item without changing the project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| snapToFrame | Yes | ||
| splitAtSeconds | Yes | ||
| timelineItemId | Yes | ||
| expectedRevision | Yes | Expected sequence revision, or null. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The non-mutating claim reinforces the existing readOnlyHint=true / idempotentHint=true / destructiveHint=false annotations but adds nothing they don't already convey. Nothing is said about expectedRevision conflict handling, snapToFrame effects, or what a preview response contains beyond the read-only guarantee.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the preview constraint front-loaded. No filler, nothing wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema and rich annotations lower the disclosure burden, but with five required parameters at 40% schema coverage the description leaves key inputs (expectedRevision, snapToFrame) unexplained for an operation whose correctness depends on them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% across five required parameters. The description conveys that a timeline item is split but does not explain expectedRevision (optimistic concurrency), snapToFrame, or splitAtSeconds semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb (preview splitting) plus resource (one timeline item) and an explicit scope constraint (without changing the project). This implicitly separates it from the sibling timeline_split_apply, though it never names that sibling directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'preview' and 'without changing the project' imply this is a safe dry-run to be used before applying a split, but the description never states when to use it versus timeline_split_apply or timeline_trim_preview. Usage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_trim_applyApply Timeline TrimBDestructiveIdempotentInspect
Trim or extend one timeline item at the expected project revision. Changes existing timeline state and returns a retry-safe receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| snapToFrame | Yes | ||
| idempotencyKey | Yes | ||
| timelineItemId | Yes | ||
| expectedRevision | Yes | Expected sequence revision, or null. | |
| trimEndDeltaSeconds | Yes | ||
| trimStartDeltaSeconds | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds value on top: it warns that existing timeline state is changed and that the call returns a retry-safe receipt, which clarifies the retry semantics of the idempotency contract. It stops short of saying exactly what is destroyed or how the deltas behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, and the mutation/state-change fact is placed early. Slightly under-elaborated rather than padded, which is preferable, though it could have spent one more clause on the delta parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and annotations carry the safety profile. But for a 7-parameter destructive mutation with 29% schema coverage, the description leaves the delta and snap semantics undocumented, which is a real gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% (essentially just projectId and expectedRevision). The description mentions the revision concept but says nothing about trimStartDeltaSeconds/trimEndDeltaSeconds units or sign conventions, snapToFrame, or idempotencyKey, so the low-coverage gap is not compensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair ("trim or extend") on a specific resource ("one timeline item") with the revision constraint. It is clear what the tool does, but it never names the obvious sibling timeline_trim_preview, so an agent must infer the apply-vs-preview split from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Changes existing timeline state" implies this is the committing counterpart to the preview tool, giving implied context for use. However, there is no explicit when-to-use, no reference to timeline_trim_preview, and no stated prerequisites beyond the revision, so the routing guidance is only inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timeline_trim_previewPreview Timeline TrimBRead-onlyIdempotentInspect
Preview trimming or extending one timeline item without changing the project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| snapToFrame | Yes | ||
| timelineItemId | Yes | ||
| expectedRevision | Yes | Expected sequence revision, or null. | |
| trimEndDeltaSeconds | Yes | ||
| trimStartDeltaSeconds | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered structurally. The phrase 'without changing the project' usefully reinforces the no-op guarantee, but the description says nothing about what the preview returns or how deltas are validated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the key constraint (no project change) is stated immediately. It is efficient, though arguably too short given the six required parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six required parameters at 33% schema coverage, an output schema covering return values, and annotations covering safety, the remaining gap is parameter meaning and the reconciliation/revision requirement. The description addresses none of that, leaving the agent to guess at delta semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description carries the burden, yet it explains none of the unclear parameters. It does not clarify that trimStartDeltaSeconds/trimEndDeltaSeconds are signed deltas (negative = extend?), nor what snapToFrame or timelineItemId control.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (preview) plus the exact action (trimming or extending), the scope (one timeline item), and the crucial non-mutation constraint. This implicitly distinguishes it from timeline_trim_apply, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Preview ... without changing the project' suggests a dry run before timeline_trim_apply, but there is no explicit when-to-use, no stated prerequisites (e.g. needing a valid expectedRevision), and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_timeline_clipUpdate Timeline ClipBDestructiveIdempotentInspect
Update one timeline item's start, duration, trim, layer, ignored state, or blurred background. Provide at least one field to update besides timelineItemId.
| Name | Required | Description | Default |
|---|---|---|---|
| ignored | No | ||
| projectId | Yes | UUID string. | |
| layerIndex | No | ||
| startSeconds | No | ||
| idempotencyKey | Yes | Retry key. Reuse only with identical inputs. | |
| timelineItemId | Yes | ||
| trimEndSeconds | No | ||
| durationSeconds | No | ||
| expectedRevision | No | Expected sequence revision, or null. | |
| trimStartSeconds | No | ||
| blurredBackground | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| txid | Yes | |
| result | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| projectId | Yes | |
| operationId | Yes | |
| baseRevision | Yes | |
| mutationReceipt | Yes | |
| createdTimelineItemIds | Yes | |
| deletedTimelineItemIds | Yes | |
| affectedTimelineItemIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructiveHint=true, idempotentHint=true, and openWorldHint=false, so safety and retry semantics are largely covered elsewhere. The description adds the error-condition constraint that at least one field beyond timelineItemId must be supplied, but says nothing about partial-update semantics, preview/undo availability, or what an omitted field does.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core action front-loaded and the precondition immediately after. No filler, though the enumeration is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover the safety profile. Still, for an 11-parameter destructive mutation with only 27% schema coverage, the description omits concurrency behavior (expectedRevision) and the meaning of partial updates, leaving gaps an agent would need to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (27%) across 11 parameters, so the description is expected to compensate, and it does name six of the updatable fields. It still leaves expectedRevision (concurrency/optimistic locking) and layerIndex semantics unexplained, so it only partly fills the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('update') and resource ('one timeline item') and enumerates the mutable fields (start, duration, trim, layer, ignored, blurred background). The word 'one' implicitly separates it from the sibling batch_update_timeline_clips, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence 'Provide at least one field to update besides timelineItemId' tells the agent the invocation precondition, which is useful guidance. However, there is no when-to-use vs. when-not guidance and no routing to overlapping siblings such as timeline_trim_apply, editor_items_move, or batch_update_timeline_clips.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_assets_approveApprove Previews and Produce VideoADestructiveIdempotentInspect
After the user approves the generated previews and animation cost, confirmApproved=true starts scene animation, narration and editable timeline assembly. Can replace the project's generated timeline and spend existing credits. Follow the revision and then export the finished project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| revisionId | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| confirmApproved | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations marking this as destructive and open-world, the description adds concrete behavioral details: it can replace the project's generated timeline and spend existing credits, and it starts animation, narration and timeline assembly. It does not discuss idempotency or return behavior, but it goes meaningfully beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the approval prerequisite and effect, with no obvious filler. 'Follow the revision and then export' is slightly vague but still earns its place as workflow guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, credit-spending production tool with rich annotations and an output schema, the description covers prerequisite, side effects and next step. It is only incomplete on parameter details, which the low schema coverage leaves partly unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, and the description only clarifies confirmApproved (must be true) while leaving workspaceId, idempotencyKey, projectId and revisionId without added meaning. 'Follow the revision' is too vague to compensate for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description specifies the trigger (user approves previews and animation cost) and the resulting action (starts scene animation, narration, editable timeline assembly), making the tool's purpose clear. It does not distinguish itself from sibling approval or generation tools such as video_storyboard_approve or generation_video_create, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the prerequisite condition ('After the user approves...') and indicates the next workflow step ('then export the finished project'), giving clear context for invocation. It does not exclude alternatives or name a competing tool, so it is a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_feedback_saveSave Video Quality FeedbackADestructiveIdempotentInspect
Save the user's 1-5 rating and optional quality category/comment against one completed playable video export. Replaces that user's previous feedback for this export; does not change accepted clips or defaults. Requires the feedback storage migration to be installed.
| Name | Required | Description | Default |
|---|---|---|---|
| rating | Yes | ||
| comment | Yes | ||
| category | Yes | ||
| exportId | Yes | UUID string. | |
| workspaceId | Yes | ||
| idempotencyKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description goes further by explaining the destructive scope (replaces that user's previous feedback only, not accepted clips or defaults) and a real prerequisite (the feedback storage migration must be installed). This is meaningful context beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, then the mutation scope, then the prerequisite. No filler and every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations plus description together cover safety, scope of mutation, and prerequisites. The gaps are the undocumented workspaceId/idempotencyKey parameters and the optional/required mismatch on category and comment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17%, so the description must carry weight. It adds the 1-5 rating range and the nature of category/comment, but says nothing about workspaceId or idempotencyKey, and it calls category/comment optional while the schema marks both as required (category nullable). Baseline 3 reflects partial compensation for a sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Save) and resource (the user's 1-5 rating and optional quality category/comment) scoped to one completed playable video export. This is unambiguous and no sibling tool covers feedback capture, so it is easily distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the precondition (one completed playable video export) and clarifies the effect (replaces that user's previous feedback, does not change accepted clips or defaults). It stops short of naming when a caller would prefer a different tool, but no obvious alternative exists in the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_storyboard_approveApprove Storyboard PreviewsADestructiveIdempotentInspect
After showing the storyboard and its credit estimate, confirmApproved=true starts production of reference images and scene keyframes. Spends existing credits. This stage produces reviewable previews, not animated videos.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| revisionId | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| confirmApproved | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so safety and retry semantics are covered structurally. The description adds the critical side effect that this spends existing credits and clarifies the output is previews rather than finished video, which is real behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, no filler, and the trigger condition and cost warning are front-loaded and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description covers the preconditions, cost, and output nature; the only notable gap is guidance on the idempotencyKey for safe retries on this destructive, costly operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the schema does not carry the burden. The description usefully explains the confirmApproved gate (must be true to start production), but says nothing about workspaceId, projectId, revisionId, or the idempotencyKey's role despite idempotentHint being set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (approve/start production) plus the concrete resources it produces: reference images and scene keyframes. It also disambiguates against video-generation siblings by stating this stage 'produces reviewable previews, not animated videos.' An agent can distinguish it from video_storyboard_create and video_assets_approve without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition: use it after the storyboard and its credit estimate have been shown, with confirmApproved=true. It does not name an explicit alternative tool or state exclusions, but the gating condition is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_storyboard_asset_regenerateRegenerate Selected Storyboard PreviewADestructiveIdempotentInspect
Replace the identified preview after user approval of the new credit cost. A scene_keyframe changes one keyframe; a character_anchor refreshes its dependent keyframes; a style_anchor refreshes every keyframe. Preserves unaffected previews. Does not regenerate an already finished video shot.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| asset_type | Yes | style_anchor regenerates the shared style reference and every keyframe; character_anchor requires character_id and refreshes dependent keyframes; scene_keyframe requires scene_index. | |
| revisionId | Yes | ||
| scene_index | No | ||
| workspaceId | Yes | ||
| character_id | No | ||
| idempotencyKey | Yes | ||
| confirmRegeneration | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=true, but the description goes further by quantifying blast radius per asset_type ('refreshes every keyframe' vs 'one keyframe') and by stating unaffected previews are preserved, which directly bounds the destruction. It omits auth/permission requirements and whether regeneration is synchronous or a long-running job.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action and its approval gate, then the asset-type table in prose, then the exclusion. Every sentence earns its place, though the bare parameter-name phrasing ('A scene_keyframe changes one keyframe') reads slightly clipped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover the safety profile. The description supplies the missing blast-radius and approval-gate context, leaving only minor gaps around async completion behavior and permission requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% across 8 parameters, so the description carries real weight. It usefully interprets asset_type values in terms of downstream effects, but it says nothing about the required idempotencyKey, confirmRegeneration=true (the approval gate it alludes to), or the conditional scene_index/character_id pairing. Partial compensation warrants a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (replace/regenerate) plus a clearly bounded resource (an individual storyboard preview), with the per-asset-type behavior spelled out so the agent knows what unit is being replaced. It separates scene_keyframe (one keyframe), character_anchor (dependent keyframes), and style_anchor (all keyframes) crisply. No sibling is named, so it stops short of the 5-level sibling differentiation bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition ('after user approval of the new credit cost') and an explicit exclusion ('Does not regenerate an already finished video shot'), which tells the agent when not to call it. It never names an alternative action (e.g., video_storyboard_revise or video_storyboard_approve), so the routing decision against siblings remains inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_storyboard_createPlan an Approved Video ScriptADestructiveIdempotentInspect
Create a vertical video storyboard for the user-approved script in an existing project. Spends planning credits; returns scene narration, factual review notes, references and the production credit estimate. Does not generate images or animate video. Existing account access applies.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | ||
| voice_id | No | ||
| projectId | Yes | UUID string. | |
| series_id | No | ||
| video_model | No | ||
| workspaceId | Yes | ||
| story_kit_id | No | ||
| visual_style | No | ||
| character_ids | No | ||
| idempotencyKey | Yes | ||
| image_model_id | No | ||
| caption_style_id | No | ||
| include_captions | No | ||
| planner_model_id | No | ||
| confirmScriptApproved | Yes | ||
| generate_sound_effects | No | ||
| target_duration_seconds | No | ||
| generate_background_music | No | ||
| style_reference_asset_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so safety is partly covered; the description still adds real context beyond them by disclosing that the call spends planning credits, what it returns (scene narration, factual review notes, references, credit estimate), and that it does not generate images or animate video. 'Existing account access applies' gestures at auth requirements but is too vague to fully discharge them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the purpose and the credit cost, with no wasted prose. The closing 'Existing account access applies' is vague filler that adds little, keeping it out of 5 territory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description needn't explain return values (though it partially does), and annotations cover the safety profile. For a 19-parameter mutation that spends credits, however, the near-total absence of parameter guidance leaves the definition only minimally complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 5% across 19 parameters, so the description carries the burden of explaining them — and it barely does, covering only the script ('user-approved script') and implicitly the project. Undocumented inputs such as video_model, voice_id, visual_style, character_ids, story_kit_id and target_duration_seconds are left for the agent to guess at.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a vertical video storyboard') plus scope ('for the user-approved script in an existing project'). The negative scope statement ('Does not generate images or animate video') separates it from generation_video_create and the generation_* siblings, and the name/title disambiguate it from video_storyboard_revise and video_storyboard_approve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear precondition (user-approved script, existing project) and a clear exclusion (not image generation or video animation), which tells the agent when this is the right call. It stops short of naming the alternative siblings (e.g. video_storyboard_revise for an already-created storyboard), so no explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_storyboard_getReview Video StoryboardARead-onlyIdempotentInspect
Read one authorized storyboard revision, its scene and reference previews, estimate, approvals and bounded polling guidance. Refreshes signed previews. Complete means the editable timeline is assembled; use exports_start and exports_list for a downloadable MP4.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| revisionId | Yes | ||
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/non-destructive, so safety is covered. The description adds traits the annotations do not: signed previews get refreshed on read, polling should be bounded, and access requires authorization. That is meaningful behavioral context beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with little waste; purpose comes first, then behavioral notes, then sibling routing. 'Complete means the editable timeline is assembled' is compact but slightly cryptic without the surrounding context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required here. The description still covers scope, authorization, polling, and hand-off to export tools, which is nearly everything an agent needs to invoke a simple read correctly; only parameter-level detail is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (projectId has a bare 'UUID string.', revisionId none at all), and the description does not compensate by explaining the identifiers. They are self-explanatory UUIDs and the phrase 'authorized storyboard revision' loosely frames revisionId, but the nullable/defaulted workspaceId is never addressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read one authorized storyboard revision') and enumerates what the response covers (scene and reference previews, estimate, approvals). It also distinguishes itself from the write siblings and explicitly routes downloadable-output needs to exports_start/exports_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use: reading a single authorized revision and polling it until the editable timeline is assembled, with exports_start/exports_list named as the alternative for MP4 output. It lacks explicit when-not-to-use guidance versus siblings like video_storyboard_create/revise, but the alternative routing is concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_storyboard_reviseRevise Selected Storyboard ScenesAIdempotentInspect
Create a new immutable draft from a known revision with selected scene, character or model changes. Preserves other scene definitions; requires review and production approval again. Does not generate media or overwrite an approved revision.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | UUID string. | |
| revisionId | Yes | ||
| video_model | No | ||
| workspaceId | Yes | ||
| scene_updates | No | ||
| idempotencyKey | Yes | ||
| image_model_id | No | ||
| character_updates | No | ||
| style_anchor_prompt | No | Self-contained prompt for the single reference frame that locks rendering medium, palette, lighting, and grain for every scene. No characters, no text, no interfaces. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (mutating, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real workflow context beyond them: results are an immutable draft, other scene definitions are preserved, and the revision must pass review and production approval again. It stops short of explaining how idempotencyKey affects replay behavior, but the added value is genuine.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, then constraints. No filler and every sentence carries weight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be described, and annotations cover safety semantics. The description covers the mutation's downstream workflow implications, which is the main thing an agent needs. Minor gaps remain around parameter-level expectations for a 9-parameter mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 22%, so the description must compensate, and it partially does by naming the three change categories (scene, character, model) that map to scene_updates, character_updates, and the model-id params. It says nothing about idempotencyKey, workspaceId/projectId scoping, or the per-item update structures, leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: creating a new immutable draft from a known revision with scene/character/model changes. It also distinguishes itself from a plain storyboard create by emphasizing the revision basis and preservation of other scenes, so an agent can tell it apart from siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives implied when-not boundaries (does not generate media, does not overwrite an approved revision), which steer the agent away from generation and approval flows. However, it never names the alternative tools (e.g. video_storyboard_create, video_storyboard_asset_regenerate, generation_*) or states the positive condition for choosing this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
visuals_applyApply visual presetsADestructiveIdempotentInspect
Create or update up to 20 visual blocks in one call after edit timing is settled. Presets: broll-headline, steps, quote, end-screen, key-number, before-after, screenshot-focus, chapter. IDs are scoped to the project; repeating an ID updates it. Asset IDs must belong to the workspace. Atomic, undoable; dryRun validates without writing. Returns IDs and revision. No generation pass.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Supply only the fields for the selected preset. | |
| dryRun | Yes | ||
| projectId | Yes | UUID string. | |
| idempotencyKey | Yes | ||
| expectedRevision | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| dryRun | Yes | |
| success | Yes | |
| replayed | Yes | |
| revision | Yes | |
| warnings | Yes | |
| mutationReceiptId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses upsert semantics ('repeating an ID updates it'), a workspace-scoping constraint on asset IDs, atomic/undoable transaction behavior, and that dryRun validates without writing. This meaningfully enriches the destructiveHint=true / idempotentHint=true profile rather than repeating it, though it stops short of spelling out what specifically is overwritten on an update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph front-loaded with the core action, followed by presets, ID semantics, constraints, and safety notes in descending order of importance. Every clause contributes distinct information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch-mutation tool with an output schema (so return values needn't be explained), the description covers workflow, scoping, atomicity, and dry-run adequately. The remaining gap is the conditional per-preset field logic, which is delegated to the schema but is critical to correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, so the description carries extra weight here, but it mostly reiterates what the schema already encodes (the preset enum, the 20-item cap). It does add non-schema meaning for `id` (project-scoped, upsert) and `dryRun`, but it does not clarify the per-preset conditional field requirements, leaving the compensating burden partly unmet.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope ('Create or update up to 20 visual blocks in one call'), and enumerates the eight presets so the agent knows exactly what it produces. It does not explicitly contrast itself with close siblings like add_text_overlay or carousels_apply_template, so the differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear situational precondition — call it 'after edit timing is settled' — and notes 'No generation pass,' implying it consumes existing assets rather than creating them. It offers no explicit when-not conditions or named alternative tools, which keeps it 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.
workspace_brand_scanInspect Supplied Business WebsiteBDestructiveIdempotentInspect
Start extracting a brand profile from the exact website the user supplied and authorized to scan. Saves a draft profile for review; does not apply discovered fields to existing videos. Can spend existing account credits.
| Name | Required | Description | Default |
|---|---|---|---|
| websiteUrl | Yes | ||
| workspaceId | Yes | ||
| idempotencyKey | Yes | ||
| confirmAuthorizedToScan | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-read-only, destructive, idempotent, open-world behavior, and the description adds meaningful context beyond them: a draft is saved for review, discovered fields are NOT applied to existing videos, and account credits may be consumed. This clarifies the real cost and side-effect profile, though it leaves the idempotency mechanism (idempotencyKey) unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences — purpose first, then side effects, then cost — with no filler. It is efficient, though the side-effect and cost clauses could be slightly tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, and the description does cover purpose, side effects, and cost. But for a 4-required-parameter mutation with 0% schema coverage, the omission of idempotency and workspace scoping leaves the definition incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, yet it only loosely gestures at websiteUrl ('the exact website the user supplied') and confirmAuthorizedToScan ('authorized to scan'). Neither idempotencyKey nor workspaceId is explained at all, leaving two of four required parameters opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'extracting a brand profile from the exact website' — and its 'Start...' framing hints at the async companion workspace_brand_scan_get, though it never names that sibling. An agent can identify the operation clearly but must infer the get/start pairing from the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It conveys the precondition that the website must be 'supplied and authorized' by the user, which frames when the tool is appropriate. However, it never states when NOT to use it or points to workspace_brand_scan_get for retrieving the resulting profile, so routing is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_brand_scan_getRead Website Brand DraftBRead-onlyIdempotentInspect
Read one authorized website extraction run and its draft business profile. Show the extracted fields to the user for review before saving them as defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | UUID string. | |
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds two useful pieces of context beyond that: the run must be "authorized" and the draft should not be auto-persisted, but it says nothing about pagination, freshness, or what happens when the run is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the read operation stated before the follow-up consumer instruction. It is appropriately sized for a simple lookup; the only minor cost is that the second sentence mixes behavioral guidance into what reads like a purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 prose, and the description correctly points at the draft business profile. What is missing is the anchor for the two required IDs and any link to the sibling that creates the run, which an agent needs in order to sequence calls correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Coverage is 50% and the only schema text is the useless "UUID string."; workspaceId has no description at all. The description refers to "one authorized website extraction run" but never explains what runId identifies, what workspaceId scopes, or where either value is obtained (e.g., from workspace_brand_scan output).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Read) and a specific resource (one authorized website extraction run plus its draft business profile), which is far more than a restatement of the name. It stops short of naming the sibling that produces the run (workspace_brand_scan), so the read-vs-create relationship must be inferred from the name pair.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Show the extracted fields to the user for review before saving them as defaults" implies the intended place in the workflow (retrieve draft, human reviews, then persist). However, it never says when to call this versus workspace_brand_scan or workspace_context_get/save, and gives no prerequisites such as the run needing to have finished.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_context_getRead Business ContextBRead-onlyIdempotentInspect
Read the selected workspace's business audience, offer, reviewed brand defaults, protected vocabulary, editorial purpose, language, avoided terms, pronunciation notes and existing account entitlements. Returns current export quality, watermark constraints, public plan names, monthly USD prices, included AI credits and the pricing upgrade URL.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds useful content-level disclosure (that watermark/export-quality constraints and live pricing/entitlements come back), but says nothing about the default-workspace behavior implied by a nullable workspaceId, or about any auth/plan gating on the pricing data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the read operation, and every clause carries distinct information. The enumeration is long, but each item names a different data domain rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the entire second sentence enumerating return values (export quality, plan names, prices, credits, upgrade URL) largely duplicates structured data. That space would have been better spent on the null-workspaceId semantics or on when to prefer this over the save/scan siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single parameter, so the description must carry it — and it only loosely does by saying "the selected workspace's". The schema allows null with default null, which almost certainly means 'use the currently selected workspace', but the description never states that, leaving a real ambiguity for a required-but-nullable field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ("Read the selected workspace's ...") and enumerates the concrete data domains it returns, which clearly separates it from write-side siblings like workspace_context_save and scan-side ones like workspace_brand_scan. It stops short of naming any sibling, and the second sentence shifts to a different subject (billing/entitlements), making the tool's scope slightly straddled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to call this versus alternatives, no prerequisites, no exclusions. With workspace_context_save, workspace_brand_scan, workspace_brand_scan_get and workspaces_list all in the sibling set, the agent gets no routing signal for which one to reach for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_context_saveSave Reviewed Business ContextADestructiveIdempotentInspect
Save the user-reviewed business name, audience, offer, conversion goal, tone, protected vocabulary and editorial preferences for the selected workspace. Requires workspace settings permission and confirmReviewed=true; changes future assistant guidance, preserving existing projects. Pronunciation notes guide script drafting; they do not retime or replace source speech.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | Yes | ||
| offer | Yes | ||
| audience | Yes | ||
| brandName | Yes | ||
| workspaceId | Yes | ||
| conversionGoal | Yes | ||
| idempotencyKey | Yes | ||
| protectedWords | Yes | ||
| confirmReviewed | Yes | ||
| editorialPreferences | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is partly covered. The description adds value beyond them: it requires workspace settings permission, mandates confirmReviewed=true, states that existing projects are preserved despite the destructive hint, and scopes pronunciation notes as drafting-only guidance that does not retime or replace source speech.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense, front-loaded clauses with no filler: what is saved, the gating requirements, then the behavioral consequence and a boundary on pronunciation notes. The last clause is arguably peripheral but does prevent a plausible misuse, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers permission requirements, the review confirmation gate, the destructive-but-project-preserving behavior, and the scope limit on pronunciation notes. The missing piece is idempotencyKey semantics for a non-idempotent-looking 10-required-param write.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 10 required parameters, so the description must compensate. It names most content fields (brand name, audience, offer, conversion goal, tone, protected vocabulary, editorial preferences with pronunciation notes) and confirms confirmReviewed. However, idempotencyKey — a required, agent-generated parameter — is never mentioned, nor are format constraints or the enum values inside editorialPreferences.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Save') plus a concrete resource enumerated field-by-field (business name, audience, offer, conversion goal, tone, protected vocabulary, editorial preferences), scoped to 'the selected workspace'. It is unmistakably a write counterpart to workspace_context_get, but it never names that sibling explicitly, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real preconditions: the content must be 'user-reviewed', the caller needs workspace settings permission, and confirmReviewed=true is mandatory. It also frames the downstream effect ('changes future assistant guidance, preserving existing projects'), which tells the agent when this is the right tool. It stops short of naming the get/scan siblings the agent should read from first or describing a re-save/update workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspaces_listList WorkspacesBRead-onlyIdempotentInspect
List bounded workspaces the connected user belongs to, with their role and default workspace. Selecting a workspace for the task does not change account defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | Yes | ||
| offset | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely non-redundant context: what each result contains (role, default workspace) and the important caveat that choosing a workspace for a task does not alter account defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with what is listed and what is returned. The second sentence is slightly tangential but earns its place by preempting a likely misreading about side effects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation isn't required, and the description covers the shape of results at a high level. However, pagination semantics for the two required parameters are covered nowhere, leaving a real gap for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and both limit and offset are required, yet the description says nothing about pagination, page size bounds (max 50), or how to page through results. For a 2-parameter paginated list, the description should compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (list workspaces) and adds scope detail: only workspaces the connected user belongs to, returned with role and default workspace. It's clearly distinct from sibling list tools like projects_list or media_folders_list, though it doesn't explicitly name a counterpart it could be confused with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 looking up a single workspace (e.g., workspace_context_get), nor prerequisites. The sentence about selecting a workspace not changing account defaults is a side-effect clarification, not a when-to-use statement.
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.
5 tool updates
- Changed
content_performance_list2 fields changed- added
Input schema / properties / includeDetailsAdded value: +{ + "default": false, + "type": "boolean" +} - changed
Input schema / requiredPrevious value: -[ - "workspaceId", - "platform", - "format", - "connectionIds", - "range", - "limit", - "offset", - "search" -]New value: +[ + "includeDetails", + "workspaceId", + "platform", + "format", + "connectionIds", + "range", + "limit", + "offset", + "search" +]
- Changed
generation_faceless_create1 field changed- changed
Input schema / properties / videoModel / enumPrevious value: -[ - "sync-lipsync-2", - "flux-3-max", - "heygen-video", - "omnihuman-v2", - "seedance-2.5-edit", - "kling-o3-standard-edit", - "kling-o3-pro-edit", - "kling-v3-standard-motion-control", - "kling-v3-pro-motion-control", - "wan-2.2-animate-replace", - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "wan-3.0", - "wan-3.0-prime", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine-lite", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast" -]New value: +[ + "sync-lipsync-2", + "flux-3-max", + "grok-imagine-1.5", + "heygen-video", + "omnihuman-v2", + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-v4", + "kling-v4-ref2v", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "wan-3.0", + "wan-3.0-prime", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine-lite", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast", + "vidu-q3", + "vidu-q3-ref2v" +]
- Changed
generation_image_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "fal-ai/gpt-image-1", - "fal-ai/gpt-image-1.5", - "fal-ai/gpt-image-2", - "fal-ai/gpt-image-2.5-flare", - "fal-ai/gpt-image-2.5-sunburst", - "xai/grok-imagine-image-2.0", - "bfl/flux-3-image", - "bfl/flux-3-image-klein", - "fal-ai/bytedance/seedream/v5/lite/text-to-image", - "bytedance/seedream/v5/pro/text-to-image", - "fal-ai/krea-2/turbo", - "fal-ai/krea/v2/medium/turbo/text-to-image", - "fal-ai/krea/v2/medium/text-to-image", - "fal-ai/krea/v3/text-to-image", - "fal-ai/meta/muse-image/text-to-image", - "fal-ai/nano-banana-2", - "google/nano-banana-2.1", - "google/nano-banana-2-lite", - "fal-ai/nano-banana-pro" -]New value: +[ + "fal-ai/gpt-image-1", + "fal-ai/gpt-image-1.5", + "fal-ai/gpt-image-2", + "fal-ai/gpt-image-2.5-flare", + "fal-ai/gpt-image-2.5-sunburst", + "xai/grok-imagine-image-2.0", + "bfl/flux-3-image", + "bfl/flux-3-image-klein", + "fal-ai/bytedance/seedream/v5/lite/text-to-image", + "bytedance/seedream/v5/pro/text-to-image", + "fal-ai/krea-2/turbo", + "fal-ai/krea/v2/medium/turbo/text-to-image", + "fal-ai/krea/v2/medium/text-to-image", + "fal-ai/krea/v3/text-to-image", + "fal-ai/meta/muse-image/text-to-image", + "fal-ai/bria/fibo-2/generate", + "fal-ai/nano-banana-2", + "google/nano-banana-2.1", + "google/nano-banana-2-lite", + "fal-ai/nano-banana-pro" +]
- Changed
generation_video_create2 fields changed- changed
Input schema / properties / model / defaultPrevious value: -"wan-2.1"New value: +"kling-v3-pro-t2v" - changed
Input schema / properties / model / enumPrevious value: -[ - "sync-lipsync-2", - "flux-3-max", - "flux-3-max-t2v", - "heygen-video", - "heygen-video-t2v", - "omnihuman-v2", - "seedance-2.5-edit", - "kling-o3-standard-edit", - "kling-o3-pro-edit", - "kling-v3-standard-motion-control", - "kling-v3-pro-motion-control", - "wan-2.2-animate-replace", - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "minimax-h3-max-t2v", - "luma-ray-3.2-t2v", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "wan-3.0", - "wan-3.0-prime", - "wan-3.0-t2v", - "wan-3.0-prime-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine-lite", - "grok-imagine-lite-t2v", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.5-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v", - "ltx-2.3-t2v", - "ltx-2.3-fast-t2v" -]New value: +[ + "sync-lipsync-2", + "flux-3-max", + "flux-3-max-t2v", + "grok-imagine-1.5", + "grok-imagine-1.5-t2v", + "heygen-video", + "heygen-video-t2v", + "omnihuman-v2", + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-v4", + "kling-v4-ref2v", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "minimax-h3-max-t2v", + "luma-ray-3.2-t2v", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "wan-3.0", + "wan-3.0-prime", + "wan-3.0-t2v", + "wan-3.0-prime-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine-lite", + "grok-imagine-lite-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "kling-v4-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v", + "ltx-2.3-t2v", + "ltx-2.3-fast-t2v", + "vidu-q3", + "vidu-q3-ref2v", + "vidu-q3-t2v" +]
- Changed
learning_start1 field changed- changed
Input schema / properties / maxCredits / maximumPrevious value: -1000New value: +10000
8 tool updates
- Added
editor_composition_edit - Changed
editor_crop_set17 fields changed- added
Input schema / $defsAdded value: +{ + "__schema0": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "__schema1": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "__schema2": { + "maximum": 1, + "minimum": 0.0001, + "type": "number" + }, + "__schema3": { + "maximum": 1, + "minimum": 0.0001, + "type": "number" + } +} - added
Input schema / properties / crop / properties / height / $refAdded value: +"#/$defs/__schema3" - removed
Input schema / properties / crop / properties / height / maximumRemoved value: -1 - removed
Input schema / properties / crop / properties / height / minimumRemoved value: -0.0001 - removed
Input schema / properties / crop / properties / height / typeRemoved value: -"number" - added
Input schema / properties / crop / properties / width / $refAdded value: +"#/$defs/__schema2" - removed
Input schema / properties / crop / properties / width / maximumRemoved value: -1 - removed
Input schema / properties / crop / properties / width / minimumRemoved value: -0.0001 - removed
Input schema / properties / crop / properties / width / typeRemoved value: -"number" - added
Input schema / properties / crop / properties / x / $refAdded value: +"#/$defs/__schema0" - removed
Input schema / properties / crop / properties / x / maximumRemoved value: -1 - removed
Input schema / properties / crop / properties / x / minimumRemoved value: -0 - removed
Input schema / properties / crop / properties / x / typeRemoved value: -"number" - added
Input schema / properties / crop / properties / y / $refAdded value: +"#/$defs/__schema1" - removed
Input schema / properties / crop / properties / y / maximumRemoved value: -1 - removed
Input schema / properties / crop / properties / y / minimumRemoved value: -0 - removed
Input schema / properties / crop / properties / y / typeRemoved value: -"number"
- Changed
editor_items_move6 fields changed- added
Input schema / $defsAdded value: +{ + "__schema0": { + "additionalProperties": false, + "properties": { + "id": { + "minLength": 1, + "type": "string" + }, + "layerIndex": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "startSeconds": { + "minimum": 0, + "type": "number" + } + }, + "required": [ + "id", + "startSeconds", + "layerIndex" + ], + "type": "object" + } +} - added
Input schema / properties / items / items / $refAdded value: +"#/$defs/__schema0" - removed
Input schema / properties / items / items / additionalPropertiesRemoved value: -false - removed
Input schema / properties / items / items / propertiesRemoved value: -{ - "id": { - "minLength": 1, - "type": "string" - }, - "layerIndex": { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "startSeconds": { - "minimum": 0, - "type": "number" - } -} - removed
Input schema / properties / items / items / requiredRemoved value: -[ - "id", - "startSeconds", - "layerIndex" -] - removed
Input schema / properties / items / items / typeRemoved value: -"object"
- Changed
editor_items_remove4 fields changed- added
Input schema / $defsAdded value: +{ + "__schema0": { + "minLength": 1, + "type": "string" + } +} - added
Input schema / properties / itemIds / items / $refAdded value: +"#/$defs/__schema0" - removed
Input schema / properties / itemIds / items / minLengthRemoved value: -1 - removed
Input schema / properties / itemIds / items / typeRemoved value: -"string"
- Changed
generation_faceless_create1 field changed- changed
Input schema / properties / videoModel / enumPrevious value: -[ - "seedance-2.5-edit", - "kling-o3-standard-edit", - "kling-o3-pro-edit", - "kling-v3-standard-motion-control", - "kling-v3-pro-motion-control", - "wan-2.2-animate-replace", - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "wan-3.0", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine-lite", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast" -]New value: +[ + "sync-lipsync-2", + "flux-3-max", + "heygen-video", + "omnihuman-v2", + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "wan-3.0", + "wan-3.0-prime", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine-lite", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast" +]
- Changed
generation_image_create3 fields changed- added
Input schema / properties / characterIdAdded value: +{ + "description": "Workspace character to keep consistent (characters_list). Its reference images or trained weights and description are added; they count toward the model reference limit.", + "format": "uuid", + "type": "string" +} - changed
Input schema / properties / model / enumPrevious value: -[ - "fal-ai/gpt-image-1", - "fal-ai/gpt-image-1.5", - "fal-ai/gpt-image-2", - "fal-ai/gpt-image-2.5-flare", - "fal-ai/gpt-image-2.5-sunburst", - "xai/grok-imagine-image-2.0", - "bfl/flux-3-image", - "fal-ai/bytedance/seedream/v5/lite/text-to-image", - "bytedance/seedream/v5/pro/text-to-image", - "fal-ai/krea-2/turbo", - "fal-ai/krea/v2/medium/turbo/text-to-image", - "fal-ai/krea/v2/medium/text-to-image", - "fal-ai/nano-banana-2", - "google/nano-banana-2.1", - "google/nano-banana-2-lite", - "fal-ai/nano-banana-pro" -]New value: +[ + "fal-ai/gpt-image-1", + "fal-ai/gpt-image-1.5", + "fal-ai/gpt-image-2", + "fal-ai/gpt-image-2.5-flare", + "fal-ai/gpt-image-2.5-sunburst", + "xai/grok-imagine-image-2.0", + "bfl/flux-3-image", + "bfl/flux-3-image-klein", + "fal-ai/bytedance/seedream/v5/lite/text-to-image", + "bytedance/seedream/v5/pro/text-to-image", + "fal-ai/krea-2/turbo", + "fal-ai/krea/v2/medium/turbo/text-to-image", + "fal-ai/krea/v2/medium/text-to-image", + "fal-ai/krea/v3/text-to-image", + "fal-ai/meta/muse-image/text-to-image", + "fal-ai/nano-banana-2", + "google/nano-banana-2.1", + "google/nano-banana-2-lite", + "fal-ai/nano-banana-pro" +] - added
Input schema / properties / sizeAdded value: +{ + "anyOf": [ + { + "pattern": "^[1-9][0-9]{1,4}x[1-9][0-9]{1,4}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Exact output size as WIDTHxHEIGHT, for example 1920x2304. Only models whose parameters.size.supported is true in generation_options_list; it replaces aspectRatio, and credits scale with pixel count." +}
- Changed
generation_video_create4 fields changed- added
Input schema / properties / characterIdAdded value: +{ + "description": "Workspace character to keep consistent (characters_list). Its reference images come first (@Image1 is the primary), capped to the model limit. Only models whose parameters.character_id.supported is true in generation_options_list.", + "format": "uuid", + "type": "string" +} - changed
Input schema / properties / model / enumPrevious value: -[ - "seedance-2.5-edit", - "kling-o3-standard-edit", - "kling-o3-pro-edit", - "kling-v3-standard-motion-control", - "kling-v3-pro-motion-control", - "wan-2.2-animate-replace", - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "minimax-h3-max-t2v", - "luma-ray-3.2-t2v", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "wan-3.0", - "wan-3.0-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine-lite", - "grok-imagine-lite-t2v", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.5-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v", - "ltx-2.3-t2v", - "ltx-2.3-fast-t2v" -]New value: +[ + "sync-lipsync-2", + "flux-3-max", + "flux-3-max-t2v", + "heygen-video", + "heygen-video-t2v", + "omnihuman-v2", + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "minimax-h3-max-t2v", + "luma-ray-3.2-t2v", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "wan-3.0", + "wan-3.0-prime", + "wan-3.0-t2v", + "wan-3.0-prime-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine-lite", + "grok-imagine-lite-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v", + "ltx-2.3-t2v", + "ltx-2.3-fast-t2v" +] - added
Input schema / properties / referenceAssetUrisAdded value: +{ + "default": [], + "description": "BytePlus ModelArk real-human assets as asset://ID, for people who verified themselves in the BytePlus console. Requires provider byteplus-modelark and a model whose parameters.reference_asset_uris.supported is true in generation_options_list. They follow referenceAssetIds in @ImageN numbering and count toward the reference limit.", + "items": { + "pattern": "^asset://[A-Za-z0-9][A-Za-z0-9._-]{0,127}$", + "type": "string" + }, + "maxItems": 30, + "type": "array" +} - added
Input schema / properties / referenceVideoRangeAdded value: +{ + "anyOf": [ + { + "properties": { + "endSeconds": { + "exclusiveMinimum": 0, + "type": "number" + }, + "startSeconds": { + "minimum": 0, + "type": "number" + } + }, + "required": [ + "startSeconds", + "endSeconds" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Cut this range from the reference video before a character swap or video edit; billed for the range length." +}
- Changed
generation_voiceover_create2 fields changed- changed
Input schema / properties / voiceId / descriptionPrevious value: -"Voice ID. Call generation_options_list with kind voiceover for the catalog."New value: +"Catalog voice ID (generation_options_list with kind voiceover) or a workspace voice ID (voices_list), such as a cloned voice." - removed
Input schema / properties / voiceId / enumRemoved value: -[ - "pNInz6obpgDQGcFmaJgB", - "TX3LPaxmHKxFdv7VOQHJ", - "FGY2WhTYpPnrIDTdsKH5", - "IKne3meq5aSn9XLyUdCD", - "cgSgspJ2msm6clMCkdW9", - "bIHbv24MWmeRgasZH58o", - "nPczCjzI2devNBz1zQrb", - "JBFqnCBsd6RMkjVDRZzb", - "SOYHLrjzK2X1ezoPC6cr", - "N2lVS1w4EtoT3dr4eOWO", - "S9EGwlCtMF7VXtENq79v", - "VhxAIIZM8IRmnl5fyeyk", - "hpp4J3VqNfWAUOO0d1Us", - "EXAVITQu4vr4xnSDxMaL", - "pFZP5JQG7iQjIQuC4Bku", - "SAz9YHcvj6GT2YYXdXww", - "Xb7hH8MSUJpSbSDYk0k2", - "XrExE9yKIg1WjnnlVkGX", - "onwK4e9ZLuTAKqWW03F9", - "pqHfZKP75CvOlQylNhV4", - "CwhRBWXzGAHq8TQ4Fs17", - "cjVigY5qzO86Huf0OWal", - "iP95p4xoKVk53GoZ742B" -]
2 tool updates
- Changed
generation_faceless_create1 field changed- changed
Input schema / properties / videoModel / enumPrevious value: -[ - "seedance-2.5-edit", - "kling-o3-standard-edit", - "kling-o3-pro-edit", - "kling-v3-standard-motion-control", - "kling-v3-pro-motion-control", - "wan-2.2-animate-replace", - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "wan-3.0", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine", - "grok-imagine-lite", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast" -]New value: +[ + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "wan-3.0", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine-lite", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast" +]
- Changed
generation_video_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "seedance-2.5-edit", - "kling-o3-standard-edit", - "kling-o3-pro-edit", - "kling-v3-standard-motion-control", - "kling-v3-pro-motion-control", - "wan-2.2-animate-replace", - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "minimax-h3-max-t2v", - "luma-ray-3.2-t2v", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "wan-3.0", - "wan-3.0-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine", - "grok-imagine-lite", - "grok-imagine-t2v", - "grok-imagine-lite-t2v", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.5-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v", - "ltx-2.3-t2v", - "ltx-2.3-fast-t2v" -]New value: +[ + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "minimax-h3-max-t2v", + "luma-ray-3.2-t2v", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "wan-3.0", + "wan-3.0-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine-lite", + "grok-imagine-lite-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v", + "ltx-2.3-t2v", + "ltx-2.3-fast-t2v" +]
34 tool updates
- Changed
carousels_apply_brand5 fields changed- added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_apply_template5 fields changed- added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_apply_theme5 fields changed- added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_clone5 fields changed- added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_compile3 fields changed- added
Input schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Input schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Input schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_delete_template5 fields changed- added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_delete_theme5 fields changed- added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_expand_recipe3 fields changed- added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_get5 fields changed- added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_migrate5 fields changed- added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_patch_slide18 fields changed- added
Input schema / properties / creativeArtifactIdAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Input schema / properties / cropAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Input schema / properties / expectedRevisionAdded value: +{ + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +} - changed
Input schema / requiredPrevious value: -[ - "idempotencyKey", - "projectId", - "slideIndex" -]New value: +[ + "idempotencyKey", + "projectId", + "expectedRevision", + "slideIndex" +] - added
Output schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / mutationReceipt / properties / id / formatAdded value: +"uuid" - added
Output schema / properties / mutationReceipt / properties / id / patternAdded value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - changed
Output schema / properties / mutationReceipt / properties / id / typePrevious value: -[ - "string", - "null" -]New value: +"string" - changed
Output schema / properties / mutationReceipt / properties / key / typePrevious value: -[ - "string", - "null" -]New value: +"string" - added
Output schema / properties / mutationReceipt / properties / status / constAdded value: +"completed" - removed
Output schema / properties / mutationReceipt / properties / status / enumRemoved value: -[ - "completed" -] - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +] - added
Output schema / properties / txidAdded value: +{ + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] +} - added
Output schema / requiredAdded value: +[ + "project_id", + "revision", + "name", + "platform", + "locale", + "frame", + "style", + "slides", + "templates", + "can_undo", + "warnings", + "next_actions", + "txid", + "mutationReceipt" +]
- Changed
carousels_preview2 fields changed- added
Input schema / properties / idempotencyKeyAdded value: +{ + "anyOf": [ + { + "maxLength": 200, + "minLength": 8, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - changed
Input schema / requiredPrevious value: -[ - "projectId", - "chrome" -]New value: +[ + "idempotencyKey", + "projectId", + "chrome" +]
- Changed
carousels_save_template5 fields changed- added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_save_theme5 fields changed- added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +]
- Changed
carousels_slides_insert14 fields changed- added
Output schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / mutationReceipt / properties / id / formatAdded value: +"uuid" - added
Output schema / properties / mutationReceipt / properties / id / patternAdded value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - changed
Output schema / properties / mutationReceipt / properties / id / typePrevious value: -[ - "string", - "null" -]New value: +"string" - changed
Output schema / properties / mutationReceipt / properties / key / typePrevious value: -[ - "string", - "null" -]New value: +"string" - added
Output schema / properties / mutationReceipt / properties / status / constAdded value: +"completed" - removed
Output schema / properties / mutationReceipt / properties / status / enumRemoved value: -[ - "completed" -] - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +] - added
Output schema / properties / txidAdded value: +{ + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] +} - added
Output schema / requiredAdded value: +[ + "project_id", + "revision", + "name", + "platform", + "locale", + "frame", + "style", + "slides", + "templates", + "can_undo", + "warnings", + "next_actions", + "txid", + "mutationReceipt" +]
- Changed
carousels_slides_remove14 fields changed- added
Output schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / mutationReceipt / properties / id / formatAdded value: +"uuid" - added
Output schema / properties / mutationReceipt / properties / id / patternAdded value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - changed
Output schema / properties / mutationReceipt / properties / id / typePrevious value: -[ - "string", - "null" -]New value: +"string" - changed
Output schema / properties / mutationReceipt / properties / key / typePrevious value: -[ - "string", - "null" -]New value: +"string" - added
Output schema / properties / mutationReceipt / properties / status / constAdded value: +"completed" - removed
Output schema / properties / mutationReceipt / properties / status / enumRemoved value: -[ - "completed" -] - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +] - added
Output schema / properties / txidAdded value: +{ + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] +} - added
Output schema / requiredAdded value: +[ + "project_id", + "revision", + "name", + "platform", + "locale", + "frame", + "style", + "slides", + "templates", + "can_undo", + "warnings", + "next_actions", + "txid", + "mutationReceipt" +]
- Changed
carousels_slides_reorder14 fields changed- added
Output schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / mutationReceipt / properties / id / formatAdded value: +"uuid" - added
Output schema / properties / mutationReceipt / properties / id / patternAdded value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - changed
Output schema / properties / mutationReceipt / properties / id / typePrevious value: -[ - "string", - "null" -]New value: +"string" - changed
Output schema / properties / mutationReceipt / properties / key / typePrevious value: -[ - "string", - "null" -]New value: +"string" - added
Output schema / properties / mutationReceipt / properties / status / constAdded value: +"completed" - removed
Output schema / properties / mutationReceipt / properties / status / enumRemoved value: -[ - "completed" -] - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +] - added
Output schema / properties / txidAdded value: +{ + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] +} - added
Output schema / requiredAdded value: +[ + "project_id", + "revision", + "name", + "platform", + "locale", + "frame", + "style", + "slides", + "templates", + "can_undo", + "warnings", + "next_actions", + "txid", + "mutationReceipt" +]
- Changed
carousels_slides_undo14 fields changed- added
Output schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / font_facesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "family": { + "maxLength": 160, + "minLength": 1, + "type": "string" + }, + "src": { + "maxLength": 4000, + "minLength": 1, + "type": "string" + }, + "style": { + "enum": [ + "normal", + "italic", + "oblique" + ], + "type": "string" + }, + "unicodeRange": { + "maxLength": 8000, + "type": "string" + }, + "weight": { + "maxLength": 32, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "family", + "src", + "weight", + "style", + "unicodeRange" + ], + "type": "object" + }, + "maxItems": 256, + "type": "array" +} - added
Output schema / properties / mutationReceipt / properties / id / formatAdded value: +"uuid" - added
Output schema / properties / mutationReceipt / properties / id / patternAdded value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - changed
Output schema / properties / mutationReceipt / properties / id / typePrevious value: -[ - "string", - "null" -]New value: +"string" - changed
Output schema / properties / mutationReceipt / properties / key / typePrevious value: -[ - "string", - "null" -]New value: +"string" - added
Output schema / properties / mutationReceipt / properties / status / constAdded value: +"completed" - removed
Output schema / properties / mutationReceipt / properties / status / enumRemoved value: -[ - "completed" -] - added
Output schema / properties / slides / items / properties / visual / properties / creative_artifact_idAdded value: +{ + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Output schema / properties / slides / items / properties / visual / properties / creative_sourceAdded value: +{ + "additionalProperties": false, + "properties": { + "artifact_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "composition_id": { + "minLength": 1, + "type": "string" + }, + "controls": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "maxLength": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "maxLength" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "color", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "type": { + "const": "media", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "label": { + "maxLength": 120, + "minLength": 1, + "type": "string" + }, + "max": { + "maximum": 10800, + "type": "number" + }, + "min": { + "minimum": 0, + "type": "number" + }, + "step": { + "exclusiveMinimum": 0, + "type": "number" + }, + "type": { + "const": "timing", + "type": "string" + } + }, + "required": [ + "key", + "label", + "type", + "min", + "max", + "step" + ], + "type": "object" + } + ] + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "file": { + "format": "ends_with", + "maxLength": 180, + "minLength": 1, + "pattern": ".*\\.json$", + "type": "string" + } + }, + "required": [ + "file", + "fields" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fps": { + "exclusiveMinimum": 0, + "type": "number" + }, + "frame": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "height": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "media_asset_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "project_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "runtime_identity": { + "minLength": 1, + "type": "string" + }, + "source_hash": { + "pattern": "^[a-f0-9]{64}$", + "type": "string" + }, + "source_revision": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "source_revision_id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "values": { + "additionalProperties": { + "anyOf": [ + { + "maxLength": 10000, + "type": "string" + }, + { + "type": "number" + } + ] + }, + "propertyNames": { + "maxLength": 80, + "minLength": 1, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "type": "string" + }, + "type": "object" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + } + }, + "required": [ + "artifact_id", + "project_id", + "source_revision_id", + "source_revision", + "source_hash", + "runtime_identity", + "composition_id", + "frame", + "width", + "height", + "fps", + "frame_hash", + "media_asset_id", + "controls", + "values" + ], + "type": "object" +} - added
Output schema / properties / slides / items / properties / visual / properties / cropAdded value: +{ + "additionalProperties": false, + "properties": { + "height": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + }, + "left": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "top": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "width": { + "exclusiveMinimum": 0, + "maximum": 1, + "type": "number" + } + }, + "required": [ + "left", + "top", + "width", + "height" + ], + "type": "object" +} - changed
Output schema / properties / slides / items / properties / visual / properties / kind / enumPrevious value: -[ - "media_asset", - "generate", - "solid", - "gradient", - "html", - "template" -]New value: +[ + "creative_source", + "media_asset", + "generate", + "solid", + "gradient", + "html", + "template" +] - added
Output schema / properties / txidAdded value: +{ + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] +} - added
Output schema / requiredAdded value: +[ + "project_id", + "revision", + "name", + "platform", + "locale", + "frame", + "style", + "slides", + "templates", + "can_undo", + "warnings", + "next_actions", + "txid", + "mutationReceipt" +]
- Changed
content_performance_list3 fields changed- added
Input schema / properties / connectionIdsAdded value: +{ + "anyOf": [ + { + "items": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null +} - added
Input schema / properties / formatAdded value: +{ + "default": "all", + "enum": [ + "all", + "video", + "image", + "carousel" + ], + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "workspaceId", - "platform", - "range", - "limit", - "offset", - "search" -]New value: +[ + "workspaceId", + "platform", + "format", + "connectionIds", + "range", + "limit", + "offset", + "search" +]
- Added
customer_link_apply - Added
customer_measurements_list - Added
customer_outcome_apply - Changed
exports_start3 fields changed- added
Input schema / properties / expectedRevisionAdded value: +{ + "description": "Reject export if the Project changed since this revision was read.", + "minimum": 0, + "type": "integer" +} - changed
Input schema / properties / format / descriptionPrevious value: -"Export container format"New value: +"Video container or native carousel image ZIP format" - changed
Input schema / properties / format / enumPrevious value: -[ - "mp4", - "mov", - "fcpxml" -]New value: +[ + "mp4", + "mov", + "fcpxml", + "zip", + "png", + "jpeg", + "carousel_zip" +]
- Changed
generation_jobs_cancel4 fields changed- added
Output schema / properties / job / properties / audio_recoveryAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attempt": { + "maximum": 16, + "minimum": 0, + "type": "integer" + }, + "mode": { + "const": "saved_audio_only", + "type": "string" + } + }, + "required": [ + "attempt", + "mode" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / job / properties / content_directionAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "current": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "brandContentHash": { + "type": "string" + }, + "brandRevision": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "seriesContentHash": { + "type": [ + "string", + "null" + ] + }, + "seriesRevision": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "brandRevision", + "brandContentHash", + "seriesRevision", + "seriesContentHash" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "snapshot": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "brand": { + "additionalProperties": false, + "properties": { + "contentHash": { + "type": "string" + }, + "documentId": { + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "markdown": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "title": { + "maxLength": 240, + "type": "string" + }, + "url": { + "format": "uri", + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "url", + "title" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "required": [ + "title", + "sources", + "path", + "documentId", + "revision", + "markdown", + "contentHash" + ], + "type": "object" + }, + "capturedAt": { + "type": "string" + }, + "scope": { + "additionalProperties": false, + "properties": { + "kind": { + "enum": [ + "brand", + "series" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "seriesId": { + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "kind", + "seriesId", + "name" + ], + "type": "object" + }, + "series": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "contentHash": { + "type": "string" + }, + "documentId": { + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "markdown": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "title": { + "maxLength": 240, + "type": "string" + }, + "url": { + "format": "uri", + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "url", + "title" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "required": [ + "title", + "sources", + "path", + "documentId", + "revision", + "markdown", + "contentHash" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "capturedAt", + "scope", + "brand", + "series" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "current", + "changed", + "unavailable", + "unrecorded" + ], + "type": "string" + } + }, + "required": [ + "snapshot", + "status", + "current" + ], + "type": "object" +} - added
Output schema / properties / job / properties / recoveryAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "enum": [ + "review_prompt", + "choose_model", + "request_review" + ], + "type": "string" + }, + "type": "array" + }, + "alternatives": { + "items": { + "additionalProperties": false, + "properties": { + "acceptance": { + "const": "unverified", + "type": "string" + }, + "aspectRatio": { + "type": "string" + }, + "estimatedCredits": { + "type": "number" + }, + "generateAudio": { + "type": "boolean" + }, + "label": { + "type": "string" + }, + "model": { + "type": "string" + }, + "outputResolution": { + "type": [ + "string", + "null" + ] + }, + "requiresAssembly": { + "type": "boolean" + }, + "resolution": { + "type": [ + "string", + "null" + ] + }, + "segments": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "model", + "label", + "segments", + "estimatedCredits", + "resolution", + "outputResolution", + "aspectRatio", + "generateAudio", + "requiresAssembly", + "acceptance" + ], + "type": "object" + }, + "type": "array" + }, + "credits": { + "additionalProperties": false, + "properties": { + "charged": { + "type": [ + "number", + "null" + ] + }, + "net": { + "type": [ + "number", + "null" + ] + }, + "refunded": { + "type": [ + "number", + "null" + ] + }, + "status": { + "enum": [ + "not_charged", + "charged", + "refunded", + "pending", + "unknown" + ], + "type": "string" + } + }, + "required": [ + "status", + "charged", + "refunded", + "net" + ], + "type": "object" + }, + "failure": { + "additionalProperties": false, + "properties": { + "category": { + "enum": [ + "copyright", + "content_policy", + "reference", + "invalid_input", + "temporary", + "unknown" + ], + "type": "string" + }, + "message": { + "type": "string" + }, + "model": { + "type": [ + "string", + "null" + ] + }, + "provider": { + "type": [ + "string", + "null" + ] + }, + "retryable": { + "type": "boolean" + }, + "stage": { + "enum": [ + "input", + "output", + "unknown" + ], + "type": "string" + } + }, + "required": [ + "category", + "message", + "stage", + "retryable", + "model", + "provider" + ], + "type": "object" + }, + "history": { + "additionalProperties": false, + "properties": { + "authoredPrompt": { + "type": [ + "string", + "null" + ] + }, + "enhancementApplied": { + "type": "boolean" + }, + "originalRequest": { + "type": [ + "string", + "null" + ] + }, + "previews": { + "items": { + "additionalProperties": false, + "properties": { + "after": { + "type": "string" + }, + "approach": { + "enum": [ + "clarify", + "original_character" + ], + "type": "string" + }, + "before": { + "type": "string" + }, + "createdAt": { + "type": "string" + } + }, + "required": [ + "before", + "after", + "approach", + "createdAt" + ], + "type": "object" + }, + "type": "array" + }, + "previousJobId": { + "type": [ + "string", + "null" + ] + }, + "providerRequests": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "id", + "provider", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "references": { + "items": { + "type": "string" + }, + "type": "array" + }, + "settings": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "submittedPrompt": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "originalRequest", + "authoredPrompt", + "submittedPrompt", + "enhancementApplied", + "previousJobId", + "previews", + "settings", + "references", + "providerRequests" + ], + "type": "object" + }, + "jobId": { + "type": [ + "string", + "null" + ] + }, + "reviewUrl": { + "type": "string" + }, + "runId": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "jobId", + "runId", + "failure", + "credits", + "history", + "alternatives", + "actions", + "reviewUrl" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / job / requiredPrevious value: -[ - "job_id", - "kind", - "status", - "progress" -]New value: +[ + "job_id", + "kind", + "status", + "progress", + "content_direction" +]
- Changed
generation_jobs_get4 fields changed- added
Output schema / properties / job / properties / audio_recoveryAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attempt": { + "maximum": 16, + "minimum": 0, + "type": "integer" + }, + "mode": { + "const": "saved_audio_only", + "type": "string" + } + }, + "required": [ + "attempt", + "mode" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / job / properties / content_directionAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "current": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "brandContentHash": { + "type": "string" + }, + "brandRevision": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "seriesContentHash": { + "type": [ + "string", + "null" + ] + }, + "seriesRevision": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "brandRevision", + "brandContentHash", + "seriesRevision", + "seriesContentHash" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "snapshot": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "brand": { + "additionalProperties": false, + "properties": { + "contentHash": { + "type": "string" + }, + "documentId": { + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "markdown": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "title": { + "maxLength": 240, + "type": "string" + }, + "url": { + "format": "uri", + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "url", + "title" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "required": [ + "title", + "sources", + "path", + "documentId", + "revision", + "markdown", + "contentHash" + ], + "type": "object" + }, + "capturedAt": { + "type": "string" + }, + "scope": { + "additionalProperties": false, + "properties": { + "kind": { + "enum": [ + "brand", + "series" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "seriesId": { + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "kind", + "seriesId", + "name" + ], + "type": "object" + }, + "series": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "contentHash": { + "type": "string" + }, + "documentId": { + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "markdown": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "title": { + "maxLength": 240, + "type": "string" + }, + "url": { + "format": "uri", + "maxLength": 2048, + "type": "string" + } + }, + "required": [ + "url", + "title" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + } + }, + "required": [ + "title", + "sources", + "path", + "documentId", + "revision", + "markdown", + "contentHash" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "capturedAt", + "scope", + "brand", + "series" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "current", + "changed", + "unavailable", + "unrecorded" + ], + "type": "string" + } + }, + "required": [ + "snapshot", + "status", + "current" + ], + "type": "object" +} - added
Output schema / properties / job / properties / recoveryAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "enum": [ + "review_prompt", + "choose_model", + "request_review" + ], + "type": "string" + }, + "type": "array" + }, + "alternatives": { + "items": { + "additionalProperties": false, + "properties": { + "acceptance": { + "const": "unverified", + "type": "string" + }, + "aspectRatio": { + "type": "string" + }, + "estimatedCredits": { + "type": "number" + }, + "generateAudio": { + "type": "boolean" + }, + "label": { + "type": "string" + }, + "model": { + "type": "string" + }, + "outputResolution": { + "type": [ + "string", + "null" + ] + }, + "requiresAssembly": { + "type": "boolean" + }, + "resolution": { + "type": [ + "string", + "null" + ] + }, + "segments": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "model", + "label", + "segments", + "estimatedCredits", + "resolution", + "outputResolution", + "aspectRatio", + "generateAudio", + "requiresAssembly", + "acceptance" + ], + "type": "object" + }, + "type": "array" + }, + "credits": { + "additionalProperties": false, + "properties": { + "charged": { + "type": [ + "number", + "null" + ] + }, + "net": { + "type": [ + "number", + "null" + ] + }, + "refunded": { + "type": [ + "number", + "null" + ] + }, + "status": { + "enum": [ + "not_charged", + "charged", + "refunded", + "pending", + "unknown" + ], + "type": "string" + } + }, + "required": [ + "status", + "charged", + "refunded", + "net" + ], + "type": "object" + }, + "failure": { + "additionalProperties": false, + "properties": { + "category": { + "enum": [ + "copyright", + "content_policy", + "reference", + "invalid_input", + "temporary", + "unknown" + ], + "type": "string" + }, + "message": { + "type": "string" + }, + "model": { + "type": [ + "string", + "null" + ] + }, + "provider": { + "type": [ + "string", + "null" + ] + }, + "retryable": { + "type": "boolean" + }, + "stage": { + "enum": [ + "input", + "output", + "unknown" + ], + "type": "string" + } + }, + "required": [ + "category", + "message", + "stage", + "retryable", + "model", + "provider" + ], + "type": "object" + }, + "history": { + "additionalProperties": false, + "properties": { + "authoredPrompt": { + "type": [ + "string", + "null" + ] + }, + "enhancementApplied": { + "type": "boolean" + }, + "originalRequest": { + "type": [ + "string", + "null" + ] + }, + "previews": { + "items": { + "additionalProperties": false, + "properties": { + "after": { + "type": "string" + }, + "approach": { + "enum": [ + "clarify", + "original_character" + ], + "type": "string" + }, + "before": { + "type": "string" + }, + "createdAt": { + "type": "string" + } + }, + "required": [ + "before", + "after", + "approach", + "createdAt" + ], + "type": "object" + }, + "type": "array" + }, + "previousJobId": { + "type": [ + "string", + "null" + ] + }, + "providerRequests": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "id", + "provider", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "references": { + "items": { + "type": "string" + }, + "type": "array" + }, + "settings": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "submittedPrompt": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "originalRequest", + "authoredPrompt", + "submittedPrompt", + "enhancementApplied", + "previousJobId", + "previews", + "settings", + "references", + "providerRequests" + ], + "type": "object" + }, + "jobId": { + "type": [ + "string", + "null" + ] + }, + "reviewUrl": { + "type": "string" + }, + "runId": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "jobId", + "runId", + "failure", + "credits", + "history", + "alternatives", + "actions", + "reviewUrl" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / job / requiredPrevious value: -[ - "job_id", - "kind", - "status", - "progress" -]New value: +[ + "job_id", + "kind", + "status", + "progress", + "content_direction" +]
- Changed
generation_video_create1 field changed- added
Input schema / properties / provenanceAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "originalRequest": { + "anyOf": [ + { + "maxLength": 40000, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "previousJobId": { + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "originalRequest", + "previousJobId" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Original user request before prompt authoring, and previous failed job ID when retrying. Retained for review; never infer missing wording." +}
- Added
learning_control - Added
learning_get - Added
learning_quote - Added
learning_start - Changed
media_import_url5 fields changed- added
Input schema / properties / autoDescribeAfterTranscribeAdded value: +{ + "default": false, + "type": "boolean" +} - added
Input schema / properties / autoProcessEnabledAdded value: +{ + "default": true, + "description": "Enable media analysis after upload.", + "type": "boolean" +} - added
Input schema / properties / autoSuggestShortsAdded value: +{ + "default": true, + "type": "boolean" +} - added
Input schema / properties / autoTranscribeAdded value: +{ + "default": true, + "description": "Request transcription for video uploads.", + "type": "boolean" +} - changed
Input schema / properties / contentHashSha256 / descriptionPrevious value: -"Optional SHA-256 hex hash of file bytes for dedupe optimization. 64-character hex string."New value: +"Optional expected SHA-256; mismatching bytes are rejected before deduplication. 64-character hex string."
- Added
media_narration_get - Changed
media_upload_finish5 fields changed- added
Input schema / properties / autoDescribeAfterTranscribeAdded value: +{ + "default": false, + "type": "boolean" +} - added
Input schema / properties / autoProcessEnabledAdded value: +{ + "default": true, + "description": "Enable media analysis after upload.", + "type": "boolean" +} - added
Input schema / properties / autoSuggestShortsAdded value: +{ + "default": true, + "type": "boolean" +} - added
Input schema / properties / autoTranscribeAdded value: +{ + "default": true, + "description": "Request transcription for video uploads.", + "type": "boolean" +} - changed
Input schema / properties / contentHashSha256 / descriptionPrevious value: -"Optional SHA-256 hex hash of file bytes for dedupe optimization. 64-character hex string."New value: +"Optional expected SHA-256; mismatching bytes are rejected before deduplication. 64-character hex string."
- Changed
media_upload_start1 field changed- changed
Input schema / properties / contentType / descriptionPrevious value: -"MIME type (e.g., video/mp4, audio/mp3, image/jpeg)"New value: +"MIME type (e.g., video/mp4, audio/mp3, image/jpeg, font/woff2, image/svg+xml, application/json)"
27 tool updates
- Added
carousels_apply_brand - Added
carousels_apply_template - Added
carousels_apply_theme - Added
carousels_delete_template - Added
carousels_delete_theme - Removed
carousels_kit - Removed
carousels_patch_document - Added
carousels_save_template - Added
carousels_save_theme - Added
carousels_slides_insert - Added
carousels_slides_remove - Added
carousels_slides_reorder - Added
carousels_slides_undo - Added
clips_delivery_promote - Removed
clips_manage - Removed
timeline_edit_apply - Removed
timeline_edit_preview - Added
timeline_split_apply - Added
timeline_split_preview - Added
timeline_trim_apply - Added
timeline_trim_preview - Removed
workflow_runs_create - Removed
workflow_runs_execute_step - Removed
workflow_runs_get - Removed
workflows_get - Removed
workflows_import - Removed
workflows_list
3 tool updates
- Changed
generation_faceless_create1 field changed- changed
Input schema / properties / videoModel / enumPrevious value: -[ - "seedance-2.5-edit", - "kling-o3-standard-edit", - "kling-o3-pro-edit", - "kling-v3-standard-motion-control", - "kling-v3-pro-motion-control", - "wan-2.2-animate-replace", - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "wan-3.0", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast" -]New value: +[ + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "wan-3.0", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine", + "grok-imagine-lite", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast" +]
- Changed
generation_image_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "fal-ai/gpt-image-1", - "fal-ai/gpt-image-1.5", - "fal-ai/gpt-image-2", - "fal-ai/gpt-image-2.5-flare", - "fal-ai/gpt-image-2.5-sunburst", - "xai/grok-imagine-image-2.0", - "fal-ai/bytedance/seedream/v5/lite/text-to-image", - "bytedance/seedream/v5/pro/text-to-image", - "fal-ai/krea-2/turbo", - "fal-ai/krea/v2/medium/turbo/text-to-image", - "fal-ai/krea/v2/medium/text-to-image", - "fal-ai/nano-banana-2", - "google/nano-banana-2.1", - "google/nano-banana-2-lite", - "fal-ai/nano-banana-pro" -]New value: +[ + "fal-ai/gpt-image-1", + "fal-ai/gpt-image-1.5", + "fal-ai/gpt-image-2", + "fal-ai/gpt-image-2.5-flare", + "fal-ai/gpt-image-2.5-sunburst", + "xai/grok-imagine-image-2.0", + "bfl/flux-3-image", + "fal-ai/bytedance/seedream/v5/lite/text-to-image", + "bytedance/seedream/v5/pro/text-to-image", + "fal-ai/krea-2/turbo", + "fal-ai/krea/v2/medium/turbo/text-to-image", + "fal-ai/krea/v2/medium/text-to-image", + "fal-ai/nano-banana-2", + "google/nano-banana-2.1", + "google/nano-banana-2-lite", + "fal-ai/nano-banana-pro" +]
- Changed
generation_video_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "seedance-2.5-edit", - "kling-o3-standard-edit", - "kling-o3-pro-edit", - "kling-v3-standard-motion-control", - "kling-v3-pro-motion-control", - "wan-2.2-animate-replace", - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "minimax-h3-max-t2v", - "luma-ray-3.2-t2v", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "wan-3.0", - "wan-3.0-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine", - "grok-imagine-t2v", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.5-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v", - "ltx-2.3-t2v", - "ltx-2.3-fast-t2v" -]New value: +[ + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "minimax-h3-max-t2v", + "luma-ray-3.2-t2v", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "wan-3.0", + "wan-3.0-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine", + "grok-imagine-lite", + "grok-imagine-t2v", + "grok-imagine-lite-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v", + "ltx-2.3-t2v", + "ltx-2.3-fast-t2v" +]
2 tool updates
- Changed
generation_image_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "fal-ai/gpt-image-1", - "fal-ai/gpt-image-1.5", - "fal-ai/gpt-image-2", - "fal-ai/gpt-image-2.5-flare", - "fal-ai/gpt-image-2.5-sunburst", - "xai/grok-imagine-image-2.0", - "fal-ai/bytedance/seedream/v5/lite/text-to-image", - "bytedance/seedream/v5/pro/text-to-image", - "fal-ai/krea-2/turbo", - "fal-ai/krea/v2/medium/turbo/text-to-image", - "fal-ai/krea/v2/medium/text-to-image", - "fal-ai/nano-banana-2", - "google/nano-banana-2-lite", - "fal-ai/nano-banana-pro" -]New value: +[ + "fal-ai/gpt-image-1", + "fal-ai/gpt-image-1.5", + "fal-ai/gpt-image-2", + "fal-ai/gpt-image-2.5-flare", + "fal-ai/gpt-image-2.5-sunburst", + "xai/grok-imagine-image-2.0", + "fal-ai/bytedance/seedream/v5/lite/text-to-image", + "bytedance/seedream/v5/pro/text-to-image", + "fal-ai/krea-2/turbo", + "fal-ai/krea/v2/medium/turbo/text-to-image", + "fal-ai/krea/v2/medium/text-to-image", + "fal-ai/nano-banana-2", + "google/nano-banana-2.1", + "google/nano-banana-2-lite", + "fal-ai/nano-banana-pro" +]
- Changed
generation_video_create1 field changed- changed
Input schema / properties / resolution / anyOfPrevious value: -[ - { - "enum": [ - "480p", - "720p", - "768p", - "1080p", - "4k" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "360p", + "480p", + "720p", + "768p", + "1080p", + "4k" + ], + "type": "string" + }, + { + "type": "null" + } +]
5 tool updates
- Added
publishing_accounts_list - Added
publishing_connections_list - Added
publishing_instagram_schedule - Added
publishing_post_get - Added
publishing_video_schedule
49 tool updates
- Added
captions_look_apply - Added
captions_source_prepare - Added
captions_words_correct - Added
captions_words_list - Added
clip_share_get - Added
clip_share_publish - Added
clip_share_unpublish - Added
clip_share_visibility_set - Added
clips_candidates_list - Changed
clips_create10 fields changed- changed
Input schema / properties / captionThemeId / descriptionPrevious value: -"Saved theme UUID or built-in caption look. Omitted inherits Series defaults; null uses workspace captions. UUID string."New value: +"Saved theme UUID or built-in caption look. Omitted inherits Series defaults; null uses workspace captions." - removed
Input schema / properties / captionThemeId / formatRemoved value: -"uuid" - added
Input schema / properties / clipCountAdded value: +{ + "description": "Maximum clips requested. Available source moments and account limits can yield fewer.", + "maximum": 50, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / durationBoundsAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "maxSeconds": { + "maximum": 180, + "minimum": 1, + "type": [ + "number", + "null" + ] + }, + "minSeconds": { + "maximum": 180, + "minimum": 1, + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "minSeconds", + "maxSeconds" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Requested clip duration bounds. Selection preserves complete moments; minimum cannot exceed maximum." +} - added
Input schema / properties / selectedAudioLanguageAdded value: +{ + "description": "Audio language track for a social-video URL, using the language reported by media_import_inspect. Null uses source default. Existing assets and direct files preserve source audio.", + "maxLength": 40, + "minLength": 2, + "type": "string" +} - added
Input schema / properties / selectionAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "excludeIds": { + "items": { + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "includeIds": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "includeIds", + "excludeIds" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Existing asset only: reviewed candidate IDs to include in order or exclude. Resolve IDs with clips_candidates_list first. Null delegates selection." +} - removed
Output schema / properties / batch / properties / polling / properties / suggestedTool / constRemoved value: -"clips_get" - added
Output schema / properties / batch / properties / polling / properties / suggestedTool / enumAdded value: +[ + "clips_get", + "clips_status_get" +] - removed
Output schema / properties / result / properties / batch / properties / polling / properties / suggestedTool / constRemoved value: -"clips_get" - added
Output schema / properties / result / properties / batch / properties / polling / properties / suggestedTool / enumAdded value: +[ + "clips_get", + "clips_status_get" +]
- Added
clips_export - Changed
clips_get2 fields changed- removed
Output schema / properties / batch / properties / polling / properties / suggestedTool / constRemoved value: -"clips_get" - added
Output schema / properties / batch / properties / polling / properties / suggestedTool / enumAdded value: +[ + "clips_get", + "clips_status_get" +]
- Added
clips_inspect - Added
clips_list - Added
clips_recover - Added
clips_repair - Added
clips_reselect - Added
clips_status_get - Added
content_performance_list - Added
editor_asset_replace - Added
editor_assets_insert - Added
editor_audio_set - Added
editor_crop_set - Added
editor_edit_undo - Added
editor_history_list - Added
editor_items_move - Added
editor_items_remove - Added
editor_snapshot_get - Added
editor_text_set - Added
exports_caption_track_get - Changed
projects_list1 field changed- changed
Output schema / properties / projects / items / properties / status / enumPrevious value: -[ - "ready", - "exporting", - "needs_captions", - "processing" -]New value: +[ + "ready", + "exporting", + "needs_captions", + "processing", + "failed" +]
- Added
recording_sets_clips_create - Added
recording_sets_create - Added
recording_sets_finalize - Added
recording_sets_get - Added
recording_sets_list - Added
recording_sets_track_attach - Added
video_assets_approve - Added
video_feedback_save - Added
video_storyboard_approve - Added
video_storyboard_asset_regenerate - Added
video_storyboard_create - Added
video_storyboard_get - Added
video_storyboard_revise - Added
workspace_brand_scan - Added
workspace_brand_scan_get - Added
workspace_context_get - Added
workspace_context_save - Added
workspaces_list
2 tool updates
- Changed
generation_faceless_create1 field changed- changed
Input schema / properties / videoModel / enumPrevious value: -[ - "seedance-2.5-edit", - "kling-o3-standard-edit", - "kling-o3-pro-edit", - "kling-v3-standard-motion-control", - "kling-v3-pro-motion-control", - "wan-2.2-animate-replace", - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "wan-3.0", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast" -]New value: +[ + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "wan-3.0", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast" +]
- Changed
generation_video_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "seedance-2.5-edit", - "kling-o3-standard-edit", - "kling-o3-pro-edit", - "kling-v3-standard-motion-control", - "kling-v3-pro-motion-control", - "wan-2.2-animate-replace", - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "minimax-h3-max-t2v", - "luma-ray-3.2-t2v", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "wan-3.0", - "wan-3.0-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine", - "grok-imagine-t2v", - "sora-2-t2v", - "sora-2-pro-t2v", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.5-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v", - "ltx-2.3-t2v", - "ltx-2.3-fast-t2v" -]New value: +[ + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "minimax-h3-max-t2v", + "luma-ray-3.2-t2v", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "wan-3.0", + "wan-3.0-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine", + "grok-imagine-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v", + "ltx-2.3-t2v", + "ltx-2.3-fast-t2v" +]
3 tool updates
- Changed
clips_create1 field changed- removed
Input schema / properties / confirmRightsToMediaRemoved value: -{ - "default": false, - "description": "Set true only after the user confirms they own the media or have permission to import it. Not needed for an existing BlitzReels asset.", - "type": "boolean" -}
- Changed
media_import_inspect1 field changed- removed
Input schema / properties / confirmRightsToMediaRemoved value: -{ - "default": false, - "description": "Set true only after the user confirms they own the media or have permission to import it.", - "type": "boolean" -}
- Changed
media_import_url1 field changed- removed
Input schema / properties / confirmRightsToMediaRemoved value: -{ - "default": false, - "description": "Set true only after the user confirms they own the media or have permission to import it.", - "type": "boolean" -}
1 tool update
- Added
visuals_apply
2 tool updates
- Changed
clips_get1 field changed- changed
Input schema / properties / batchId / descriptionPrevious value: -"Clip batch ID returned from clips_create. UUID string."New value: +"Clip batch ID. UUID string."
- Changed
media_upload_finish1 field changed- changed
Input schema / properties / storageKey / descriptionPrevious value: -"Storage key returned from media_upload_start"New value: +"Storage key for the uploaded file"
1 tool update
- Changed
generation_video_create2 fields changed- changed
Input schema / properties / model / descriptionPrevious value: -"Video model. Supported durations and text-to-video vs image-to-video differ per model; call generation_options_list first."New value: +"Video model. generation_options_list publishes generation type, source limits, character controls, resolution and pricing for each model." - changed
Input schema / properties / referenceVideoAssetIds / descriptionPrevious value: -"Reference videos: Seedance 2.5 up to 10; Seedance 2.0 ref2v and fast up to 3. See generation_options_list for model-specific support."New value: +"Video transformations require one processed source video. Other reference modes have model-specific counts published by generation_options_list."
3 tool updates
- Changed
generation_faceless_create1 field changed- changed
Input schema / properties / videoModel / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "wan-3.0", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast" -]New value: +[ + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "wan-3.0", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast" +]
- Changed
generation_plan_brief2 fields changed- added
Input schema / properties / rawPromptAdded value: +{ + "description": "Original request. Clone or character-replacement requests select a video transformation brief instead of a new-story plan.", + "maxLength": 5000, + "type": "string" +} - added
Output schema / properties / brief / properties / executionAdded value: +{ + "description": "Source-video operation, model and required assets; null for new-story plans.", + "type": [ + "object", + "null" + ] +}
- Changed
generation_video_create4 fields changed- changed
Input schema / properties / durationSeconds / descriptionPrevious value: -"Choose a value from the selected model's durations_seconds. duration_seconds_min and duration_seconds_max are the bounds of that list, not a continuous range."New value: +"Video transformations inherit the processed source duration and aspect ratio; duration_seconds is not a trim request. Choose a value from the selected model's durations_seconds. duration_seconds_min and duration_seconds_max are the bounds of that list, not a continuous range." - changed
Input schema / properties / model / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "minimax-h3-max-t2v", - "luma-ray-3.2-t2v", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash-ref2v", - "gemini-omni-flash-edit", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "wan-3.0", - "wan-3.0-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine", - "grok-imagine-t2v", - "sora-2-t2v", - "sora-2-pro-t2v", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.5-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v", - "ltx-2.3-t2v", - "ltx-2.3-fast-t2v" -]New value: +[ + "seedance-2.5-edit", + "kling-o3-standard-edit", + "kling-o3-pro-edit", + "kling-v3-standard-motion-control", + "kling-v3-pro-motion-control", + "wan-2.2-animate-replace", + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "minimax-h3-max-t2v", + "luma-ray-3.2-t2v", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "wan-3.0", + "wan-3.0-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine", + "grok-imagine-t2v", + "sora-2-t2v", + "sora-2-pro-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v", + "ltx-2.3-t2v", + "ltx-2.3-fast-t2v" +] - changed
Input schema / properties / referenceVideoAssetIds / descriptionPrevious value: -"Reference videos: Seedance 2.5 up to 10; Seedance 2.0 ref2v and fast up to 3. Other models reject them."New value: +"Reference videos: Seedance 2.5 up to 10; Seedance 2.0 ref2v and fast up to 3. See generation_options_list for model-specific support." - added
Input schema / properties / transformationAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "characterOrientation": { + "default": "video", + "enum": [ + "video", + "image" + ], + "type": "string" + }, + "characters": { + "default": [], + "items": { + "additionalProperties": false, + "properties": { + "frontalAssetId": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "referenceAssetIds": { + "default": [], + "items": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 3, + "type": "array" + }, + "sourceRole": { + "maxLength": 200, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "sourceRole", + "frontalAssetId", + "referenceAssetIds" + ], + "type": "object" + }, + "maxItems": 4, + "type": "array" + }, + "keepOriginalAudio": { + "default": true, + "type": "boolean" + }, + "sourcePersonCount": { + "anyOf": [ + { + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "characters", + "sourcePersonCount", + "keepOriginalAudio", + "characterOrientation" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "default": null +}
12 tool updates
- Changed
add_text_overlay3 fields changed- added
Input schema / properties / kindAdded value: +{ + "default": "title_card", + "description": "title_card is an opening hook. overlay is generic on-video text.", + "enum": [ + "overlay", + "title_card" + ], + "type": "string" +} - added
Input schema / properties / sizeAdded value: +{ + "default": "default", + "description": "Title-card size. Ignored for overlay.", + "enum": [ + "compact", + "default", + "bold" + ], + "type": "string" +} - added
Input schema / properties / themeAdded value: +{ + "default": "classic_white", + "description": "Title-card look. classic_white is black text on a white card. Ignored for overlay.", + "enum": [ + "classic_white", + "legend_white", + "white_black_outline", + "stacked_black_white", + "red_on_black", + "black_on_yellow", + "red_block" + ], + "type": "string" +}
- Added
carousels_clone - Added
carousels_compile - Added
carousels_expand_recipe - Added
carousels_get - Added
carousels_kit - Added
carousels_migrate - Added
carousels_patch_document - Added
carousels_patch_slide - Added
carousels_preview - Changed
series_content4 fields changed- removed
Output schema / properties / items / items / properties / durationSeconds / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / items / items / properties / durationSeconds / typeAdded value: +[ + "number", + "null" +] - removed
Output schema / properties / items / items / properties / thumbnailUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / items / items / properties / thumbnailUrl / typeAdded value: +[ + "string", + "null" +]
- Changed
series_list2 fields changed- removed
Output schema / properties / items / items / properties / coverUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / items / items / properties / coverUrl / typeAdded value: +[ + "string", + "null" +]
4 tool updates
- Changed
generation_faceless_create1 field changed- added
Input schema / properties / styleReferenceAssetIdsAdded value: +{ + "default": [], + "description": "Optional stills that lock rendering medium, palette, lighting and texture. Not used as scene frames.", + "items": { + "format": "uuid", + "type": "string" + }, + "maxItems": 10, + "type": "array" +}
- Changed
generation_video_create3 fields changed- changed
Input schema / properties / durationSeconds / descriptionPrevious value: -"Clip length in seconds (2-30). Must be supported by the chosen model."New value: +"Choose a value from the selected model's durations_seconds. duration_seconds_min and duration_seconds_max are the bounds of that list, not a continuous range." - changed
Input schema / properties / endFrameAssetId / descriptionPrevious value: -"Last frame image. Requires a source first frame and a supported model; reference arrays cannot be combined with end frames."New value: +"Last-frame still. Interpolates from the source first frame to this image across the full duration. Requires a source first frame; cannot combine with reference arrays." - changed
Input schema / properties / sourceAssetId / descriptionPrevious value: -"Source image asset ID. Required by image-to-video models."New value: +"First-frame still. Required only when that model's parameters.source_asset_id.required is true. Optional on reference-capable I2V including Seedance 2.5. Text-to-video rejects it. Cannot combine with reference arrays and end_frame_asset_id."
- Added
media_upscale - Added
media_upscale_estimate
1 tool update
- Changed
add_transition1 field changed- changed
Input schema / properties / preset / enumPrevious value: -[ - "flash", - "whip-left", - "whip-right", - "zoom-punch", - "glitch" -]New value: +[ + "flash", + "film-flash", + "whip-left", + "whip-right", + "zoom-punch", + "glitch" +]
2 tool updates
- Changed
generation_faceless_create2 fields changed- changed
Input schema / properties / plannerModelId / defaultPrevious value: -"anthropic/claude-opus-4-6"New value: +"google/gemini-3.8-flash" - changed
Input schema / properties / videoModel / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash", - "wan-2.7", - "wan-2.7-ref2v", - "wan-3.0", - "happy-horse", - "happy-horse-ref2v", - "pixverse-v6", - "grok-imagine", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-1.5-pro", - "seedance-1.0-pro", - "seedance-1.0-pro-fast", - "seedance-1.0-lite", - "seedance-1.0-lite-ref2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast" -]New value: +[ + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "wan-2.7", + "wan-2.7-ref2v", + "wan-3.0", + "happy-horse", + "happy-horse-ref2v", + "pixverse-v6", + "grok-imagine", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-1.5-pro", + "seedance-1.0-pro", + "seedance-1.0-pro-fast", + "seedance-1.0-lite", + "seedance-1.0-lite-ref2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast" +]
- Changed
generation_video_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "kling-2.1", - "kling-2.6-pro", - "kling-o1", - "kling-3.0", - "kling-o3-standard", - "kling-o3-pro", - "kling-o3-4k", - "kling-v3-pro", - "minimax-01", - "minimax-hailuo-02", - "minimax-hailuo-2.3-pro", - "minimax-h3-max", - "luma-ray-2", - "luma-ray-3.2", - "minimax-hailuo-2.3-pro-t2v", - "minimax-h3-max-t2v", - "luma-ray-3.2-t2v", - "sora-2", - "sora-2-pro", - "veo3", - "veo3.1", - "veo3.1-fast", - "gemini-omni-flash", - "veo3-fast", - "gemini-omni-flash-t2v", - "wan-2.1", - "wan-2.7", - "wan-2.7-ref2v", - "wan-2.7-t2v", - "wan-3.0", - "wan-3.0-t2v", - "happy-horse", - "happy-horse-ref2v", - "happy-horse-t2v", - "pixverse-v6", - "pixverse-v6-t2v", - "krea-wan-14b-t2v", - "grok-imagine", - "grok-imagine-t2v", - "sora-2-t2v", - "sora-2-pro-t2v", - "seedance-2.0-pro", - "seedance-2.5", - "seedance-2.0-pro-fast", - "seedance-2.0-ref2v", - "seedance-2.0-ref2v-fast", - "seedance-2.0-pro-t2v", - "seedance-2.5-t2v", - "seedance-2.0-pro-fast-t2v", - "seedance-1.5-pro", - "seedance-1.5-pro-t2v", - "seedance-1.0-pro", - "seedance-1.0-pro-t2v", - "seedance-1.0-pro-fast", - "seedance-1.0-pro-fast-t2v", - "seedance-1.0-lite", - "seedance-1.0-lite-t2v", - "seedance-1.0-lite-ref2v", - "kling-o3-standard-t2v", - "kling-o3-pro-t2v", - "kling-v3-standard-t2v", - "kling-v3-pro-t2v", - "ltx-2-19b", - "ltx-2-19b-distilled", - "ltx-2.3", - "ltx-2.3-fast", - "ltx-2-19b-t2v", - "ltx-2-19b-distilled-t2v", - "ltx-2.3-t2v", - "ltx-2.3-fast-t2v" -]New value: +[ + "kling-2.1", + "kling-2.6-pro", + "kling-o1", + "kling-3.0", + "kling-o3-standard", + "kling-o3-pro", + "kling-o3-4k", + "kling-v3-pro", + "minimax-01", + "minimax-hailuo-02", + "minimax-hailuo-2.3-pro", + "minimax-h3-max", + "luma-ray-2", + "luma-ray-3.2", + "minimax-hailuo-2.3-pro-t2v", + "minimax-h3-max-t2v", + "luma-ray-3.2-t2v", + "sora-2", + "sora-2-pro", + "veo3", + "veo3.1", + "veo3.1-fast", + "gemini-omni-flash-ref2v", + "gemini-omni-flash-edit", + "gemini-omni-flash", + "veo3-fast", + "gemini-omni-flash-t2v", + "wan-2.1", + "wan-2.7", + "wan-2.7-ref2v", + "wan-2.7-t2v", + "wan-3.0", + "wan-3.0-t2v", + "happy-horse", + "happy-horse-ref2v", + "happy-horse-t2v", + "pixverse-v6", + "pixverse-v6-t2v", + "krea-wan-14b-t2v", + "grok-imagine", + "grok-imagine-t2v", + "sora-2-t2v", + "sora-2-pro-t2v", + "seedance-2.0-pro", + "seedance-2.5", + "seedance-2.0-pro-fast", + "seedance-2.0-ref2v", + "seedance-2.0-ref2v-fast", + "seedance-2.0-pro-t2v", + "seedance-2.5-t2v", + "seedance-2.0-pro-fast-t2v", + "seedance-1.5-pro", + "seedance-1.5-pro-t2v", + "seedance-1.0-pro", + "seedance-1.0-pro-t2v", + "seedance-1.0-pro-fast", + "seedance-1.0-pro-fast-t2v", + "seedance-1.0-lite", + "seedance-1.0-lite-t2v", + "seedance-1.0-lite-ref2v", + "kling-o3-standard-t2v", + "kling-o3-pro-t2v", + "kling-v3-standard-t2v", + "kling-v3-pro-t2v", + "ltx-2-19b", + "ltx-2-19b-distilled", + "ltx-2.3", + "ltx-2.3-fast", + "ltx-2-19b-t2v", + "ltx-2-19b-distilled-t2v", + "ltx-2.3-t2v", + "ltx-2.3-fast-t2v" +]
9 tool updates
- Changed
clips_create2 fields changed- changed
Input schema / properties / captionThemeId / descriptionPrevious value: -"Optional saved caption theme ID. Null uses workspace default captions. UUID string."New value: +"Saved theme UUID or built-in caption look. Omitted inherits Series defaults; null uses workspace captions. UUID string." - added
Input schema / properties / seriesIdAdded value: +{ + "description": "Optional Series UUID. Omitted inherits the source Series; null creates standalone clips.", + "type": "string" +}
- Changed
generation_faceless_create1 field changed- added
Input schema / properties / seriesIdAdded value: +{ + "description": "Optional Series UUID. Inherits its Story Kit and branding defaults for this new video.", + "type": "string" +}
- Changed
projects_create1 field changed- added
Input schema / properties / seriesIdAdded value: +{ + "description": "Optional Series UUID for this new project.", + "type": "string" +}
- Added
series_apply - Added
series_assign - Added
series_content - Added
series_delete - Added
series_get - Added
series_list
Related MCP Connectors
Turn a long video into short vertical clips: find moments, add captions, reframe, export.
Turn long videos into AI-curated short clips: caption, reframe, thumbnail, schedule, and publish.
Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.
Clip long videos, render branded short-form video, schedule to TikTok, Reels, Shorts and X.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceTurns long-form videos into short-form clips (TikTok/Reels) by reasoning over word-timestamped transcripts, with silence-aware rendering, STT-based validation, and optional reframing/captions.-
- AlicenseAqualityAmaintenanceOpenShorts turns long videos into vertical clips readys for Social Media posting87,118MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to autonomously edit videos into publish-ready vertical short-form content, including silence removal, subtitle generation, voiceover synthesis, color grading, and composite pipeline creation.MIT
- AlicenseAqualityCmaintenanceCreate AI-powered short-form video clips from YouTube videos using any AI assistant. 9 tools for creating shorts, browsing caption templates, music, gameplay overlays, and meme hooks.9191 npm7MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.