CraftStory · Schema

CraftStory2Create

CompanyAI VideoVideo GenerationAvatarsGenerative AILip SyncMCP

Properties

Name Type Description
id string
name stringnull
image string Driving photo: file upload or URL. Provide image or scene_id (if both, scene_id wins).
scene_id stringnull Avatar scene id (from GET /craftstory-2/avatars/{id}/scenes/); its image becomes the driving frame. Provide scene_id or image (if both, scene_id wins).
audios array
gestures string How much the avatar moves: normal (default), calm, expressive.
resolution string Output size WIDTH_HEIGHT: 9:16 / 16:9 at 480p or 720p, or 768_960 for 4:5 portrait (audio under 30 minutes). A 1.5x upscale is available via /upscale/ afterwards.
lipsync_mode string Lipsync engine: sync_so (default, same price), craftstory (built-in), empty (off).
user_prompt string Optional motion / scene hint in free text (gestures, expressions, camera).
avatar_id stringnull Optional custom avatar id (from GET /craftstory-2/avatars/); its trained model drives identity.
faceswap boolean Optional — defaults to true (recommended). With avatar_id the default flips to false (the trained avatar already carries identity); an explicit value is honoured either way.
credits integer
View JSON Schema on GitHub

JSON Schema

craftstory-com-craft-story2-create-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/craftstory-com/json-schema/craftstory-com-craft-story2-create-schema.json",
  "title": "CraftStory2Create",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/craftstory-com-openapi.yml#/components/schemas/CraftStory2Create",
  "required": [
    "audios",
    "resolution"
  ],
  "type": "object",
  "properties": {
    "id": {
      "title": "Id",
      "type": "string",
      "format": "uuid",
      "readOnly": true
    },
    "name": {
      "title": "Name",
      "type": [
        "string",
        "null"
      ],
      "maxLength": 512
    },
    "image": {
      "title": "Image",
      "description": "Driving photo: file upload or URL. Provide image or scene_id (if both, scene_id wins).",
      "type": "string",
      "readOnly": true,
      "format": "uri"
    },
    "scene_id": {
      "title": "Scene id",
      "description": "Avatar scene id (from GET /craftstory-2/avatars/{id}/scenes/); its image becomes the driving frame. Provide scene_id or image (if both, scene_id wins).",
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    },
    "audios": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "uniqueItems": true
    },
    "gestures": {
      "title": "Gestures",
      "description": "How much the avatar moves: normal (default), calm, expressive.",
      "type": "string",
      "enum": [
        "normal",
        "calm",
        "expressive"
      ],
      "default": "normal"
    },
    "resolution": {
      "title": "Resolution",
      "description": "Output size WIDTH_HEIGHT: 9:16 / 16:9 at 480p or 720p, or 768_960 for 4:5 portrait (audio under 30 minutes). A 1.5x upscale is available via /upscale/ afterwards.",
      "type": "string",
      "enum": [
        480832,
        832480,
        7201280,
        1280720,
        768960
      ]
    },
    "lipsync_mode": {
      "title": "Lipsync mode",
      "description": "Lipsync engine: sync_so (default, same price), craftstory (built-in), empty (off).",
      "type": "string",
      "enum": [
        "craftstory",
        "sync_so",
        "empty"
      ],
      "default": "sync_so"
    },
    "user_prompt": {
      "title": "User prompt",
      "description": "Optional motion / scene hint in free text (gestures, expressions, camera).",
      "type": "string",
      "maxLength": 1000
    },
    "avatar_id": {
      "title": "Avatar id",
      "description": "Optional custom avatar id (from GET /craftstory-2/avatars/); its trained model drives identity.",
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    },
    "faceswap": {
      "title": "Faceswap",
      "description": "Optional — defaults to true (recommended). With avatar_id the default flips to false (the trained avatar already carries identity); an explicit value is honoured either way.",
      "type": "boolean",
      "default": true
    },
    "credits": {
      "title": "Credits",
      "type": "integer",
      "readOnly": true
    }
  }
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/craftstory-com-craft-story2-create"
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.