POST
/
v1
/
tasks
Unified Tasks API
curl --request POST \
  --url https://api.unifically.com/v1/tasks \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "<string>",
  "input": {},
  "callback_url": "<string>",
  "dry_run": true
}
'
{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "abc123def456",
    "status": "pending"
  }
}
The /v1/tasks endpoint provides a unified interface for all AI generation models (video, image, audio).
This is the unified API for all AI generation models. Use this endpoint for all integrations.

Create Task

POST /v1/tasks Creates a new generation task for any supported model.

Request

curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "google/veo-3.1-fast",
    "input": {
      "prompt": "A cat walking on the beach at sunset",
      "resolution": "1080p"
    },
    "callback_url": "https://your-server.com/webhook"
  }'

Request Parameters

model
string
required
Model identifier in provider/model-name format. See Available Models below.
input
object
required
Model-specific input parameters. See Input Parameters for details.
callback_url
string
Optional webhook URL. When provided, the API sends a POST request to this URL when the task completes or fails. See Webhooks & Callbacks for payload formats and details.
dry_run
boolean
Optional. When set to true, the request is validated and the cost is calculated without actually creating a task or deducting from your balance. Useful for previewing the price of a request before committing.

Response

{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "abc123def456",
    "status": "pending"
  }
}

Dry Run

To check the cost of a request without creating a task or deducting from your balance, set dry_run to true:
curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "google/veo-3.1-fast",
    "input": {
      "prompt": "A cat walking on the beach at sunset",
      "resolution": "1080p"
    },
    "dry_run": true
  }'
{
  "code": 200,
  "success": true,
  "data": {
    "cost": 0.40
  }
}

Get Task Status

GET /v1/tasks/:task_id Retrieves the status and output of a task.

Request

curl https://api.unifically.com/v1/tasks/abc123def456 \
  -H "Authorization: Bearer YOUR_API_KEY"

Path Parameters

task_id
string
required
The unique task ID returned from the create task endpoint

Response (Processing)

{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "abc123def456",
    "status": "processing"
  }
}

Response (Completed)

{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "abc123def456",
    "status": "completed",
    "output": {
      "video_url": "https://cdn.unifically.com/outputs/abc123.mp4"
    }
  }
}

Available Models

Video Generation

ModelDescription
google/veo-3.1-fastGoogle Veo 3.1 Fast (720p, 1080p, 4k)
google/veo-3.1-qualityGoogle Veo 3.1 Quality (720p, 1080p, 4k)
openai/sora-2OpenAI Sora 2 (5s, 10s, 15s, 20s)
openai/sora-2-proOpenAI Sora 2 Pro (10s, 15s, 20s, 25s)
hailuo/minimax-2.0Minimax Hailuo 2.0
hailuo/minimax-2.3Minimax Hailuo 2.3
hailuo/minimax-2.3-fastMinimax Hailuo 2.3 Fast
higgsfield-ai/liteHiggsfield Lite
higgsfield-ai/turboHiggsfield Turbo
higgsfield-ai/standardHiggsfield Standard
higgsfield-ai/cinematic-studio-videoCinematic Studio Video
kuaishou/kling-3.0-omni-videoKling v3.0 Omni Video
kuaishou/kling-3.0-omni-video-editKling v3.0 Omni Video Edit
kuaishou/kling-o1-videoKling O1 Video
kuaishou/kling-2.6Kling v2.6
kuaishou/kling-2.5Kling v2.5
kuaishou/kling-2.1Kling v2.1
kuaishou/kling-2.1-masterKling v2.1 Master
kuaishou/kling-2.5-turbo-proKling v2.5 Turbo Pro
kuaishou/kling-2.6-motion-controlKling v2.6 Motion Control
kuaishou/kling-3.0-motion-controlKling v3.0 Motion Control
topaz-labs/video-upscaleTopaz Video Upscale

Image Generation

