Edit videos with AI: cuts, captions, B-roll and motion in a style you pick or copy from any video.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Insert one scene using the supported scene shape returned by get_project_context; after null inserts it at the start. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
The scene it follows; null for the start.
The new scene, shaped like the others.
The video id from list_videos.
One output (a hook, a Short, a format) from check_video; the main film when left out.
The version the edits are for; the current one when left out.
A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Insert one scene using the supported scene shape returned by get_project_context; after null inserts it at the start. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| after* | any | The scene it follows; null for the start. |
| scene* | object | The new scene, shaped like the others. |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"after",
"scene",
"video_id"
],
"properties": {
"after": {
"anyOf": [
{
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "A scene id (sceneId) from get_project_context."
},
{
"type": "null"
}
],
"description": "The scene it follows; null for the start."
},
"scene": {
"type": "object",
"description": "The new scene, shaped like the others.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Change one of the linked account's saved styles in plain words, for example 'bigger yellow captions, no zooms' or 'open on the strongest line'. Saves it as the style's next version; every later video in that style follows it, and earlier versions are kept. Preserve operation_id on retries.
| Argument | Type | Description |
|---|---|---|
| change* | string | |
| style_id* | string | |
| operation_id* | string | A stable ID for this authorized request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"required": [
"style_id",
"change",
"operation_id"
],
"properties": {
"change": {
"type": "string",
"maxLength": 600,
"minLength": 2
},
"style_id": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this authorized request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Show ready styles/copies with content format (faceless/motion/talking), frame formats, jobs, best_for, actual inputs and saved style_version when available. Motion is faceless type/music with inputs.voice:none by default; an explicit voiceover request overrides that default while keeping the visual style and aligns visuals to the recorded speech. Narrated faceless styles use inputs.voice:narrator. Also returns all 21 narrator descriptions, accent/tags and public audition URLs; use catalog names in create_video voice. Recommend suitable returned styles, never invent private IDs. Listen/show auditions before selecting an undecided voice.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Check a video and show it. While the upload or the edit is still running, this waits for news before answering (up to 20 seconds; 50 in Claude), so call it again right away only if the user is waiting; the video card updates itself. state is waiting (give the user the upload link), uploading, editing, ready, draft (a rough cut, not the finished edit: say so and offer next_step) or failed (say problem and next_step). It also says when the length differs from the length asked. Download links are made only when asked: with_download: true (when the user wants the file).
| Argument | Type | Description |
|---|---|---|
| wait | boolean | The video card's own refresh sends false to answer at once. Leave it out: waiting for news is what keeps a check from being wasted. |
| job_id | string | The job_id revise_video returned for a change by typing: also reports that change (its steps so far, then its reply, whether it changed anything, and anything it could not do). |
| video_id | string | |
| import_id | string | |
| output_id | string | |
| with_download | boolean | true: also make a 15-minute download link (only when the user wants the file). |
Build a reusable editing style from one reference video shared by link or file. mode clone (the default) is the deep copy: it measures the reference and writes its own captions and motion; the linked account includes style copies every month at no credit cost, and once they are used each costs 100 credits. mode match is the fast copy: it maps the reference onto Clypmint's own devices in a few minutes, is included for every account and is approximate. A copy that is still working or has stopped shows in browse_styles (with its time left, or why it stopped and how to try again). dry_run: true answers whether this one is included (and how many are left) or what it costs, and starts nothing.
| Argument | Type | Description |
|---|---|---|
| mode | string | clone (default): deep, copies the reference's own motion and captions; slower; uses a monthly style copy, then credits. match: fast and approximate; included for every account. |
| name | string | |
| format | string | |
| dry_run | boolean | true: answer the cost and start nothing. |
| reference | object | |
| operation_id | string | A stable ID for this authorized request. Preserve it on retries. Use a new ID only for a deliberate new request. |
| reference_url |
Make a faceless video without filming or uploading footage. Supply exactly one of idea (Clypmint writes the narration) or script (spoken exactly as supplied). Defaults to a 30-second vertical video; seconds may be 15, 30 or 60. An exact script sets its own length at about 2.5 words a second (at most 172 words for 60 s); leave seconds out with a script and the shortest length that fits is used, and a script too long is refused at once with the word count. Uses the selected style’s pictures, designed screens, captions and sound, with the linked account’s existing credits and limits. Style: inspect browse_styles and its actual inputs. Serif Editorial Launch is format: motion with inputs.voice:none by default; Bold Navy Statement is narrated faceless with Chris as its style default. An explicit voiceover request adds narration to motion while keeping its visuals and aligning them to the recorded speech. Other faceless styles or ready saved copies remain available. A style marked format: talking is made for someone on camera. Optional: style_id (with style_version for a saved style of your own), formats (9:16, 16:9, 1:1, 4:5; first is the main one), voice (one of 21 narrators by name; omitted, preserve the style’s voice default, including none for motion; "Voice: <name>" in instructions works too), sound_effects (on unless false), music_bed (the style’s music under the voice, only when true), purpose, instructions up to 8,000 characters, asset_ids from list_assets, asset_staging_keys from import_asset (logo: true for the brand’s logo), and music_staging_key from import_asset. Cost: 3 credits to make, plus 1 for each started minute of voice-over and 1 for each started minute of finished video after the first, plus 2 for each extra format; dry_run: true answers the cost and starts nothing. For several videos at once use create_videos; for a month of posts use plan_content. Return the studio_url and call check_video with video_id for progress and the finished download. Preserve operation_id and arguments on retries; never publish unless separately requested.
| Argument | Type | Description |
|---|---|---|
| idea | string |
Make up to 10 faceless videos in one call (more: batches of 10; a month of posts is plan_content), each from an idea or an exact script, with shared defaults (seconds, style_id, formats, voice: matilda/sarah/jessica/alice/liam/chris/brian/george/roger/laura/charlie/river/will/eric/bella/daniel/lily/bill/adam/callum/harry, sound_effects). Every item is checked before any starts; each is idempotent on its own operation id (operation_id.N), so a retry never makes doubles. Each video costs 3 credits to make, plus 1 for each started minute of voice-over and 1 for each started minute of finished video after the first, plus 2 for each extra format; dry_run: true answers the total and starts nothing. Returns the video ids; check each with check_video, then schedule_plan. Cost: About 4 credits per 30-second video (3 credits to make, plus 1 for each started minute of voice-over and 1 for each started minute of finished video after the first, plus 2 for each extra format).
| Argument | Type | Description |
|---|---|---|
| items* | array | Up to 10 videos, each with exactly one of idea or script. |
| dry_run | boolean | true: answer the credit cost and start nothing. |
| defaults | object | Settings every item gets unless it says otherwise. |
| operation_id* | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"items",
"operation_id"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"idea": {
"type": "string",
"maxLength": 4000,
"minLength": 3
},
"title": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"voice": {
"enum": [
"matilda",
"sarah",
"jessica",
"alice",
"liam",
"chris",
"brian",
"george",
"roger",
"laura",
"charlie",
"river",
"will",
"eric",
"bella",
"daniel",
"lily",
"bill",
"adam",
"callum",
"harry"
],
"type": "string",
"description": "The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah: calm, reassuring, health and money; alice: a clear British educator; brian: deep documentary; liam: energetic ads). Leave out to let Clypmint pick one that fits the words. \"Voice: <name>\" in instructions does the same."
},
"format": {
"enum": [
"vertical",
"horizontal"
],
"type": "string"
},
"script": {
"type": "string",
"maxLength": 4000,
"minLength": 3
},
"formats": {
"type": "array",
"items": {
"enum": [
"9:16",
"16:9",
"1:1",
"4:5"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "Every shape to make, the main one first: 9:16, 16:9, 1:1, 4:5."
},
"purpose": {
"enum": [
"organic",
"ad",
"youtube",
"sales_page"
],
"type": "string",
"description": "organic (a post), ad (three openings by default), youtube (horizontal), sales_page."
},
"seconds": {
"anyOf": [
{
"type": "number",
"const": 15
},
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 60
}
]
},
"style_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,40}$"
},
"asset_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^src_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
},
"maxItems": 50
},
"instructions": {
"type": "string",
"maxLength": 8000
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
},
"sound_effects": {
"type": "boolean"
},
"style_version": {
"type": "integer",
"maximum": 10000,
"minimum": 1
},
"music_staging_key": {
"type": "string",
"pattern": "^stg_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
}
},
"additionalProperties": false
},
"maxItems": 10,
"minItems": 1,
"description": "Up to 10 videos, each with exactly one of idea or script."
},
"dry_run": {
"type": "boolean",
"description": "true: answer the credit cost and start nothing."
},
"defaults": {
"type": "object",
"properties": {
"voice": {
"enum": [
"matilda",
"sarah",
"jessica",
"alice",
"liam",
"chris",
"brian",
"george",
"roger",
"laura",
"charlie",
"river",
"will",
"eric",
"bella",
"daniel",
"lily",
"bill",
"adam",
"callum",
"harry"
],
"type": "string",
"description": "The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah: calm, reassuring, health and money; alice: a clear British educator; brian: deep documentary; liam: energetic ads). Leave out to let Clypmint pick one that fits the words. \"Voice: <name>\" in instructions does the same."
},
"format": {
"enum": [
"vertical",
"horizontal"
],
"type": "string"
},
"formats": {
"type": "array",
"items": {
"enum": [
"9:16",
"16:9",
"1:1",
"4:5"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "Every shape to make, the main one first: 9:16, 16:9, 1:1, 4:5."
},
"purpose": {
"enum": [
"organic",
"ad",
"youtube",
"sales_page"
],
"type": "string",
"description": "organic (a post), ad (three openings by default), youtube (horizontal), sales_page."
},
"seconds": {
"anyOf": [
{
"type": "number",
"const": 15
},
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 60
}
]
},
"style_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,40}$"
},
"asset_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^src_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
},
"maxItems": 50
},
"instructions": {
"type": "string",
"maxLength": 8000
},
"sound_effects": {
"type": "boolean"
},
"style_version": {
"type": "integer",
"maximum": 10000,
"minimum": 1
},
"music_staging_key": {
"type": "string",
"pattern": "^stg_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
}
},
"description": "Settings every item gets unless it says otherwise.",
"additionalProperties": false
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Remove footage time for the inclusive transcript word range. This removes speech, unlike removing a graphic layer. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| words* | array | [first, last] word numbers from the transcript in get_project_context. |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"words",
"video_id"
],
"properties": {
"words": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"maxItems": 2,
"minItems": 2,
"description": "[first, last] word numbers from the transcript in get_project_context."
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Change ideas by number (n) before they are made or posted: title, hook, script, caption, hashtags, posting time, platforms, or removed: true to drop one (false puts it back). Words cannot change once an idea is being made; a scheduled post changes with update_post. Free. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| items* | array | |
| plan_id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"plan_id",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"n"
],
"properties": {
"n": {
"type": "integer",
"maximum": 31,
"minimum": 1
},
"hook": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"title": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"script": {
"type": "string",
"maxLength": 1200,
"minLength": 3
},
"caption": {
"type": "string",
"maxLength": 2000
},
"post_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
"removed": {
"type": "boolean",
"description": "true takes the idea out; false puts it back."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 61,
"minLength": 1,
"description": "One word, letters, digits or _, with or without #."
},
"maxItems": 10
},
"platforms": {
"type": "array",
"items": {
"enum": [
"INSTAGRAM",
"TIKTOK",
"YOUTUBE"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1
}
},
"additionalProperties": false
},
"maxItems": 31,
"minItems": 1
},
"plan_id": {
"type": "string",
"pattern": "^pln_[0-9a-f]{24}$"
}
},
"additionalProperties": false
}Edit the user's own footage into a finished video. Put what they asked for into the fields, never into prose rules: kind (montage: pictures and music lead, e.g. sport, travel, events; talking: someone speaks), length ({min_seconds, max_seconds} for "45-60 s"), style_id (read browse_styles once first: a saved style of theirs (own: true) that fits the request is the one to use), music_staging_key (a song from import_asset) or song_upload: true (they have a song file but no link: the upload link takes it too), camera_sound, formats (only when they asked for a shape; otherwise the video keeps its own and nothing is cropped). instructions holds only anything else they asked for, in their own words. Clypmint watches the footage itself: do not describe the footage, write rules or ask the user how to edit. In ChatGPT attach the video as video. Otherwise leave it out: the answer has a private upload link (15 minutes) to give the user, and editing starts when the video lands. One upload per video: to change the length, song, cut or shape of a video already made, use revise_video or a direct edit tool on that video (a shape is one set_output_frame call), never a new upload; a separate new edit of the same footage is footage_from: that video_id. Like another video? reference_url (+ reference_mode clone or match) copies that video's style beside the upload, saves it to the user's styles, and the edit waits for it; leave style_id out. No footage (an idea or a script)? Use create_video. Also: purpose (organic, ad, youtube, sales_page), hooks 1-3 (an ad's openings), shorts 0-10 or 'all', clips (a long recording cut into clips alone), speaker_name, names, spellings, sound_effects, asset_ids, source_url (a public link where links are open). Cost: 3 credits to make, plus 1 for each started minute of footage and 1 for each started minute of finished video after the first, plus 2 for each extra hook, length or format and 2 for each clip; dry_run: true answers the cost and starts nothing. Preserve operation_id on retries.
| Argument | Type | Description |
|---|---|---|
| kind | string | talking: someone speaks and their words lead the cut (talking head, interview, podcast, tutorial). montage: the pictures and the music lead (sport, action, travel, events, scenery, b-roll); what people say is not followed. Leave out when unsure: Clypmint decides from the footage. |
Fix caption words or the key-word colour of a finished video, without a new edit; timing never moves. Either rewrite lines (from, to, text from get_project_context captions) or swap words everywhere with replace: [{ heard, spelled }] (brand names, people). To remember a spelling for future videos, use remember when available. Each spoken word keeps a caption word, so a 2-word name cannot become 1 word here: use remember plus revise_video. Free; 5 a day per video. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| color | string | The key words' colour. |
| lines | array | The caption lines to rewrite, from get_project_context captions (from, to, text). |
| replace | array | Swap words everywhere they appear, e.g. a brand name: [{ heard: "Clip Mint", spelled: "ClipMint" }]. |
| video_id* | string | The video id from list_videos. |
| base_version | string | |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"video_id"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$",
"description": "The key words' colour."
},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"from",
"to",
"text"
],
"properties": {
"to": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"from": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"text": {
"type": "string",
"maxLength": 600,
"minLength": 1
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1,
"description": "The caption lines to rewrite, from get_project_context captions (from, to, text)."
},
"replace": {
"type": "array",
"items": {
"type": "object",
"required": [
"heard",
"spelled"
],
"properties": {
"heard": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "The words as the captions show them."
},
"spelled": {
"type": "string",
"maxLength": 160,
"minLength": 1,
"description": "How they should read."
}
},
"additionalProperties": false
},
"maxItems": 20,
"minItems": 1,
"description": "Swap words everywhere they appear, e.g. a brand name: [{ heard: \"Clip Mint\", spelled: \"ClipMint\" }]."
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Forget one remembered preference by its id from list_memory. Later videos leave it out. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| memory_id* | string | An id from list_memory. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"memory_id"
],
"properties": {
"memory_id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "An id from list_memory."
}
},
"additionalProperties": false
}Return only the stable identity and display labels of the account represented by this request. Used for account linking. For account rights, credits and usage use get_profile.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Read a calendar from plan_content: each idea’s state (draft, making, ready, needs_connect, needs_time, scheduled, posted, failed), its video and post, and the quote. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| plan_id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"plan_id"
],
"properties": {
"plan_id": {
"type": "string",
"pattern": "^pln_[0-9a-f]{24}$"
}
},
"additionalProperties": false
}Return the Clypmint profile linked to this request, with its credits (used and included this billing month, and when they renew) and videos used, so you can say what a request will use before spending.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Read an owned video’s version, scenes, captions and editable canvas element IDs/capabilities. Optional output_id selects a clip/format; element_offset pages through the canvas inventory. Use the returned version/output, IDs and capabilities with the named direct-edit tools, such as set_element_content or set_element_layout, without a second Clypmint model round. Canvas image IDs name assets already in this version. Returns project data without a visual card.
| Argument | Type | Description |
|---|---|---|
| video_id* | string | |
| output_id | string | |
| element_offset | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"video_id"
],
"properties": {
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"element_offset": {
"type": "integer",
"maximum": 100000,
"minimum": 0
}
},
"additionalProperties": false
}Read every round of changes, direct edit and caption fix on a video, oldest first, with who asked, the status and the version it made. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| video_id* | string | The video id from list_videos. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"video_id"
],
"properties": {
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
}
},
"additionalProperties": false
}While a video is being made, read what the editor is doing: its stage, minutes left, the paper edit, each step (looked at footage, searched, previewed) and the names it heard. Use it to narrate progress instead of waiting silently. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| video_id* | string | The video id from list_videos. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"video_id"
],
"properties": {
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
}
},
"additionalProperties": false
}Fuller notes on using Clypmint, when a request is unusual: overview (which tool and fields for a request, and one-call changes), music, styles, editing (changes and the canvas), publishing (posting and monthly plans), capabilities. A normal request needs none of it: the tool descriptions are enough. Read-only, free.
| Argument | Type | Description |
|---|---|---|
| topic | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"topic": {
"enum": [
"overview",
"music",
"styles",
"editing",
"publishing",
"capabilities"
],
"type": "string",
"default": "overview"
}
},
"additionalProperties": false
}Import one image or song up to 32 MiB for a video: a file attached in ChatGPT (file), or a public https link to the file (url) from Claude or any host that cannot attach files. logo: true marks the image as the brand’s logo. Returns an asset_staging_key for create_video’s asset_staging_keys (or music_staging_key for a song), usable for seven days. Repeating the same operation_id and file returns the original receipt. Does not import video footage (edit_video does) or read the host’s wider library. No link and no attachment? The account owner can add the logo once on the Brand page (no website needed): https://clypmint.com/studio/brand.
| Argument | Type | Description |
|---|---|---|
| url | string | A public https link to the image (PNG, JPEG, WebP, GIF) or song (MP3, WAV, M4A), up to 32 MiB. Use it from Claude or any host that cannot attach a file: the direct link to the file itself, not a page that shows it. |
| file | object | A file attached in ChatGPT. Hosts that cannot attach files send url instead. |
| logo | boolean | true when the image is the brand's logo: the video uses it as the brand's mark. |
| file_name | string | A name for the file. |
| operation_id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation_id"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "A public https link to the image (PNG, JPEG, WebP, GIF) or song (MP3, WAV, M4A), up to 32 MiB. Use it from Claude or any host that cannot attach a file: the direct link to the file itself, not a page that shows it."
},
"file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"file_name": {
"type": "string",
"maxLength": 255
},
"mime_type": {
"type": "string"
},
"download_url": {
"type": "string",
"format": "uri"
}
},
"description": "A file attached in ChatGPT. Hosts that cannot attach files send url instead.",
"additionalProperties": false
},
"logo": {
"type": "boolean",
"description": "true when the image is the brand's logo: the video uses it as the brand's mark."
},
"file_name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "A name for the file."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$"
}
},
"additionalProperties": false
}List reusable media owned by the linked account, including the asset IDs accepted by video creation.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}List the preferences, looks and spellings Clypmint remembers for the brand, with the ids forget takes. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| brand_id | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"brand_id": {
"type": "string",
"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)$"
}
},
"additionalProperties": false
}List the versions of a video, newest last, and which one is live. Use with restore_version to undo. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| video_id* | string | The video id from list_videos. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"video_id"
],
"properties": {
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
}
},
"additionalProperties": false
}List up to 20 recent videos in the linked Clypmint account.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Set the scene’s first and last transcript word numbers. Use this to shorten a graphic without removing the footage underneath. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| words* | array | [first, last] word numbers from the transcript in get_project_context. |
| scene_id* | string | A scene id (sceneId) from get_project_context. |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
Start a content calendar for a topic: count faceless videos (1-31) over days (7-31), each with a title, hook, the exact script, caption, hashtags and a posting time. Best: write the ideas yourself in the conversation and send them as items (taken as written, at once); otherwise Clypmint writes them (this call keeps going until they are written, or tells you to call again with the same operation_id). Makes nothing and spends nothing; answers plan_id, the ideas and the quote (credits a video, room left this month). Show the user the ideas, change them with edit_content_plan, and approve_plan only after their yes. Use for "start a faceless account" or "a month of posts about X". Cost: Free to write; making each video costs about 4 credits (30 s).
| Argument | Type | Description |
|---|---|---|
| days* | integer | Over how many days (7-31). |
| count | integer | How many videos (1-31); leave out when sending items. |
| items | array | Ideas you wrote yourself (title, hook, script, caption, hashtags): taken as written, at once. Without them Clypmint writes the ideas. |
| topic* | string | What the account posts about. |
| voice | string | The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah: calm, reassuring, health and money; alice: a clear British educator; brian: deep documentary; liam: energetic ads). Leave out to let Clypmint pick one that fits the words. "Voice: <name>" in instructions does the same. |
Add or update one timed text, image or video overlay with none, fade, slide or pop animation. Use only existing canvas asset IDs and editable capabilities returned by the project. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| overlay* | any | |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"overlay",
"video_id"
],
"properties": {
"overlay": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"start",
"end",
"x",
"y",
"width",
"height",
"kind",
"text",
"font",
"fontSize",
"color"
],
"properties": {
"x": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"y": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"id": {
"type": "string",
"pattern": "^ov_[A-Za-z0-9_-]{1,64}$"
},
"end": {
"type": "number",
"exclusiveMinimum": 0
},
"font": {
"enum": [
"Inter-Medium",
"Poppins-SemiBold",
"Roboto"
],
"type": "string"
},
"kind": {
"type": "string",
"const": "text"
},
"text": {
"type": "string",
"maxLength": 300,
"minLength": 1
},
"align": {
"enum": [
"left",
"center",
"right"
],
"type": "string"
},
"color": {
"type": "string",
"pattern": "^#[a-f0-9]{6}$"
},
"start": {
"type": "number",
"minimum": 0
},
"width": {
"type": "number",
"maximum": 1,
"minimum": 0.02
},
"height": {
"type": "number",
"maximum": 1,
"minimum": 0.02
},
"hidden": {
"type": "boolean"
},
"fontSize": {
"type": "number",
"maximum": 0.2,
"minimum": 0.015
},
"rotation": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"animation": {
"enum": [
"none",
"fade",
"slide",
"pop"
],
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"id",
"start",
"end",
"x",
"y",
"width",
"height",
"kind",
"assetId"
],
"properties": {
"x": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"y": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"id": {
"type": "string",
"pattern": "^ov_[A-Za-z0-9_-]{1,64}$"
},
"end": {
"type": "number",
"exclusiveMinimum": 0
},
"kind": {
"type": "string",
"const": "image"
},
"start": {
"type": "number",
"minimum": 0
},
"width": {
"type": "number",
"maximum": 1,
"minimum": 0.02
},
"height": {
"type": "number",
"maximum": 1,
"minimum": 0.02
},
"hidden": {
"type": "boolean"
},
"assetId": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"rotation": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"animation": {
"enum": [
"none",
"fade",
"slide",
"pop"
],
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"id",
"start",
"end",
"x",
"y",
"width",
"height",
"kind",
"assetId"
],
"properties": {
"x": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"y": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"id": {
"type": "string",
"pattern": "^ov_[A-Za-z0-9_-]{1,64}$"
},
"end": {
"type": "number",
"exclusiveMinimum": 0
},
"kind": {
"type": "string",
"const": "video"
},
"start": {
"type": "number",
"minimum": 0
},
"width": {
"type": "number",
"maximum": 1,
"minimum": 0.02
},
"height": {
"type": "number",
"maximum": 1,
"minimum": 0.02
},
"hidden": {
"type": "boolean"
},
"assetId": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"rotation": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"sourceIn": {
"type": "number",
"minimum": 0
},
"animation": {
"enum": [
"none",
"fade",
"slide",
"pop"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Teach Clypmint one lasting preference for every later video of this brand, in plain words: caption size, pace, sound effects, colours, "own footage first", or how a name is spelled. Up to 200 characters. Free. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| text* | string | One preference in plain words, e.g. "Bigger captions" or "Always spell it ClipMint". |
| brand_id | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "One preference in plain words, e.g. \"Bigger captions\" or \"Always spell it ClipMint\"."
},
"brand_id": {
"type": "string",
"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)$"
}
},
"additionalProperties": false
}Remove this scene and its footage time. To remove only graphics or camera motion while keeping speech, use remove_scene_layer. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| scene_id* | string | A scene id (sceneId) from get_project_context. |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"scene_id",
"video_id"
],
"properties": {
"scene_id": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "A scene id (sceneId) from get_project_context."
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Remove the graphic or camera movement from this scene, preserving its footage and captions. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| layer* | string | |
| scene_id* | string | A scene id (sceneId) from get_project_context. |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"scene_id",
"layer",
"video_id"
],
"properties": {
"layer": {
"enum": [
"graphic",
"camera"
],
"type": "string"
},
"scene_id": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "A scene id (sceneId) from get_project_context."
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Remove one added overlay by its returned ov_ ID, preserving underlying footage. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"video_id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^ov_[A-Za-z0-9_-]{1,64}$"
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Replace this scene screen with the supported screen shape returned by get_project_context. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| screen* | object | A screen in the shape get_project_context shows for that scene. |
| scene_id* | string | A scene id (sceneId) from get_project_context. |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"scene_id",
"screen",
"video_id"
],
"properties": {
"screen": {
"type": "object",
"description": "A screen in the shape get_project_context shows for that scene.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"scene_id": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "A scene id (sceneId) from get_project_context."
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Make an earlier version of a video live again (undo). Nothing is deleted. Free. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| video_id* | string | The video id from list_videos. |
| version_id* | string | A version_id from list_versions. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"video_id",
"version_id"
],
"properties": {
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"version_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A version_id from list_versions."
}
},
"additionalProperties": false
}Change a finished video against its saved base_version. A change asked for in words costs 1 credit (dry_run: true answers the price and sends nothing); exact edits with the direct edit tools and fix_captions are free. Name output_id for one hook/Short/format; attachment changes require one output when the video has several. Attach up to four still images with explicit intent: reference_only studies the image without placing it, use_in_video must place it. Supply each as a genuine ChatGPT file descriptor, an import_asset asset_staging_key, or an owned imported asset_id. PNG/JPEG/WebP may be placed; GIF references inspect the first frame only. Prepared owned video sources may be placed by ID; motion/audio analysis of video references needs a separate preparation path. Unsupported requests return a reason and preserve the saved project. Exact supported changes use the direct edit tools or fix_captions. On the legacy rendered revision path only (a video without a saved native project), replace retained main scratch narration when check_video.narration.can_change is true: pass explicit voice plus a voice-only change such as 'Change narrator to Brian. Keep the script and edit.' using the selected catalog name. This preserves script/edit/assets; send other edits separately. Uploaded speech, silent motion and mixed voice/visual instructions are refused on that replacement path. To ADD narration to an eligible silent main motion video on the legacy path, keep voice omitted and begin change with 'Narrator: liam Narration: <exact one-line voiceover script> <visual and sound-effect revision notes>'. Use a catalog narrator name; this supports one main hook, aligns rebuilt visuals to the recorded narration word clock, and refuses mismatched, clipped or missing voiceover. The saved native project path currently returns typed project_update_unsupported for voice replacement or narration addition because its separate narration preparation path is unavailable. Do not promise native narration support or retry by forcing a legacy rebuild. Preserve operation_id, base/output, roles and arguments on retries; a refreshed file download URL for the same host file may resume its upload. Use a new operation_id for a deliberate new change and check the resulting version. No movie export is started by a native project update. A change by typing runs in the background: this answers at once with a job_id, and check_video with that job_id shows the steps as they happen and then the editor's reply and what it could not do.
Keep a finished clip (or hook, or film) of a video as a reusable asset. Its asset_id goes in asset_ids of edit_video or create_video, so a clip can open another video, sit inside one, or become the whole video. Read output_id from check_video. Free. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| video_id* | string | The video id from list_videos. |
| output_id* | string | The clip (or hook, or main film) to keep, from check_video, e.g. short-2-9x16. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"video_id",
"output_id"
],
"properties": {
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,80}$",
"description": "The clip (or hook, or main film) to keep, from check_video, e.g. short-2-9x16."
}
},
"additionalProperties": false
}Change caption size, position or style using supported values from the project. For spelling or caption text use fix_captions. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| captions* | object | |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"captions",
"video_id"
],
"properties": {
"captions": {
"type": "object",
"properties": {
"size": {
"type": "string",
"maxLength": 20,
"minLength": 1
},
"style": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"position": {
"type": "string",
"maxLength": 20,
"minLength": 1
}
},
"additionalProperties": false
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Change supported text, color or hidden state on one returned editable canvas element. A null edit restores its authored content. Preserve authored animation. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| edit* | any | |
| element* | string | |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"element",
"edit",
"video_id"
],
"properties": {
"edit": {
"anyOf": [
{
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 300,
"minLength": 1
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"hidden": {
"type": "boolean"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"element": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]{1,160}$"
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Move, scale or rotate one returned editable canvas element using its units. A null layout restores its authored layout. Preserve authored animation. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| layout* | any | |
| element* | string | |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"element",
"layout",
"video_id"
],
"properties": {
"layout": {
"anyOf": [
{
"type": "object",
"required": [
"x",
"y",
"scale",
"rotation"
],
"properties": {
"x": {
"type": "number",
"maximum": 1,
"minimum": -1
},
"y": {
"type": "number",
"maximum": 1,
"minimum": -1
},
"scale": {
"type": "number",
"maximum": 4,
"minimum": 0.1
},
"rotation": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"element": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]{1,160}$"
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Reshape the selected output to 9:16, 16:9, 1:1 or 4:5. subject follows the subject; contain keeps the whole picture with bars; cover fills with optional x/y. add true creates another output and preserves this one. frame null restores the original shape. Crop only when requested. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| add | boolean | |
| frame* | any | |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
Replace this scene’s added sound cues; an empty cues list removes them. Use names from scenes.soundOptions and word indices from soundWords. Preserve speech; the global sound mute still applies. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| cues* | array | |
| scene_id* | string | A scene id (sceneId) from get_project_context. |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
Set one text field, such as screen.title, on the selected scene. Preserve the user’s exact words. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| path* | string | Which text, e.g. 'screen.title'. |
| text* | string | |
| scene_id* | string | A scene id (sceneId) from get_project_context. |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
Enable or remove added music while preserving source speech. Use a music_staging_key from import_asset or one of these tracks: bright-house (upbeat), lofi-desk (calm), tech-forward (tech), documentary-pulse (story), gym-phonk (energetic), acoustic-morning (warm), soft-piano (emotional), funk-pop (fun), night-suspense (mystery), rise-up (inspiring). level_db is relative to source audio. beat_sync is supported only for source-shot action montages; other clocks refuse it. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| track | string | |
| enabled* | boolean | |
| level_db | number | |
| video_id* | string | The video id from list_videos. |
| beat_sync | boolean | |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version |
Enable or disable added sound effects and select subtle or punchy intensity. Preserve speech and music. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| video_id* | string | The video id from list_videos. |
| intensity | string | |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
| sound_effects* | boolean |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sound_effects",
"video_id"
],
"properties": {
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"intensity": {
"enum": [
"subtle",
"punchy"
],
"type": "string"
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
},
"sound_effects": {
"type": "boolean"
}
},
"additionalProperties": false
}Add or remove emphasis on specific transcript word indices, keeping the words and their timing. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| add | array | |
| remove | array | |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"video_id"
],
"properties": {
"add": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"maxItems": 200
},
"remove": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"maxItems": 200
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}Replace the selected scene picture with a picture key already used in this version, not a library asset ID. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.
| Argument | Type | Description |
|---|---|---|
| asset_id* | string | A picture key this version already uses (a scene's picture from get_project_context), not a library asset id. |
| scene_id* | string | A scene id (sceneId) from get_project_context. |
| video_id* | string | The video id from list_videos. |
| output_id | string | One output (a hook, a Short, a format) from check_video; the main film when left out. |
| base_version | string | The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"properties": {
"wait": {
"type": "boolean",
"description": "The video card's own refresh sends false to answer at once. Leave it out: waiting for news is what keeps a check from being wasted."
},
"job_id": {
"type": "string",
"description": "The job_id revise_video returned for a change by typing: also reports that change (its steps so far, then its reply, whether it changed anything, and anything it could not do)."
},
"video_id": {
"type": "string"
},
"import_id": {
"type": "string"
},
"output_id": {
"type": "string"
},
"with_download": {
"type": "boolean",
"description": "true: also make a 15-minute download link (only when the user wants the file)."
}
},
"additionalProperties": false
}| string |
{
"type": "object",
"properties": {
"mode": {
"enum": [
"clone",
"match"
],
"type": "string",
"description": "clone (default): deep, copies the reference's own motion and captions; slower; uses a monthly style copy, then credits. match: fast and approximate; included for every account."
},
"name": {
"type": "string",
"maxLength": 60
},
"format": {
"enum": [
"talking",
"faceless",
"motion"
],
"type": "string"
},
"dry_run": {
"type": "boolean",
"description": "true: answer the cost and start nothing."
},
"reference": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"minLength": 1
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"download_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this authorized request. Preserve it on retries. Use a new ID only for a deliberate new request."
},
"reference_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
}| title | string |
| voice | string | The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah: calm, reassuring, health and money; alice: a clear British educator; brian: deep documentary; liam: energetic ads). Leave out to let Clypmint pick one that fits the words. "Voice: <name>" in instructions does the same. |
| format | string |
| script | string |
| dry_run | boolean | true: answer the credit cost and start nothing. |
| formats | array | Every shape to make, the main one first: 9:16, 16:9, 1:1, 4:5. |
| purpose | string | organic (a post), ad (three openings by default), youtube (horizontal), sales_page. |
| seconds | any | How long: 15, 30 or 60. With a script, leave it out: the script sets the length (about 2.5 words a second; at most 43 words for 15, 86 for 30, 172 for 60). |
| style_id | string |
| asset_ids | array |
| music_bed | boolean | true: lay the style's own music bed under the narration (none unless asked); false: never. music_staging_key brings a song of your own instead. |
| instructions | string | Anything else the user asked for, in their own words: where each picture goes, the tone. Length, narrator, pictures and shapes go in their own fields. No rule lists. A link written here is not opened: import a picture first with import_asset. |
| operation_id* | string |
| sound_effects | boolean |
| style_version | integer |
| music_staging_key | string | A song from import_asset (mp3, wav or m4a) to lay under the voice. |
| asset_staging_keys | array | Pictures the user wants shown (a portrait, a product shot, an app screen): import each with import_asset (its url) and list the keys here. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation_id"
],
"properties": {
"idea": {
"type": "string",
"maxLength": 4000,
"minLength": 3
},
"title": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"voice": {
"enum": [
"matilda",
"sarah",
"jessica",
"alice",
"liam",
"chris",
"brian",
"george",
"roger",
"laura",
"charlie",
"river",
"will",
"eric",
"bella",
"daniel",
"lily",
"bill",
"adam",
"callum",
"harry"
],
"type": "string",
"description": "The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah: calm, reassuring, health and money; alice: a clear British educator; brian: deep documentary; liam: energetic ads). Leave out to let Clypmint pick one that fits the words. \"Voice: <name>\" in instructions does the same."
},
"format": {
"enum": [
"vertical",
"horizontal"
],
"type": "string",
"default": "vertical"
},
"script": {
"type": "string",
"maxLength": 4000,
"minLength": 3
},
"dry_run": {
"type": "boolean",
"description": "true: answer the credit cost and start nothing."
},
"formats": {
"type": "array",
"items": {
"enum": [
"9:16",
"16:9",
"1:1",
"4:5"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "Every shape to make, the main one first: 9:16, 16:9, 1:1, 4:5."
},
"purpose": {
"enum": [
"organic",
"ad",
"youtube",
"sales_page"
],
"type": "string",
"description": "organic (a post), ad (three openings by default), youtube (horizontal), sales_page."
},
"seconds": {
"anyOf": [
{
"type": "number",
"const": 15
},
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 60
}
],
"default": 30,
"description": "How long: 15, 30 or 60. With a script, leave it out: the script sets the length (about 2.5 words a second; at most 43 words for 15, 86 for 30, 172 for 60)."
},
"style_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,40}$"
},
"asset_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^src_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
},
"default": [],
"maxItems": 50
},
"music_bed": {
"type": "boolean",
"description": "true: lay the style's own music bed under the narration (none unless asked); false: never. music_staging_key brings a song of your own instead."
},
"instructions": {
"type": "string",
"maxLength": 8000,
"description": "Anything else the user asked for, in their own words: where each picture goes, the tone. Length, narrator, pictures and shapes go in their own fields. No rule lists. A link written here is not opened: import a picture first with import_asset."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$"
},
"sound_effects": {
"type": "boolean"
},
"style_version": {
"type": "integer",
"maximum": 10000,
"minimum": 1
},
"music_staging_key": {
"type": "string",
"pattern": "^stg_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$",
"description": "A song from import_asset (mp3, wav or m4a) to lay under the voice."
},
"asset_staging_keys": {
"type": "array",
"items": {
"type": "string",
"pattern": "^stg_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
},
"default": [],
"maxItems": 50,
"description": "Pictures the user wants shown (a portrait, a product shot, an app screen): import each with import_asset (its url) and list the keys here."
}
},
"additionalProperties": false
}| clips | object | Clips alone from one recording (no main film): podcasts, streams, long talks. |
| hooks | integer | Openings to make (1-3): an ad gets 3 by default, the main cut counting as one. |
| names | array | Exact person, company and product names to spell correctly in this video; not a lasting account rule. |
| title | string |
| video | object | The attached video file (ChatGPT). Leave out to get a private upload link instead. |
| voice | string | The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah: calm, reassuring, health and money; alice: a clear British educator; brian: deep documentary; liam: energetic ads). Leave out to let Clypmint pick one that fits the words. "Voice: <name>" in instructions does the same. |
| format | string | The older one-shape switch; formats says more. |
| length | object | How long the finished video should be. "45-60 s" is {min_seconds: 45, max_seconds: 60}; "under a minute" is {max_seconds: 60}; "about 30 s" is {min_seconds: 25, max_seconds: 35}. Leave out when the user named no length. |
| shorts | any | Shorts to cut from the recording too (0-10), or 'all' the good ones. |
| dry_run | boolean | true: answer the credit cost and start nothing. |
| formats | array | Only when the user asked for a shape: vertical, TikTok, Reels or Shorts is 9:16; square is 1:1; 4:5; YouTube or widescreen is 16:9. Every shape to make, the main one first. Leave it out otherwise: the video keeps its own shape and nothing is cropped. |
| purpose | string | organic (a post), ad (three openings by default), youtube (horizontal), sales_page. |
| style_id | string | A style id from browse_styles, e.g. serif-editorial-launch, bold-navy-statement, crimson-serif-explainer, warm, luxe, brand, or a saved style of your own (my-...). |
| asset_ids | array |
| spellings | object | Explicit heard-to-correct spelling pairs for this video, for example {"KMAC":"KMAK"}. |
| source_url | string | A public https link to the footage (where links are open), instead of a file. |
| song_upload | boolean | true when the user has a song file but no public link to it (a song attached in Claude, a file on their computer): the private upload link asks for the video and the song together. Leave out when music_staging_key is set. |
| camera_sound | string | The footage's own sound. mute: only the song plays (the default for a montage with a song). keep: the camera sound stays (the default otherwise). |
| footage_from | string | The video_id of a video already made from this footage: a new edit of the same footage with no new upload (another kind, length or style). To change that video itself, use revise_video or apply_edits instead. |
| instructions | string | Anything else the user asked for, in their own words, usually one or two sentences. Length, kind, song, style and formats go in their own fields, not here. Clypmint watches the footage itself: do not describe the footage, write rules or explain how to edit. Kept in full. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
| speaker_name | string | Who is talking, spelled right, e.g. "Dr. Ana Ruiz". |
| reference_url | string | A video to make this edit LIKE (a public https link from Instagram, TikTok, X, Facebook, Loom or LinkedIn): Clypmint copies its style beside the upload, saves it to the user's styles, and the edit waits for it. Use it when the user says "like this one"; leave style_id out. reference_mode picks how. |
| sound_effects | boolean | true: sound effects on the edit. |
| style_version | integer |
| reference_mode | string | How to copy reference_url. clone (the default): deep, copies the reference's own motion and captions; slower, uses one of the monthly style copies, then credits. match: fast and approximate, included. |
| speaker_company | string | The speaker's company or business, spelled exactly for this video. |
| music_staging_key | string | The song for this video, from import_asset (mp3, wav or m4a): a montage's soundtrack, or music under the speech. |
| asset_staging_keys | array |
| source_duration_seconds | number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"kind": {
"enum": [
"talking",
"montage"
],
"type": "string",
"description": "talking: someone speaks and their words lead the cut (talking head, interview, podcast, tutorial). montage: the pictures and the music lead (sport, action, travel, events, scenery, b-roll); what people say is not followed. Leave out when unsure: Clypmint decides from the footage."
},
"clips": {
"type": "object",
"required": [
"count"
],
"properties": {
"about": {
"type": "string",
"maxLength": 300,
"minLength": 2,
"description": "Topics to look for first, in plain words."
},
"count": {
"anyOf": [
{
"type": "integer",
"maximum": 30,
"minimum": 1
},
{
"enum": [
"all"
],
"type": "string"
}
],
"description": "How many clips (1-30), or 'all' the good ones."
},
"shape": {
"enum": [
"source",
"9:16"
],
"type": "string",
"description": "source keeps the recording's shape; 9:16 cuts each clip vertical on the speaker."
},
"to_seconds": {
"type": "number",
"maximum": 21600,
"exclusiveMinimum": 0
},
"max_seconds": {
"type": "integer",
"maximum": 95,
"minimum": 10
},
"min_seconds": {
"type": "integer",
"maximum": 95,
"minimum": 10
},
"from_seconds": {
"type": "number",
"maximum": 21600,
"minimum": 0
}
},
"description": "Clips alone from one recording (no main film): podcasts, streams, long talks.",
"additionalProperties": false
},
"hooks": {
"type": "integer",
"maximum": 3,
"minimum": 1,
"description": "Openings to make (1-3): an ad gets 3 by default, the main cut counting as one."
},
"names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxItems": 50,
"description": "Exact person, company and product names to spell correctly in this video; not a lasting account rule."
},
"title": {
"type": "string",
"maxLength": 120
},
"video": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"minLength": 1
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"download_url": {
"type": "string",
"format": "uri"
}
},
"description": "The attached video file (ChatGPT). Leave out to get a private upload link instead.",
"additionalProperties": false
},
"voice": {
"enum": [
"matilda",
"sarah",
"jessica",
"alice",
"liam",
"chris",
"brian",
"george",
"roger",
"laura",
"charlie",
"river",
"will",
"eric",
"bella",
"daniel",
"lily",
"bill",
"adam",
"callum",
"harry"
],
"type": "string",
"description": "The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah: calm, reassuring, health and money; alice: a clear British educator; brian: deep documentary; liam: energetic ads). Leave out to let Clypmint pick one that fits the words. \"Voice: <name>\" in instructions does the same."
},
"format": {
"enum": [
"vertical",
"horizontal"
],
"type": "string",
"description": "The older one-shape switch; formats says more."
},
"length": {
"type": "object",
"required": [
"max_seconds"
],
"properties": {
"max_seconds": {
"type": "integer",
"maximum": 3600,
"minimum": 5
},
"min_seconds": {
"type": "integer",
"maximum": 3600,
"minimum": 5
}
},
"description": "How long the finished video should be. \"45-60 s\" is {min_seconds: 45, max_seconds: 60}; \"under a minute\" is {max_seconds: 60}; \"about 30 s\" is {min_seconds: 25, max_seconds: 35}. Leave out when the user named no length.",
"additionalProperties": false
},
"shorts": {
"anyOf": [
{
"type": "integer",
"maximum": 10,
"minimum": 0
},
{
"enum": [
"all"
],
"type": "string"
}
],
"description": "Shorts to cut from the recording too (0-10), or 'all' the good ones."
},
"dry_run": {
"type": "boolean",
"description": "true: answer the credit cost and start nothing."
},
"formats": {
"type": "array",
"items": {
"enum": [
"9:16",
"16:9",
"1:1",
"4:5"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "Only when the user asked for a shape: vertical, TikTok, Reels or Shorts is 9:16; square is 1:1; 4:5; YouTube or widescreen is 16:9. Every shape to make, the main one first. Leave it out otherwise: the video keeps its own shape and nothing is cropped."
},
"purpose": {
"enum": [
"organic",
"ad",
"youtube",
"sales_page"
],
"type": "string",
"description": "organic (a post), ad (three openings by default), youtube (horizontal), sales_page."
},
"style_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,40}$",
"description": "A style id from browse_styles, e.g. serif-editorial-launch, bold-navy-statement, crimson-serif-explainer, warm, luxe, brand, or a saved style of your own (my-...)."
},
"asset_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^src_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
},
"maxItems": 50
},
"spellings": {
"type": "object",
"description": "Explicit heard-to-correct spelling pairs for this video, for example {\"KMAC\":\"KMAK\"}.",
"propertyNames": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"additionalProperties": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
},
"source_url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "A public https link to the footage (where links are open), instead of a file."
},
"song_upload": {
"type": "boolean",
"description": "true when the user has a song file but no public link to it (a song attached in Claude, a file on their computer): the private upload link asks for the video and the song together. Leave out when music_staging_key is set."
},
"camera_sound": {
"enum": [
"keep",
"mute"
],
"type": "string",
"description": "The footage's own sound. mute: only the song plays (the default for a montage with a song). keep: the camera sound stays (the default otherwise)."
},
"footage_from": {
"type": "string",
"pattern": "^prj_[A-Za-z0-9_-]{6,96}$",
"description": "The video_id of a video already made from this footage: a new edit of the same footage with no new upload (another kind, length or style). To change that video itself, use revise_video or apply_edits instead."
},
"instructions": {
"type": "string",
"maxLength": 8000,
"description": "Anything else the user asked for, in their own words, usually one or two sentences. Length, kind, song, style and formats go in their own fields, not here. Clypmint watches the footage itself: do not describe the footage, write rules or explain how to edit. Kept in full."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
},
"speaker_name": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Who is talking, spelled right, e.g. \"Dr. Ana Ruiz\"."
},
"reference_url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "A video to make this edit LIKE (a public https link from Instagram, TikTok, X, Facebook, Loom or LinkedIn): Clypmint copies its style beside the upload, saves it to the user's styles, and the edit waits for it. Use it when the user says \"like this one\"; leave style_id out. reference_mode picks how."
},
"sound_effects": {
"type": "boolean",
"description": "true: sound effects on the edit."
},
"style_version": {
"type": "integer",
"maximum": 10000,
"minimum": 1
},
"reference_mode": {
"enum": [
"clone",
"match"
],
"type": "string",
"description": "How to copy reference_url. clone (the default): deep, copies the reference's own motion and captions; slower, uses one of the monthly style copies, then credits. match: fast and approximate, included."
},
"speaker_company": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "The speaker's company or business, spelled exactly for this video."
},
"music_staging_key": {
"type": "string",
"pattern": "^stg_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$",
"description": "The song for this video, from import_asset (mp3, wav or m4a): a montage's soundtrack, or music under the speech."
},
"asset_staging_keys": {
"type": "array",
"items": {
"type": "string",
"pattern": "^stg_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
},
"maxItems": 50
},
"source_duration_seconds": {
"type": "number",
"maximum": 21600,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"scene_id",
"words",
"video_id"
],
"properties": {
"words": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"maxItems": 2,
"minItems": 2,
"description": "[first, last] word numbers from the transcript in get_project_context."
},
"scene_id": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "A scene id (sceneId) from get_project_context."
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}| seconds | any |
| audience | string |
| start_at | string | The first day; tomorrow when left out. |
| style_id | string |
| timezone | string |
| platforms | array | Where each post goes; Instagram when left out. |
| instructions | string |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"topic",
"days"
],
"properties": {
"days": {
"type": "integer",
"maximum": 31,
"minimum": 7,
"description": "Over how many days (7-31)."
},
"count": {
"type": "integer",
"maximum": 31,
"minimum": 1,
"description": "How many videos (1-31); leave out when sending items."
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"title",
"script"
],
"properties": {
"hook": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"title": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"script": {
"type": "string",
"maxLength": 1200,
"minLength": 3,
"description": "The exact words the narrator reads, about 2.5 words a second of video."
},
"caption": {
"type": "string",
"maxLength": 2000
},
"post_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"description": "Left out: Clypmint slots it."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 61,
"minLength": 1,
"description": "One word, letters, digits or _, with or without #."
},
"maxItems": 10
}
},
"additionalProperties": false
},
"maxItems": 31,
"minItems": 1,
"description": "Ideas you wrote yourself (title, hook, script, caption, hashtags): taken as written, at once. Without them Clypmint writes the ideas."
},
"topic": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "What the account posts about."
},
"voice": {
"enum": [
"matilda",
"sarah",
"jessica",
"alice",
"liam",
"chris",
"brian",
"george",
"roger",
"laura",
"charlie",
"river",
"will",
"eric",
"bella",
"daniel",
"lily",
"bill",
"adam",
"callum",
"harry"
],
"type": "string",
"description": "The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah: calm, reassuring, health and money; alice: a clear British educator; brian: deep documentary; liam: energetic ads). Leave out to let Clypmint pick one that fits the words. \"Voice: <name>\" in instructions does the same."
},
"seconds": {
"anyOf": [
{
"type": "number",
"const": 15
},
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 60
}
]
},
"audience": {
"type": "string",
"maxLength": 300
},
"start_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"description": "The first day; tomorrow when left out."
},
"style_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,40}$"
},
"timezone": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"platforms": {
"type": "array",
"items": {
"enum": [
"INSTAGRAM",
"TIKTOK",
"YOUTUBE"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"description": "Where each post goes; Instagram when left out."
},
"instructions": {
"type": "string",
"maxLength": 2000
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}| Argument | Type | Description |
|---|
| voice | string | The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah: calm, reassuring, health and money; alice: a clear British educator; brian: deep documentary; liam: energetic ads). Leave out to let Clypmint pick one that fits the words. "Voice: <name>" in instructions does the same. |
| change* | string | |
| dry_run | boolean | true: say what the change uses and send nothing. |
| video_id* | string | |
| output_id | string | Change only this output (a hook, a Short or a format) from check_video. |
| attachments | array | |
| base_version | string | |
| operation_id | string | A stable ID for this authorized request. Preserve it on retries. Use a new ID only for a deliberate new request. |
{
"type": "object",
"required": [
"video_id",
"change"
],
"properties": {
"voice": {
"enum": [
"matilda",
"sarah",
"jessica",
"alice",
"liam",
"chris",
"brian",
"george",
"roger",
"laura",
"charlie",
"river",
"will",
"eric",
"bella",
"daniel",
"lily",
"bill",
"adam",
"callum",
"harry"
],
"type": "string",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah: calm, reassuring, health and money; alice: a clear British educator; brian: deep documentary; liam: energetic ads). Leave out to let Clypmint pick one that fits the words. \"Voice: <name>\" in instructions does the same."
},
"change": {
"type": "string",
"maxLength": 2000,
"minLength": 1
},
"dry_run": {
"type": "boolean",
"description": "true: say what the change uses and send nothing."
},
"video_id": {
"type": "string",
"minLength": 1
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Change only this output (a hook, a Short or a format) from check_video."
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": [
"intent"
],
"properties": {
"file": {
"type": "object",
"required": [
"download_url",
"file_id",
"mime_type"
],
"properties": {
"file_id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"file_name": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"mime_type": {
"enum": [
"image/png",
"image/jpeg",
"image/webp",
"image/gif"
],
"type": "string"
},
"download_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"intent": {
"enum": [
"reference_only",
"use_in_video"
],
"type": "string"
},
"asset_id": {
"type": "string",
"pattern": "^src_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
},
"asset_staging_key": {
"type": "string",
"pattern": "^stg_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
}
},
"additionalProperties": false
},
"$schema": "http://json-schema.org/draft-07/schema#",
"maxItems": 4
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this authorized request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"frame",
"video_id"
],
"properties": {
"add": {
"type": "boolean"
},
"frame": {
"anyOf": [
{
"type": "object",
"required": [
"ratio"
],
"properties": {
"x": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"y": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"fit": {
"enum": [
"subject",
"cover",
"contain"
],
"type": "string",
"default": "subject"
},
"ratio": {
"enum": [
"9:16",
"16:9",
"1:1",
"4:5"
],
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"scene_id",
"cues",
"video_id"
],
"properties": {
"cues": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"on": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"gain": {
"type": "number",
"maximum": -10,
"minimum": -36
},
"name": {
"type": "string",
"pattern": "^[a-z][a-z0-9.]{0,60}$"
},
"offset": {
"type": "number",
"maximum": 3600,
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 8
},
"scene_id": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "A scene id (sceneId) from get_project_context."
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"scene_id",
"path",
"text",
"video_id"
],
"properties": {
"path": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Which text, e.g. 'screen.title'."
},
"text": {
"type": "string",
"maxLength": 600
},
"scene_id": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "A scene id (sceneId) from get_project_context."
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}| string |
| The version the edits are for; the current one when left out. |
| operation_id | string | A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request. |
| music_staging_key | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"enabled",
"video_id"
],
"properties": {
"track": {
"enum": [
"bright-house",
"lofi-desk",
"tech-forward",
"documentary-pulse",
"gym-phonk",
"acoustic-morning",
"soft-piano",
"funk-pop",
"night-suspense",
"rise-up"
],
"type": "string"
},
"enabled": {
"type": "boolean"
},
"level_db": {
"type": "number",
"maximum": 0,
"minimum": -36
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"beat_sync": {
"type": "boolean"
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
},
"music_staging_key": {
"type": "string",
"pattern": "^stg_[A-Za-z0-9][A-Za-z0-9_-]{7,95}$"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"scene_id",
"asset_id",
"video_id"
],
"properties": {
"asset_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A picture key this version already uses (a scene's picture from get_project_context), not a library asset id."
},
"scene_id": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "A scene id (sceneId) from get_project_context."
},
"video_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The video id from list_videos."
},
"output_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One output (a hook, a Short, a format) from check_video; the main film when left out."
},
"base_version": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The version the edits are for; the current one when left out."
},
"operation_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_.:-]{1,100}$",
"description": "A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request."
}
},
"additionalProperties": false
}