Veo Video Generation API: Write Shot Language as Prompts and Let AI Help You Create Videos
A short video that "looks expensive" used to mean a complete process of storyboarding, shooting, lighting, and post-production. Now, many of these needs—product shorts, program intros, social media looping backgrounds—can first be clearly described in text, handed over to the model to generate a draft, and then decide whether to reshoot with real people.
This article discusses the Veo Video Generation API on Ace Data Cloud: the endpoint is POST https://api.acedata.cloud/veo/videos, and the documentation is at platform.acedata.cloud/documents/veo-videos. Like other services on the platform, you can use it by obtaining an API Token from the console, with a free quota for first-time applicants.
¶ First, Let's Look at a Real Generated Video
The following clip was generated using veo31-fast: a slow-motion macro of a hummingbird at golden hour, wings almost frozen mid-beat, shallow depth of field, cinematic. The prompt is a single English shot description, with no post-production done.
📹 https://cdn.acedata.cloud/5e1f2c52a9.mp4
The corresponding request looks like this:
curl -X POST 'https://api.acedata.cloud/veo/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
"action": "text2video",
"model": "veo31-fast",
"async": true,
"prompt": "Extreme slow-motion macro of a hummingbird hovering beside a dew-covered flower at golden hour, wings frozen mid-beat, shallow depth of field, cinematic."
}'
Veo takes about 1–2 minutes to generate a video. To avoid keeping the HTTP connection open, it is recommended to add "async": true: the API will immediately return a task_id, and you can then poll for the task result.
{
"task_id": "1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed",
"trace_id": "d1d53c04-58c5-4c40-bb63-f00188540e56"
}
After obtaining the task_id, poll /veo/tasks until the state changes to succeeded:
curl -X POST 'https://api.acedata.cloud/veo/tasks' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{"id": "1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed", "action": "retrieve"}'
Once completed, the data will contain the final product link:
{
"success": true,
"task_id": "1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed",
"data": [
{
"id": "2f43ceed37944b4d836e1a1899dad0a1",
"video_url": "https://platform2.cdn.acedata.cloud/veo/1ebe4f2b-....mp4",
"created_at": "2026-06-30T04:01:50Z",
"complete_at": "2026-06-30T04:03:20Z",
"state": "succeeded"
}
]
}
If you do not want to poll, you can also pass a callback_url, and the platform will POST the above JSON directly to your address when the task is completed.
¶ Three Types of Actions: Text to Video, Image to Video, Upgrade to 1080p
The action determines what this task will do:
text2video—pure text generation, like the hummingbird clip above;image2video—provide one or two reference images to animate a static scene. Sending one image is for first-frame mode, sending two images is for first-to-last-frame mode (the video moves from the first image to the second);get1080p—upgrade an already generated video to high definition by passing itsvideo_id.
The request for image-generated video simply adds image_urls:
curl -X POST 'https://api.acedata.cloud/veo/videos' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
"action": "image2video",
"model": "veo31-fast",
"async": true,
"prompt": "The poster gently comes alive, subtle parallax, slow camera push-in.",
"image_urls": ["https://cdn.acedata.cloud/b2f8d2c012.png"]
}'
This is very useful for "poster/KV dynamic extension": take an existing main visual and generate a 5–8 second dynamic version for short video openings or landing page looping backgrounds.
¶ How to Choose a Model
Currently, the main options are: veo31-fast, veo31, veo3, veo3-fast, and also veo31-fast-ingredients (which requires images, up to 3, for multi-image fusion).
The selection logic is straightforward:
- fast series (
veo31-fast/veo3-fast)—produces quickly, used for rapid direction validation and creating multiple versions to choose from; - quality tier (
veo31/veo3)—after the direction is set, used for final production.
In terms of resolution, if resolution is not specified, it defaults to 720p, and all models support 1080p and gif, with veo31 also supporting 4k. The aspect ratio is controlled by aspect_ratio (16:9, 9:16, 1:1, 4:3, 3:4), allowing for both horizontal and vertical versions to be produced for easy multi-channel distribution.
¶ A Reusable Workflow
- Write Shot Language: Subject + Lighting + Camera Position + Movement + Rhythm, write it clearly at once. Common terms:
slow orbit,dolly-in,rack focus,golden hour,rim light,volumetric glow,matte / glossytexture,3–6 second loop; - Use fast models to generate multiple versions for small-scale screening or testing;
- Upgrade the winning version to 1080p (
get1080p) for formal release or large screens; - Store materials: save
video_url,model,prompt,created_at,complete_at, gradually building a "shot template library" to apply by theme later.
¶ Who Can Benefit
- Brand and E-commerce: Product rotation/following short videos, holiday-themed videos, opening titles;
- Media and Creators: Use the same set of lens language for the opening and closing of segments to form stable recognition, or first create a still frame and then generate dynamic content, maintaining a unified style;
- Product and UI: Create high-end motion effect backgrounds for apps, websites, and offline screens, significantly enhancing the first impression.
It is worth mentioning that video is currently the most scarce and also the most expensive content form. If you are running a content account, consistently producing short videos is the core of driving traffic; placing the tools you use in your homepage and generating commissions through user consumption from registrations via Revenue Alliance is an additional income stream. Or more directly—package the above "input lens description, asynchronously obtain video" process into a small tool to sell to businesses that need to produce videos in bulk, with your cost being the portion charged by the platform based on usage.
¶ Reference Links
- Document: https://platform.acedata.cloud/documents/veo-videos
- API:
POST https://api.acedata.cloud/veo/videos - Get Token: https://platform.acedata.cloud/console/applications
Start by using the free quota to write your first shot instruction, run it to see the effect, and then decide how to integrate it into your process.