ModelDescription
google/nano-bananaNano Banana
google/nano-banana-proNano Banana Pro
openai/gpt-image-1GPT Image 1 (low, medium, high quality)
openai/gpt-image-1.5GPT Image 1.5 (low, medium, high quality)
higgsfield-ai/cinematic-studio-imageCinematic Studio Image
black-forest-labs/flux.2-proFlux.2 Pro
black-forest-labs/flux.2-flexFlux.2 Flex
black-forest-labs/flux.2-maxFlux.2 Max
kuaishou/kling-o1-imageKling O1 Image
kuaishou/kling-3.0-omni-imageKling v3.0 Omni Image
topaz-labs/image-upscaleTopaz Image Upscale
topaz-labs/image-generativeTopaz Image Generative

Audio Generation

ModelDescription
suno-ai/musicSuno Music Generation
suno-ai/add-vocalsAdd Vocals to Track
suno-ai/add-instrumentalAdd Instrumental
suno-ai/extendExtend Audio
suno-ai/coverCreate Cover
suno-ai/stemsExtract Stems
suno-ai/stems-allExtract All Stems
suno-ai/lyricsGenerate Lyrics
suno-ai/wavWAV Export
higgsfield-ai/speakSpeak (standard, high quality)
higgsfield-ai/ttsText-to-Speech
elevenlabs/text-to-speechElevenLabs Text-to-Speech
elevenlabs/text-to-dialogueElevenLabs Multi-Voice Dialogue
elevenlabs/sound-effectElevenLabs Sound Effects
elevenlabs/voice-isolationElevenLabs Voice Isolation
elevenlabs/speech-to-textElevenLabs Speech-to-Text

Model Parameters

All tasks support callback_url (outside the input object) for webhook notifications. See Webhooks & Callbacks for full payload formats and best practices.

Google Veo 3.1

Models: google/veo-3.1-fast, google/veo-3.1-quality
ParameterTypeRequiredDescription
promptstringYesText description of the video
aspect_ratiostringNo16:9 or 9:16
start_image_urlstringNoStarting frame image URL
end_image_urlstringNoEnding frame image URL
resolutionstringNo720p (default), 1080p, 4k
seedintegerNoSeed for reproducibility
Pricing: Fast: 720p 0.30,1080p0.30, 1080p 0.40, 4k 0.50Quality:720p0.50 | Quality: 720p 0.60, 1080p 0.70,4k0.70, 4k 0.80

OpenAI Sora 2

Models: openai/sora-2, openai/sora-2-pro
ParameterTypeRequiredDescription
promptstringYesText description of the video
durationintegerNoSora 2: 5, 10, 15, 20s / Pro: 10, 15, 20, 25s
aspect_ratiostringNo16:9 or 9:16
image_urlstringNoReference image URL
cameo_video_urlstringNoCameo character video (max 4 seconds)
character_promptstringNoDescription of cameo character
safety_instructionstringNoSafety guidance for content
Pricing: Sora 2: 10s 0.10,15s0.10, 15s 0.15, 25s 0.40$

Minimax Hailuo

Models: hailuo/minimax-2.0, hailuo/minimax-2.3, hailuo/minimax-2.3-fast
ParameterTypeRequiredDescription
promptstringYes*Max 2000 chars. *Required if no start_image_url
start_image_urlstringYes*Image URL (auto-uploaded). *Required if no prompt (required for 2.3-fast)
end_image_urlstringNoEnd frame image URL (minimax-2.0 only, 768p/1080p)
durationintegerNo6 or 10 seconds. 1080p only supports 6
resolutionstringNo"512p" (2.0 I2V only), "768p" (default), "1080p"
prompt_optimizationbooleanNoLet MiniMax optimize prompt
Pricing: minimax-2.0 0.17,minimax2.30.17, minimax-2.3 0.17, minimax-2.3-fast $0.11

Higgsfield Video

