DataEyesAI
Official SiteConsoleDocs HomeGetting StartedDeveloper ToolsAI Models API
Official SiteConsoleDocs HomeGetting StartedDeveloper ToolsAI Models API
  1. HappyHorse
  • OpenAI format (supports major original models)
    • Chat (Response)
      • Create Network Search
      • Create Model Response GPT-5 Enable Thinking
      • Create Function Call
      • Create Model Response
      • Create Model Response (Streaming Return)
      • Create Model Response (Control Thinking Length)
    • ChatGPT Interface
      • Audio
        • Audio to text gpt-4o-transcribe
        • GPT-4o-audio
        • Audio to text whisper-1
        • Audio to text gpt-4o-transcribe
        • Create voice gpt-4o-mini-tts
      • Chat
        • Create chat-based image recognition (non-streaming)
        • Create chat-based image recognition (streaming)
        • Create chat-based image recognition (streaming) best64
        • Official N test
        • Create structured output
        • Control the effort level of the inference model
        • Create chat function call
        • deepseek-ocr recognition
        • Create chat completion (non-stream)
      • Completions
        • ChatGPT automatic completion
        • Create completion
    • Image
      • Edit image
      • Create chat completion (streaming)
      • Create chat completion (qwen-mt-turbo)
      • Create chat completion with deepseek v3.1 level of reasoning (streaming)
    • Audio
      • Speech recognition
      • Speech synthesis
      • Official Function Calling invocation
      • Create chat-generated images (non-streaming)
    • Embedding
      • Text embeddings
  • Anthropic format
    • Chat
    • Chat(prompt cache)
    • Streaming response
    • Chat (deep reasoning)
    • Tool invocation (function call)
    • Analyze image
  • Google Gemini interface
    • Native format
      • Text-to-image + control over aspect ratio + clarity
      • Generate image
      • Text generation
      • Text generation - stream
      • Text generation + reasoning - stream
      • Image generation
      • Formatted output
      • Function call
      • Document understanding
      • URL context [native format]
      • Code execution
      • Video understanding
      • URL context
      • Video understanding - url [native format]
      • Imagen 4
      • Audio understanding
      • Embeddings
      • Chat
      • Edit image
    • Image-to-image Base64 request method
      • Multi-image fusion slice generation with gemini-3-pro-image-preview, controlling aspect ratio and clarity
      • Image editing
      • Single image gemini-3-pro-image-preview, controlling aspect ratio and clarity.
      • Image generation( gemini-2.5-flash-image)
      • Image generation gemini-2.5-flash-image, controlling aspect ratio.
      • Image understanding
    • Image-to-image URL request returns URL request format OpenAI
      • Single image generation with gemini-3-pro-image-preview, controlling aspect ratio and clarity.
      • Multi-image fusion slice generation with gemini-3-pro-image-preview, controlling aspect ratio and clarity.
      • Image understanding
  • NanoBanana
    • OpenAI request
      • Edit image
      • OpenAI image format
    • Gemini request
      • Generate image
      • Edit image
  • Midjourney format
    • Midjourney API Reference
    • Task query interface
    • Upload image
    • Get seed (Seed)
    • Submit Imagine task
    • Query tasks based on ID list
    • FaceSwap
    • Execute Action operation
    • /mj/submit/blend
    • Submit Describe task
    • Submit Modal
    • Refresh link
    • Edit image
    • Query task status by task ID
    • Get the seed of the task image
  • Doubao - Painting
    • doubao-seededit-3-0-i2i-250628
    • doubao-seedream-4-0-250828 - text-to-image
    • doubao-seedream-4-0-250828 - image-to-image
    • doubao-seedream-4-0-250828 - multi-image generation
  • Rerank Reordering Model
    • Rerank
  • Video Model
    • Grok Video Generation
      • 00-Overview
      • 01-Text-to-Video
      • 02-Image-to-Video
      • 03-Reference-to-Video
      • 04-Video-Editing
      • 05-Video-Extension
    • Seedance Video Generation
      • 00-Overview
      • 01-Create-Video-Generation-Task
      • 02-Query-Video-Generation-Task
      • 03-Query-Video-Generation-Task-List
      • 04-Cancel-or-Delete-Task
      • Seedance Private Asset Library API Documentation
    • MiniMax-H3 Video Generation
      • 00-Overview
      • 01-Create-Video-Generation
      • 02-Create-Video-Regeneration
      • 03-Create-H3-Context-IR
      • 04-Query-Task
      • 05-List-Tasks
      • 06-Cancel-or-Delete-Task
    • Hailuo Video Generation
      • 00-Overview
      • 01-Text-to-Video-T2V
      • 02-Image-to-Video-I2V
      • 03-First-Last-Frame-FL2V
      • 04-Subject-Reference-S2V
      • 05-Query-Task-Status
      • 06-Video-Download
      • 99-Appendix-Camera-Movement-and-Webhooks
    • Jimeng Video Generation
      • 00-Overview
      • 01-3.0-Pro-Video-Generation
      • 02-720P-Text-to-Video
      • 03-720P-Image-to-Video-First-Frame
      • 04-720P-Image-to-Video-Start-End-Frame
      • 05-720P-Image-to-Video-Camera
      • 06-1080P-Text-to-Video
      • 07-1080P-Image-to-Video-First-Frame
      • 08-1080P-Image-to-Video-Start-End-Frame
      • 09-Error-Codes
    • Kling AI Video Generation
      • 00-Overview
      • 01-Text-to-Video
      • 02-Image-to-Video
      • 03-Omni-Video
      • 04-Multi-Image-to-Video
      • 05-Motion-Control
      • 06-Multi-Elements
      • 07-Video-Extension
      • 08-Lip-Sync
      • 09-Avatar
      • 10-Text-to-Audio
      • 11-Video-to-Audio
      • 12-TTS
      • 13-Custom-Voices
      • 14-Image-Recognition
      • 15-Element-Management
      • 16-Video-Effects
    • Vidu Video Generation
      • 00-Overview
      • 01-Text-to-Video
      • 02-Image-to-Video
      • 03-Reference-to-Video
      • 04-Start-End-Frame
      • 05-Multi-Frame
      • 06-Scene-Template
      • 07-Template-Story
      • 08-Query-Tasks
    • HappyHorse
      • HappyHorse Text-to-Video
      • HappyHorse Image-to-Video (First Frame)
      • HappyHorse Reference-to-Video
      • HappyHorse Video Editing
    • Wan Video Generation
      • 00-Overview.md
      • 01-Text-to-Video
      • 02-Image-to-Video
      • 03-Reference-to-Video
      • 04-Video-Editing
      • 05-First-Last-Frame-to-Video
      • 06-Motion-Transfer-and-Character-Swap
      • 07-Digital-Human-Video
      • 08-VACE-Video-Editing
      • 09-Query-Task
  • Audio API
    • Audio API
    • Gemini TTS API
    • Google DeepMind Lyria API
    • Elevenlabs Speech to Text API Reference
    • Text-to-Music Suno
      • Task Submission
        • Generate Song (Inspiration Mode)
        • Generate Song (Custom Mode)
        • Generate Song (Continuation Mode)
        • Generate Song (Singer Style)
        • Generate Song (Secondary Creation from Uploaded Song)
        • Generate Song (Song Stitching)
        • Generate Lyrics
        • Song Stitching
      • Query Interface
        • Batch Retrieve Tasks
        • Query Single Task
  1. HappyHorse

