POST /maestro/videos).
This document will provide a detailed introduction to the integration guide for the Maestro Task Query API. Since video generation is an asynchronous task, after submission, you need to use this API to poll for progress and completed videos. Polling is free and does not consume credits.
POST https://api.acedata.cloud/maestro/tasks
Application Process
To use the Maestro Task Query API, first go to the Ace Data Cloud Console to obtain your API Token and keep it for later use.
If you have not yet logged in or registered, you will be automatically redirected to the login page to register and log in, and will automatically return to the current page after completion.
One API Token can call all platform services; there is no need to apply separately for each service. Your first application will include free credits for a free trial; when credits are insufficient, you can top up your general balance in the console.
📘 Full documentation: Maestro Task Query API →
Query a Single Task
For how to create a video task, please refer to the Maestro Video Generation API documentation. We use one of the task IDs it returns as an example:f57e99c4f60f4373a15517742ce2357d, to demonstrate how to query its status and result.
Set Request Headers and Request Body
Request Headers include:accept: Specifies that JSON-formatted response results are accepted; fill inapplication/jsonhere.authorization: The key for calling the API, which can be directly selected from the dropdown after application.content-type: The format of the request body; fill inapplication/jsonhere.
Code Examples
The corresponding CURL code is as follows:Response Example
After the request succeeds, the API will return the status and result of the video task. The following is an example response when the task is completed (each language corresponds to onevariant):
id: The ID of this video task, used to uniquely identify this video generation task.status: The task status, with possible values ofpending → planning → producing → succeeded(orfailed). Whether the task has been completed is determined by this top-levelstatus.elapsed: Time elapsed for the task (seconds).progress: The top-level progress object.percent(0–100) will be set to 100 upon task success;stageandmessagereflect the latest progress event from the AI director (therefore, after success,stagemay still be the final execution stage such asproducing) and can be directly used to display a progress bar.request: The request body when initiating the task.response: The task response information.success: Whether the task succeeded.data.variants: Each language corresponds to one completed video object, includinglang,aspect,title,output_url(completed video download URL), and more.data.project: The entire project output, includingtarball_url(project package) andoutputs(all completed video links).data.progress: An array of progress events appended by stage (append-only log), which can be used to display detailed real-time progress.
created_at: Task creation time, Unix timestamp (seconds).started_at: Task start execution time, Unix timestamp (seconds). It is null when the task has not started.finished_at: Task completion time, Unix timestamp (seconds). It is null when the task has not been completed.
Query History List
Passaction: retrieve_batch to retrieve the most recent tasks of the currently logged-in executor (in reverse chronological order by creation time), which can be used for the “My Videos” list page. The history list is isolated by login identity.
Request Body includes:
Code Example
The corresponding CURL code is as follows:Response Example
After the request succeeds, the API will return the current user’s historical task list:count: The total number of tasks visible to the currently logged-in executor, unaffected by time conditions orlimit.items: An array of tasks filtered by time conditions andlimit, sorted in descending order by creation time; the format of each element is consistent with the return result of “Query a Single Task”.
Polling Recommendations
Since video production takes a relatively long time,status will go through pending → planning → producing → succeeded (or failed). It is recommended to poll every 5–10 seconds until status changes to succeeded or failed. You can use the top-level progress.percent to display a real-time progress bar. Polling this API is free and does not consume credits.
Error Handling
When calling the API, if an error occurs, the API will return the corresponding error code and message. For example:401 invalid_token: Unauthorized, invalid or missing authorization token.404 not_found: Task not found, the given task_id does not exist.429 too_many_requests: Too many requests, you have exceeded the rate limit.500 api_error: Internal server error, something went wrong on the server.
Error Response Example
Conclusion
Through this document, you have learned how to use the Maestro task query API to query the status and result of a single task, as well as retrieve the current user’s historical task list. We hope this document helps you better integrate and use this API. If you have any questions, please feel free to contact our technical support team.Related APIs
- Maestro Video Generation API Integration Guide: Automatically produce a subtitle-enabled finished video using a natural language prompt. After submission,
task_idis returned, and then use this API to poll for results.