Models: higgsfield-ai/lite, higgsfield-ai/turbo, higgsfield-ai/standard
ParameterTypeRequiredDescription
promptstringYesText description
start_image_urlstringYesStarting frame image URL
motion_idstringYesMotion preset ID (UUID)
end_image_urlstringNoEnding frame image URL
enhance_promptbooleanNoEnhance prompt with AI
seedintegerNoSeed for reproducibility
Pricing: Lite 0.15,Turbo0.15, Turbo 0.21, Standard $0.30

Higgsfield Cinematic Studio Video

Model: higgsfield-ai/cinematic-studio-video
ParameterTypeRequiredDescription
promptstringNoText description
start_image_urlstringYesStarting frame image URL
end_image_urlstringNoEnding frame (disables preset_id, sound, slow_motion)
durationintegerNo5 or 10 seconds
aspect_ratiostringNo1:1, 3:4, 2:3, 9:16, 3:2, 4:3, 16:9, 21:9
preset_idstringNoCamera movement preset ID
soundbooleanNoEnable AI-generated sound
slow_motionbooleanNoEnable slow motion effect
seedintegerNo0-999999 for reproducibility
Pricing: 5s+sound 0.16,5s0.16, 5s 0.10, 10s+sound 0.36,10s0.36, 10s 0.20

Kling v2.6