HappyHorse Text-to-Video

HappyHorse Text-to-Video API Reference#

Provider: DataEyes
Base URL: https://platform.dataeyes.ai/ali
Version: v1
Last Updated: 2026-06-26

Overview#

The HappyHorse Text-to-Video API enables you to generate videos from text prompts using DataEyes' HappyHorse video generation models. The API follows an asynchronous task-based workflow: you submit a generation request and then poll for results until the task completes.

Supported Models#

Model IDDescription
happyhorse-1.1-t2vHappyHorse v1.1 Text-to-Video
happyhorse-1.0-t2vHappyHorse v1.0 Text-to-Video

Endpoint#

OperationMethodURL
Create TaskPOSThttps://platform.dataeyes.ai/ali/api/v1/services/aigc/video-generation/video-synthesis
Query ResultsGEThttps://platform.dataeyes.ai/ali/api/v1/tasks/{task_id}

Authentication#

All requests must include an API key in the Authorization header using the Bearer scheme:
Authorization: Bearer sk-xxxx

Workflow#

The Text-to-Video API uses an asynchronous two-step workflow:
                         +------------------+
                         |   Client         |
                         +--------+---------+
                                  |
                     Step 1: POST /video-synthesis
                     (prompt + parameters)
                                  |
                                  v
                         +------------------+
                         |   DataEyes API   |
                         +--------+---------+
                                  |
                        Returns task_id +
                        task_status: PENDING
                                  |
                                  v
                         +------------------+
                         |   Client         |
                         +--------+---------+
                                  |
                     Step 2: GET /tasks/{task_id}
                     (poll every ~15 seconds)
                                  |
                                  v
                         +------------------+
                         |   DataEyes API   |
                         +--------+---------+
                                  |
                    +-------------+-------------+
                    |                           |
             SUCCEEDED                    FAILED
             video_url returned           error returned
