MindVideo API
Models / Video generation / wan2-7-videoedit

Wan 2.7 Videoedit

Wan 2.7 VideoEdit supports AI video editing and is suitable for style transfer, content replacement, and element enhancement on existing videos.

Video editingReference imageGeneral video
1

Calling the API

Submit a task to MindVideo with your platform model slug. The response includes a request ID, task ID, normalized status, and estimated cost.

For production retries, send a unique Idempotency-Key per business request. Reusing the same key with the same payload returns the original task without charging again; reusing it with different input returns 409.

Submit a request

curl -X POST https://api.mindvideo.ai/api/v1/tasks \
  -H "Authorization: Bearer mv_live_xxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: task_$(date +%s)" \
  -d '{
  "model": "wan2-7-videoedit",
  "input": {
    "prompt": "将背景替换为雪山场景。",
    "resolution": "1080P",
    "duration": 0,
    "video_urls": [
      "https://example.com/original.mp4"
    ]
  }
}'
2

Authentication

Every server-side request must include an API key in the Authorization header. Keys can be created, disabled, and deleted from the dashboard.

Keep API keys server-sideDo not expose production API keys in browser code. Route user requests through your own backend before calling MindVideo.
3

Queue and polling

The platform maps runtime states into queued, processing, succeeded, failed, or cancelled so clients do not depend on model-specific fields.

Submit a request

Create an async generation task and poll the task endpoint for terminal status updates.

Fetch status

curl https://api.mindvideo.ai/api/v1/tasks/task_demo_model \
  -H "Authorization: Bearer mv_live_xxx"

Fetch task events

curl https://api.mindvideo.ai/api/v1/tasks/task_demo_model/events \
  -H "Authorization: Bearer mv_live_xxx"

Read the result

{
  "request_id": "req_demo_model",
  "task_id": "task_demo_model",
  "status": "succeeded",
  "cost_estimate": 0.1233,
  "cost_actual": 0.1233,
  "output": {
    "videos": [
      {
        "url": "https://example.com/output/demo.mp4"
      }
    ]
  }
}
4

Files

Inputs can reference hosted files or compact data URIs depending on model constraints. Production apps should prefer stable hosted URLs.

Data URI

Useful for small test assets and local playground experiments.

Hosted URL

Recommended for production workloads, retries, and larger image or video inputs.

5

Schema

Input

{
  "type": "object",
  "required": [
    "video_urls"
  ],
  "properties": {
    "seed": {
      "type": "integer",
      "title": "Seed",
      "minimum": 0,
      "x-playground": {
        "advanced": true
      }
    },
    "size": {
      "enum": [
        "16:9",
        "9:16",
        "1:1",
        "4:3",
        "3:4"
      ],
      "type": "string",
      "title": "Aspect ratio",
      "x-playground": {
        "advanced": true
      }
    },
    "prompt": {
      "type": "string",
      "title": "Prompt",
      "maxLength": 5000,
      "description": "Editing instruction. If omitted, the provider performs default style transfer.",
      "x-playground": {
        "rows": 6,
        "widget": "textarea"
      }
    },
    "duration": {
      "enum": [
        0,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10
      ],
      "type": "integer",
      "title": "Duration",
      "default": 0,
      "description": "0 keeps the original video duration. 2-10 trims from the start."
    },
    "metadata": {
      "type": "object",
      "title": "Metadata",
      "properties": {
        "audio_setting": {
          "enum": [
            "auto",
            "origin"
          ],
          "type": "string",
          "default": "auto"
        }
      },
      "x-playground": {
        "advanced": true
      },
      "additionalProperties": false
    },
    "watermark": {
      "type": "boolean",
      "title": "Watermark",
      "default": false
    },
    "image_urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Reference images",
      "maxItems": 4,
      "minItems": 1,
      "description": "Optional style or appearance reference images, up to 4 items.",
      "x-playground": {
        "accept": "image/*",
        "widget": "file-upload",
        "advanced": true,
        "multiple": true,
        "uploadKind": "image"
      }
    },
    "resolution": {
      "enum": [
        "720P",
        "1080P"
      ],
      "type": "string",
      "title": "Resolution",
      "default": "1080P"
    },
    "video_urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Original video",
      "maxItems": 1,
      "minItems": 1,
      "description": "Original video URL array. only uses the first item.",
      "x-playground": {
        "accept": "video/*",
        "widget": "file-upload",
        "uploadKind": "video"
      }
    },
    "prompt_extend": {
      "type": "boolean",
      "title": "Prompt extend",
      "default": true
    },
    "negative_prompt": {
      "type": "string",
      "title": "Negative prompt",
      "maxLength": 500,
      "x-playground": {
        "rows": 3,
        "widget": "textarea",
        "advanced": true
      }
    }
  },
  "additionalProperties": false
}

Output example

{
  "request_id": "req_demo_model",
  "task_id": "task_demo_model",
  "status": "succeeded",
  "cost_estimate": 0.1233,
  "cost_actual": 0.1233,
  "output": {
    "videos": [
      {
        "url": "https://example.com/output/demo.mp4"
      }
    ]
  }
}