Model: kuaishou/kling-2.6
ParameterTypeRequiredDescription
promptstringYes**Required for text-to-video, optional for image-to-video
start_image_urlstringNoStart frame URL (enables image-to-video)
end_image_urlstringNoEnd frame URL
durationintegerNo5 or 10 seconds
aspect_ratiostringNo"16:9", "9:16", "1:1". Text-to-video only
modestringNo"std" or "pro"
enable_audiobooleanNoEnable audio generation
Pricing: 0.032/s(5s:0.032/s (5s: 0.16, 10s: $0.32)

Kling v2.5

Model: kuaishou/kling-2.5 Pro-only model with 1080p output. Supports end frame.
ParameterTypeRequiredDescription
promptstringYes**Required for text-to-video, optional for image-to-video
start_image_urlstringNoStart frame URL (enables image-to-video)
end_image_urlstringNoEnd frame URL
durationintegerNo5 or 10 seconds
aspect_ratiostringNo"16:9", "9:16", "1:1". Text-to-video only
modestringNoPro only
enable_audiobooleanNoEnable audio generation
Pricing: 5s 0.27,10s0.27, 10s 0.53

Kling v2.1

Model: kuaishou/kling-2.1 Image-to-video only. Supports end frame.
ParameterTypeRequiredDescription
promptstringNoText description (optional)
start_image_urlstringYesStarting image URL
end_image_urlstringNoEnd frame URL
durationintegerNo5 or 10 seconds
modestringNo"std" or "pro"
enable_audiobooleanNoEnable audio generation
Pricing: Std (720p): 5s 0.13,10s0.13, 10s 0.27 | Pro (1080p): 5s 0.27,10s0.27, 10s 0.53

Kling v2.1 Master

Model: kuaishou/kling-2.1-master Pro-only model with 1080p output. No end image support.
ParameterTypeRequiredDescription
promptstringYes**Required for text-to-video, optional for image-to-video
start_image_urlstringNoStarting image URL (enables image-to-video)
durationintegerNo5 or 10 seconds
aspect_ratiostringNo"16:9", "9:16", "1:1". Text-to-video only
modestringNoPro only
enable_audiobooleanNoEnable audio generation
Pricing: 5s 0.40,10s0.40, 10s 0.80

Kling O1 Video (Omni)

Model: kuaishou/kling-o1-video
ParameterTypeRequiredDescription
promptstringYesText description
modestringNo"std" or "pro"
durationintegerNo3–10 seconds
aspect_ratiostringNo"16:9", "9:16", "1:1"
countintegerNo1–4
image_urlsstring[]NoUp to 7 image URLs, ref as @image_1 in prompt
elementsElementInput[]NoUp to 7, IMAGE only. Ref as @element_1 in prompt
start_image_urlstringNoStart frame URL
end_image_urlstringNoEnd frame URL
video_urlstringNoReference video URL, ref as @video_1
video_modestringNo"reference" or "transform"
keep_audiobooleanNoKeep audio from reference video
Pricing: 0.048/s(5s:0.048/s (5s: 0.24, 10s: $0.48)

Kling v3.0 Omni Video

Model: kuaishou/kling-3.0-omni-video Same as O1 Video with these differences: duration 3–15, aspect_ratio adds "auto", elements support IMAGE + VIDEO, multi_shot supported (2–6 shots, total 3–15s). Pricing: 5s 720p 0.14/0.14/0.16 (sound off/on), 1080p 0.16/0.16/0.20; 10s 720p 0.26/0.26/0.30, 1080p 0.30/0.30/0.40

Kling v3.0 Omni Video Edit

Model: kuaishou/kling-3.0-omni-video-edit
ParameterTypeRequiredDescription
video_urlstringYesVideo to reference or transform
promptstringYesText description
video_modestringNo"reference" or "transform"
keep_audiobooleanNoKeep original video audio
modestringNo"std" or "pro"
aspect_ratiostringNo"16:9", "9:16", "1:1"
image_urlsstring[]NoUp to 4 reference image URLs
elementsElementInput[]NoUp to 4, IMAGE + VIDEO
Duration is locked to the input video length. Pricing: std (720p) 0.04/s,pro(1080p)0.04/s, pro (1080p) 0.0533/s

Kling v2.6 Motion Control

Model: kuaishou/kling-2.6-motion-control
ParameterTypeRequiredDescription
image_urlstringYesImage with person (auto-uploaded to Kling)
video_urlstringYesMotion reference video (auto-uploaded to Kling)
promptstringNoText guidance
keep_audiobooleanNoPreserve audio from motion video
character_orientationstringNo"video" or "image"
modestringNo"std" or "pro"
Pricing: 720p 0.01/s,1080p0.01/s, 1080p 0.0225/s

GPT Image

Models: openai/gpt-image-1, openai/gpt-image-1.5
ParameterTypeRequiredDescription
promptstringYesText description
image_urlsarrayNoReference images
aspect_ratiostringNo1:1, 2:3, 3:2
qualitystringNolow, medium, high
Pricing: GPT Image 1: low 0.01,medium0.01, medium 0.02, high 0.041.5:low0.04 | 1.5: low 0.02, medium 0.03,high0.03, high 0.05

Nano Banana

Models: google/nano-banana, google/nano-banana-pro
ParameterTypeRequiredDescription
promptstringYesText description
aspect_ratiostringYes1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
image_urlsarrayNoReference images
resolutionstringNoPro only: 1k, 2k, 4k
Pricing: Nano Banana 0.03Pro0.03 | Pro 0.06

Flux.2

Models: black-forest-labs/flux.2-pro, black-forest-labs/flux.2-flex, black-forest-labs/flux.2-max
ParameterTypeRequiredDescription
promptstringYesText description
image_urlsarrayNoReference images (Pro/Max: 8, Flex: 10)
aspect_ratiostringNoauto, 1:1, 4:3, 16:9, 3:2, 2:3, 9:16, 3:4 (Max also: 5:4, 21:9)
qualitystringNo1K or 2K
stepsintegerNoFlex only: 1-50 (more = higher quality)
cfgnumberNoFlex only: 1.5-10 (higher = follows prompt more strictly)
Pricing: Pro: 1K 0.02,2K0.02, 2K 0.03 | Flex: 1K 0.04,2K0.04, 2K 0.06 | Max: 1K 0.05,2K0.05, 2K 0.07

Higgsfield Cinematic Studio Image

Model: higgsfield-ai/cinematic-studio-image
ParameterTypeRequiredDescription
promptstringYesText description
resolutionstringNo1k, 2k, 4k (default: 2k)
image_urlsarrayNoReference images (max 4)
camera_model_idstringNoCamera model setting ID
camera_lens_idstringNoLens type setting ID
camera_aperture_idstringNoAperture setting ID
camera_focal_length_idstringNoFocal length setting ID
Pricing: 1k/2k 0.03,4k0.03, 4k 0.06

Suno Music

Model: suno-ai/music
ParameterTypeRequiredDescription
mvstringYesModel version: chirp-v3-5, chirp-v4, chirp-auk, chirp-bluejay, chirp-crow
custombooleanYesfalse for simple mode, true for custom mode
gpt_description_promptstringNoSimple mode: song description with lyrics
promptstringNoCustom mode: detailed lyrics/prompt
tagsstringNoCustom mode: genre/style tags
titlestringNoSong title
make_instrumentalbooleanNoGenerate instrumental only
negative_tagsstringNoCustom mode: styles to avoid
Pricing: $0.06 per generation

Suno Audio Operations

Models: suno-ai/add-vocals, suno-ai/add-instrumental, suno-ai/extend, suno-ai/cover
ParameterTypeRequiredDescription
mvstringYesModel version
clip_idstringYes*Existing clip ID
audio_urlstringYes*Audio file URL (alternative to clip_id)
custombooleanYesSimple or custom mode
gpt_description_promptstringNoSimple mode description
promptstringNoCustom mode prompt
continue_atnumberNoExtend: time in seconds to continue from
start_snumberNoStart time for overlay
end_snumberNoEnd time for overlay
Pricing: $0.06 per operation

Suno Stems

Models: suno-ai/stems, suno-ai/stems-all
ParameterTypeRequiredDescription
clip_idstringYesClip ID to extract stems from
titlestringNoTitle for extraction
Pricing: stems 0.05,stemsall0.05, stems-all 0.20

Suno Lyrics

Model: suno-ai/lyrics
ParameterTypeRequiredDescription
promptstringYesDescription of lyrics to generate
mvstringYesLyrics model: remi-v1 or default
Pricing: $0.012 per generation

Higgsfield TTS

Model: higgsfield-ai/tts
ParameterTypeRequiredDescription
voice_idstringYesVoice ID
promptstringYesText to convert to speech
sound_idstringNoBackground sound ID
similarity_boostintegerNo0-100 (default 90)
styleintegerNo0-100 (default 60)
speednumberNo0-1.2 (default 1.1)
stabilityintegerNo0-100 (default 30)
Pricing: $0.05 per generation

Higgsfield Speak

Model: higgsfield-ai/speak
ParameterTypeRequiredDescription
image_urlstringYesPerson/avatar image URL
audio_urlstringYes*Audio file URL
audio_task_idstringYes*TTS task ID (alternative to audio_url)
promptstringYesText description for video
qualitystringNostandard or high
enhance_promptbooleanNoEnhance prompt (default true)
seedintegerNoSeed for reproducibility
Pricing: standard 0.25,high0.25, high 0.35

Rate Limiting

Endpoint TypeLimitBan Duration
Generation (POST)10 req/sec60 seconds
Polling (GET)10 req/sec60 seconds

Rate Limit Headers

X-RateLimit-Limit: 10
X-RateLimit-Remaining: 8
X-RateLimit-Reset: 1706356800
Retry-After: 45  (only when banned)

Rate Limit Error Response

{
  "success": false,
  "code": 429,
  "data": {
    "message": "You have been ratelimited, this temporary restriction will be lifted in: 45 seconds",
    "code": "rate_limit_exceeded"
  }
}

Error Responses

CodeDescription
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
402Payment Required - Insufficient balance
404Not Found - Task or model not found
429Too Many Requests - Rate limited
500Internal Server Error

Error Response Format

{
  "success": false,
  "code": 400,
  "data": {
    "message": "Description of the error",
    "code": "error_code",
    "request_id": "abc123"
  }
}