1.
Create Task -- Submit a POST request with your prompt and parameters. The API returns a task_id immediately.
2.
Query Results -- Poll the task status using GET /tasks/{task_id} at recommended intervals of 15 seconds until the status is SUCCEEDED or FAILED.

Step 1: Create Task#

Request#

Method: POST
URL: https://platform.dataeyes.ai/ali/api/v1/services/aigc/video-generation/video-synthesis

Headers#

HeaderRequiredValue
Content-TypeYesapplication/json
AuthorizationYesBearer sk-xxxx
X-DashScope-AsyncYesenable

Request Body#

FieldTypeRequiredDescription
modelstringYesModel identifier. One of happyhorse-1.1-t2v or happyhorse-1.0-t2v.
inputobjectYesInput object containing the prompt.
parametersobjectNoGeneration parameters (resolution, ratio, duration, etc.).

input Object#

FieldTypeRequiredDescription
promptstringYesText description of the video to generate. Maximum 5000 non-Chinese characters or 2500 Chinese characters.

parameters Object#

FieldTypeRequiredDefaultDescription
resolutionstringNo1080POutput video resolution. Values: 720P, 1080P.
ratiostringNo16:9Aspect ratio. Values: 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9.
durationintegerNo5Video duration in seconds. Range: 3 -- 15.
watermarkbooleanNotrueWhether to include a watermark on the generated video.
seedintegerNo--Random seed for reproducible generation. Range: 0 -- 2,147,483,647.

cURL Example#

Success Response#

