Skip to main content
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "wan2.6-i2v-flash",
    "prompt": "The person turns around and smiles",
    "image_urls": ["https://example.com/portrait.jpg"],
    "resolution": "1080p",
    "duration": 5
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
    }
  ]
}
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "wan2.6-i2v-flash",
    "prompt": "The person turns around and smiles",
    "image_urls": ["https://example.com/portrait.jpg"],
    "resolution": "1080p",
    "duration": 5
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
    }
  ]
}

Authentication

Authorization
string
required
All endpoints require Bearer Token authenticationGet API Key:Visit the API Key Management Page to get your API KeyAdd to request header:
Authorization: Bearer YOUR_API_KEY

Request Parameters

model
string
required
Video generation model name, fixed as wan2.6-i2v-flash
image_urls
array<string>
required
Reference image URL array (only 1 first-frame image supported)Supports publicly accessible image URLs or Base64 encoding (data:image/png;base64,...)Example: ["https://example.com/image.jpg"]
Image requirements:
  • Format: JPEG, JPG, PNG (no transparency), BMP, WEBP
  • Resolution: width/height range 240-8000 pixels
  • Size: ≤ 10MB
prompt
string
Video content descriptionOptional but recommended for image-to-video, describes expected actions and effectsClearly specify subject, action, camera and style for better resultsExample: "The person in the image smiles and waves, camera slowly zooms in"
negative_prompt
string
Negative prompt, describes unwanted contentMaximum 500 charactersExample: "blurry, low quality, distorted"
resolution
string
default:"1080p"
Video resolutionOptions:
  • 720p - HD
  • 1080p - FHD (default)
Default: 1080p
Resolution directly affects pricing, 1080p is more expensive than 720p. Aspect ratio is determined by the input image.
duration
integer
default:"5"
Video duration (seconds)Supported range: 2 to 15 seconds (integer)Default: 5
audio
boolean
default:"true"
Whether to generate audioSet to true: automatically generates matching background music/sound effects (default)Set to false: outputs silent videoDefault: true
audio_url
string
Custom audio URL (wav/mp3, 3-30 seconds, ≤ 15MB)Lower priority than audio: ignored when audio=falseIf audio is longer than video duration, it will be trimmed; if shorter, the remaining part will be silent
Audio file requirements:
  • Format: wav, mp3
  • Duration: 3-30 seconds
  • Size: ≤ 15MB
prompt_extend
boolean
default:"true"
Whether to enable smart prompt rewritingSignificantly improves results for shorter prompts, but increases processing timeDefault: true
shot_type
string
Shot type, requires prompt_extend=trueOptions:
  • single - Single shot (default), outputs a continuous single-shot video
  • multi - Multi-shot, outputs a narrative video with multiple shot transitions
shot_type has higher priority than prompt. Even if the prompt mentions “multi-shot”, setting single will still output a single shot.
seed
integer
Random seed (≥0), specifying the same seed can reproduce similar resultsExample: 12345
watermark
boolean
default:"false"
Whether to add an “AI Generated” watermark (bottom right)Default: false

Audio Control

Parameter CombinationResult
No audio or audio_urlAuto-generated audio (default)
audio_url: "https://..."Use specified audio
audio: falseSilent video
audio: false + audio_url: "..."Silent video (audio has higher priority)

Response

code
integer
Response status code, 200 on success
data
array
Response data array

Use Cases

Case 1: Minimal Request

{
  "model": "wan2.6-i2v-flash",
  "image_urls": ["https://example.com/image.jpg"]
}

Case 2: Full Parameters

{
  "model": "wan2.6-i2v-flash",
  "prompt": "The person in the image smiles and waves, camera slowly zooms in",
  "image_urls": ["https://example.com/image.jpg"],
  "negative_prompt": "blurry, low quality, distorted",
  "resolution": "1080p",
  "duration": 10,
  "seed": 12345,
  "prompt_extend": true,
  "shot_type": "multi",
  "audio": true,
  "watermark": false
}

Case 3: Custom Audio

{
  "model": "wan2.6-i2v-flash",
  "prompt": "Person dancing to the music",
  "image_urls": ["https://example.com/dancer.jpg"],
  "audio_url": "https://example.com/music.mp3",
  "resolution": "1080p",
  "duration": 10
}

Case 4: Silent Video

{
  "model": "wan2.6-i2v-flash",
  "prompt": "Flower slowly blooming",
  "image_urls": ["https://example.com/flower.jpg"],
  "audio": false,
  "resolution": "720p",
  "duration": 5
}

Case 5: Effect Template

{
  "model": "wan2.6-i2v-flash",
  "image_urls": ["https://example.com/person.jpg"],
  "template": "flying",
  "resolution": "720p"
}

Case 6: Base64 Image

{
  "model": "wan2.6-i2v-flash",
  "prompt": "Make the cat stand up and walk",
  "image_urls": ["data:image/png;base64,iVBORw0KGgo..."],
  "duration": 5
}
Query Task ResultsVideo generation is an asynchronous task that returns a task_id upon submission. Use the Get Task Status endpoint to query generation progress and results.