CueFrame · Schema
ComponentUpdateRequest
PUT /components/:id body: every writable field, all optional; an omitted field is carried forward. Org/user are server-resolved; never accepted from the body.
CompanyVideoVideo EditingVideo RenderingAI AgentsMCPMediaDeveloper Tools
Properties
| Name | Type | Description |
|---|---|---|
| componentId | string | Caller-chosen stable component id. On create it names the new component. On PUT/PATCH it is optional and, when present, must equal the id in the path; a mismatch is a 400 naming both. |
| name | string | |
| description | string | |
| category | string | |
| propSchema | object | |
| origin | string | |
| ejectedFrom | string | |
| tokens | object | |
| durationInFrames | number | |
| source | object | |
| registryProvenance | object | |
| expectedHeadVersionId | string | Exact source head observed before adoption, editing or rollback. A changed head refuses the write; project placements remain pinned unless explicitly guarded below. |
| projectId | string | A project whose explicitly named composition moves its placements atomically with the source write. Requires compositionId and concurrency. |
| compositionId | string | The exact composition observed by the caller. Required with projectId and concurrency. |
| concurrency | object | Caller-observed placement guard, required with projectId and compositionId: a placement update without it is refused with 428 precondition_required. Atomic library edits with placement changes require |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/cueframe-ai/json-schema/cueframe-ai-component-update-request-schema.json",
"title": "ComponentUpdateRequest",
"description": "PUT /components/:id body: every writable field, all optional; an omitted field is carried forward. Org/user are server-resolved; never accepted from the body.",
"x-generated": "2026-11-10",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/cueframe-ai-components-api-openapi.yml#/components/schemas/ComponentUpdateRequest",
"type": "object",
"properties": {
"componentId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Caller-chosen stable component id. On create it names the new component. On PUT/PATCH it is optional and, when present, must equal the id in the path; a mismatch is a 400 naming both."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"type": "string",
"maxLength": 2000
},
"category": {
"type": "string",
"enum": [
"text",
"effects",
"transitions",
"layouts",
"backgrounds",
"ui-blocks",
"scenes"
]
},
"propSchema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"origin": {
"type": "string",
"enum": [
"customer-owned",
"server-native"
]
},
"ejectedFrom": {
"type": "string",
"maxLength": 200
},
"tokens": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"durationInFrames": {
"type": "number",
"exclusiveMinimum": 0
},
"source": {
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 4
},
"componentId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]*$"
},
"template": {
"type": "string",
"minLength": 1,
"maxLength": 2000000
},
"manifest": {
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 4
},
"runtime": {
"type": "string",
"const": "hyperframes"
},
"hfContract": {
"type": "number",
"const": 1
},
"kind": {
"type": "string",
"const": "scene"
},
"sceneShot": {
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 2
}
},
"required": [
"version"
],
"additionalProperties": false
},
"assets": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1
},
"additionalProperties": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"image",
"video",
"audio",
"data",
"visual"
]
},
"required": {
"type": "boolean"
},
"mimeTypes": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"mediaDemand": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "original"
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "tier"
},
"tier": {
"anyOf": [
{
"type": "number",
"const": 256
},
{
"type": "number",
"const": 512
},
{
"type": "number",
"const": 1024
},
{
"type": "number",
"const": 2048
}
]
}
},
"required": [
"mode",
"tier"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "auto"
},
"maxProjectedWidthRatio": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 64
},
"maxProjectedHeightRatio": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 64
},
"minVisibleSourceWidthRatio": {
"default": 1,
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
},
"minVisibleSourceHeightRatio": {
"default": 1,
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": [
"mode",
"maxProjectedWidthRatio",
"maxProjectedHeightRatio",
"minVisibleSourceWidthRatio",
"minVisibleSourceHeightRatio"
],
"additionalProperties": false
}
],
"type": "object"
}
},
"required": [
"kind",
"required"
],
"additionalProperties": false
}
},
"graphics": {
"type": "object",
"properties": {
"api": {
"type": "string",
"enum": [
"canvas2d",
"webgl",
"webgl2",
"webgpu"
]
},
"required": {
"type": "boolean",
"const": true
},
"accelerationPreference": {
"type": "string",
"enum": [
"hardware-preferred",
"software-allowed"
]
}
},
"required": [
"api",
"required",
"accelerationPreference"
],
"additionalProperties": false
},
"alphaPolicy": {
"type": "string",
"enum": [
"requires-transparency",
"allows-opaque"
]
}
},
"required": [
"version",
"runtime",
"hfContract",
"kind",
"assets",
"graphics",
"alphaPolicy"
],
"additionalProperties": false
},
"definition": {
"type": "object",
"properties": {
"inputSchema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"defaults": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"brandBindings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"propPath": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"cssVar": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"fallback": {
"type": "string"
},
"brandKitPath": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"propPath",
"cssVar"
],
"additionalProperties": false
}
},
"timing": {
"type": "object",
"properties": {
"defaultDuration": {
"type": "object",
"properties": {
"frames": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"fps": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"frames",
"fps"
],
"additionalProperties": false
},
"minDurationSec": {
"type": "number",
"exclusiveMinimum": 0
},
"maxDurationSec": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"defaultDuration"
],
"additionalProperties": false
},
"capabilities": {
"minItems": 1,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "clip"
}
},
"required": [
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "cut-transition"
},
"protocol": {
"type": "string",
"const": "per-child"
}
},
"required": [
"kind",
"protocol"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "content-slots"
},
"slots": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"min": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"max": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"ownership": {
"type": "string",
"enum": [
"reference",
"exclusive"
]
},
"sizing": {
"type": "string",
"enum": [
"canvas",
"container"
]
}
},
"required": [
"name",
"min",
"max",
"ownership",
"sizing"
],
"additionalProperties": false
}
}
},
"required": [
"kind",
"slots"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "clip-wrapper"
},
"ordering": {
"type": "string",
"enum": [
"any",
"innermost"
]
},
"acceptsWrappedTargets": {
"type": "boolean"
}
},
"required": [
"kind",
"ordering",
"acceptsWrappedTargets"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "global-wrapper"
},
"scope": {
"type": "string",
"const": "media-lanes"
},
"ordering": {
"type": "string",
"enum": [
"any",
"innermost"
]
},
"acceptsWrappedTargets": {
"type": "boolean"
}
},
"required": [
"kind",
"scope",
"ordering",
"acceptsWrappedTargets"
],
"additionalProperties": false
}
],
"type": "object"
}
},
"mediaBindings": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"propPath": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"kind": {
"type": "string",
"enum": [
"image",
"video",
"visual"
]
},
"collection": {
"type": "string",
"enum": [
"scalar",
"array"
]
},
"cardinality": {
"type": "object",
"properties": {
"min": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"max": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"min"
],
"additionalProperties": false
},
"mimeTypes": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"mediaDemand": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "original"
}
},
"required": [
"mode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "tier"
},
"tier": {
"anyOf": [
{
"type": "number",
"const": 256
},
{
"type": "number",
"const": 512
},
{
"type": "number",
"const": 1024
},
{
"type": "number",
"const": 2048
}
]
}
},
"required": [
"mode",
"tier"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "auto"
},
"maxProjectedWidthRatio": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 64
},
"maxProjectedHeightRatio": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 64
},
"minVisibleSourceWidthRatio": {
"default": 1,
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
},
"minVisibleSourceHeightRatio": {
"default": 1,
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": [
"mode",
"maxProjectedWidthRatio",
"maxProjectedHeightRatio",
"minVisibleSourceWidthRatio",
"minVisibleSourceHeightRatio"
],
"additionalProperties": false
}
],
"type": "object"
}
},
"required": [
"name",
"propPath",
"kind",
"collection",
"cardinality"
],
"additionalProperties": false
}
},
"preview": {
"type": "object",
"properties": {
"params": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"format": {
"$ref": "#/$defs/Format"
},
"assets": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"anyOf": [
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"pattern": "^https:\\/\\/.*"
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"mimeType": {
"type": "string",
"minLength": 1
},
"frameRate": {
"type": "number",
"exclusiveMinimum": 0
},
"durationSec": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"url",
"sha256",
"mimeType"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mediaId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"mimeType": {
"type": "string",
"minLength": 1
},
"frameRate": {
"type": "number",
"exclusiveMinimum": 0
},
"durationSec": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"mediaId",
"sha256",
"mimeType"
],
"additionalProperties": false
}
]
}
},
"mediaBindings": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"pattern": "^https:\\/\\/.*"
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"mimeType": {
"type": "string",
"minLength": 1
},
"frameRate": {
"type": "number",
"exclusiveMinimum": 0
},
"durationSec": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"url",
"sha256",
"mimeType"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mediaId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"mimeType": {
"type": "string",
"minLength": 1
},
"frameRate": {
"type": "number",
"exclusiveMinimum": 0
},
"durationSec": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"mediaId",
"sha256",
"mimeType"
],
"additionalProperties": false
}
]
}
}
}
},
"additionalProperties": false
}
},
"required": [
"inputSchema",
"defaults",
"brandBindings",
"timing",
"capabilities"
],
"additionalProperties": false
}
},
"required": [
"version",
"componentId",
"template",
"manifest",
"definition"
],
"additionalProperties": false
},
"registryProvenance": {
"type": "object",
"properties": {
"receiptRef": {
"type": "object",
"properties": {
"bundleSha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"bundleBytes": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 134217728
},
"format": {
"type": "string",
"const": "cueframe-registry-provenance-v1"
},
"receiptId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"bundleSha256",
"bundleBytes",
"format",
"receiptId"
],
"additionalProperties": false
},
"adaptationReceiptRef": {
"type": "object",
"properties": {
"format": {
"type": "string",
"const": "cueframe-registry-adaptation-v1"
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"byteLength": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 134217728
}
},
"required": [
"format",
"sha256",
"byteLength"
],
"additionalProperties": false
}
},
"required": [
"receiptRef"
],
"additionalProperties": false
},
"expectedHeadVersionId": {
"description": "Exact source head observed before adoption, editing or rollback. A changed head refuses the write; project placements remain pinned unless explicitly guarded below.",
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"projectId": {
"description": "A project whose explicitly named composition moves its placements atomically with the source write. Requires compositionId and concurrency.",
"type": "string",
"minLength": 1
},
"compositionId": {
"description": "The exact composition observed by the caller. Required with projectId and concurrency.",
"type": "string",
"minLength": 1
},
"concurrency": {
"description": "Caller-observed placement guard, required with projectId and compositionId: a placement update without it is refused with 428 precondition_required. Atomic library edits with placement changes require explicit supported invocation admission.",
"$ref": "#/$defs/CompositionConcurrency"
}
},
"additionalProperties": false,
"$defs": {
"CompositionConcurrency": {
"oneOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const"
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://artifacts.apis.io/cueframe-ai/json-schema/cueframe-ai-component-update-request-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/cueframe-ai-component-update-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.