HTTP Status: 200 OK
{
  "output": {
    "task_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "task_status": "PENDING"
  },
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Error Response#

HTTP Status: 4xx / 5xx
{
  "code": "InvalidParameter",
  "message": "The prompt exceeds the maximum allowed length.",
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Response Fields#

FieldTypeDescription
output.task_idstringUnique identifier for the created task. Valid for 24 hours.
output.task_statusstringInitial task status (typically PENDING).
request_idstringUnique identifier for this API request.
codestringError code (present only on failure).
messagestringError message (present only on failure).

Step 2: Query Results#

Request#

Method: GET
URL: https://platform.dataeyes.ai/ali/api/v1/tasks/{task_id}
Replace {task_id} with the task_id returned from Step 1.

Headers#

HeaderRequiredValue
AuthorizationYesBearer sk-xxxx

Polling Tips#

Recommended poll interval: 15 seconds.
Query RPS limit: 20 requests per second.
The task_id is valid for 24 hours after creation.
The video_url in the response is valid for 24 hours after generation completes. Download the video promptly.

cURL Example#

Success Response (SUCCEEDED)#

HTTP Status: 200 OK
{
  "output": {
    "task_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "task_status": "SUCCEEDED",
    "submit_time": "2026-06-26 10:00:00.000",
    "scheduled_time": "2026-06-26 10:00:01.000",
    "end_time": "2026-06-26 10:01:30.000",
    "video_url": "https://example.oss.aliyuncs.com/output/video.mp4",
    "orig_prompt": "A golden retriever running across a sunlit meadow, cinematic slow motion, 4K quality"
  },
  "usage": {
    "duration": 5,
    "input_video_duration": 0,
    "output_video_duration": 5,
    "video_count": 1,
    "SR": 0,
    "ratio": "16:9"
  },
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Failure Response (FAILED)#

HTTP Status: 200 OK
{
  "output": {
    "task_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "task_status": "FAILED",
    "submit_time": "2026-06-26 10:00:00.000",
    "scheduled_time": "2026-06-26 10:00:01.000",
    "end_time": "2026-06-26 10:01:00.000",
    "code": "InvalidParameter",
    "message": "Generation failed due to invalid input parameters."
  },
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Expired Task Response#

When querying a task_id that has expired (older than 24 hours):
{
  "code": "InvalidParameter",
  "message": "Task not found or has expired.",
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Response Fields#

FieldTypeDescription
output.task_idstringUnique identifier for the task.
output.task_statusstringCurrent task status. See Task Status Reference.
output.submit_timestringTimestamp when the task was submitted.
output.scheduled_timestringTimestamp when the task was scheduled for processing.
output.end_timestringTimestamp when the task completed (succeeded or failed).
output.video_urlstringURL of the generated video (MP4, H.264 codec). Valid for 24 hours. Present only when task_status is SUCCEEDED.
output.orig_promptstringThe original prompt submitted with the task.
output.codestringError code (present only when task_status is FAILED).
output.messagestringError message (present only when task_status is FAILED).
usage.durationintegerRequested video duration in seconds.
usage.input_video_durationintegerInput video duration in seconds. Fixed to 0 for text-to-video.
usage.output_video_durationintegerActual output video duration in seconds.
usage.video_countintegerNumber of videos generated. Fixed to 1.
usage.SRintegerSuper-resolution flag.
usage.ratiostringAspect ratio used for generation (e.g., "16:9").
request_idstringUnique identifier for this API request.

Task Status Reference#

StatusDescription
PENDINGTask has been created and is waiting to be processed.
RUNNINGTask is currently being processed (video is being generated).
SUCCEEDEDTask completed successfully. The video_url is available.
FAILEDTask failed. Check output.code and output.message for details.
CANCELEDTask was canceled.
UNKNOWNTask status is unknown.

Full Python Example#

The following example demonstrates the complete workflow: creating a text-to-video task and polling until completion.

Important Notes#

1.
Asynchronous workflow required. The X-DashScope-Async: enable header is mandatory. The API does not support synchronous video generation.
2.
Task ID validity. The task_id is valid for 24 hours after creation. After expiration, query requests will return an error.
3.
Video URL validity. The video_url returned upon task completion is valid for 24 hours. Download or cache the video before the URL expires.
4.
Poll interval. Use a minimum interval of 15 seconds between poll requests. The query endpoint has a rate limit of 20 requests per second.
5.
Prompt length limits. The prompt supports a maximum of 5,000 non-Chinese characters or 2,500 Chinese characters. Exceeding this limit will result in an InvalidParameter error.
6.
Video format. Generated videos are in MP4 format with H.264 codec.
7.
Duration range. The duration parameter accepts integer values from 3 to 15 seconds (inclusive). The default is 5 seconds.
8.
Watermark. By default, a watermark is applied to generated videos. Set "watermark": false to disable it.

Error Codes#

Error CodeHTTP StatusDescriptionRecommended Action
InvalidApiKey401The API key is missing, malformed, or invalid.Verify your API key and ensure the Authorization header uses the Bearer scheme.
InvalidParameter400One or more request parameters are invalid (e.g., unsupported resolution, prompt too long, expired task ID).Check the error message for details and correct the request parameters.
Throttling429Request rate limit exceeded.Reduce request frequency. For task queries, use the recommended 15-second poll interval.

This document is provided by DataEyes. For additional support, contact DataEyes technical support.
Previous
08-Query-Tasks
Next
HappyHorse Image-to-Video (First Frame)