# Veo 3.1 Task Status

> Video Generation

Query the status and result URLs for an asynchronous task.

## Endpoint

`GET https://api.modelverse.cn/v1/tasks/status`

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| task_id | query | string | Yes | Asynchronous task identifier returned by `/v1/tasks/submit`. |

## Responses

- **200** — Task status response.
- **400** — Invalid request parameters.
- **default** — Error response.

## OpenAPI Definition

```json
{
  "openapi": "3.1.0",
  "x-language": "en-US",
  "info": {
    "title": "ModelVerse Veo 3.1 Video Task API",
    "version": "1.0.0",
    "description": "Self-contained OpenAPI 3.1 schema for the ModelVerse Veo 3.1\nasynchronous video generation task API. This document covers only the\ndocumented `veo-3.1-generate-001` and `veo-3.1-fast-generate-001` model\nidentifiers.\n"
  },
  "servers": [
    {
      "url": "https://api.modelverse.cn",
      "description": "ModelVerse API endpoint documented for this model."
    }
  ],
  "tags": [
    {
      "name": "Veo 3.1",
      "description": "Veo 3.1 asynchronous video generation operations."
    }
  ],
  "paths": {
    "/v1/tasks/submit": {
      "post": {
        "tags": [
          "Veo 3.1"
        ],
        "operationId": "submitVeo31Task",
        "summary": "Veo 3.1 Video Generation",
        "description": "Submit an asynchronous video generation task for the documented Veo 3.1\nmodel identifiers.\n",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Veo31SubmitRequest"
              },
              "examples": {
                "firstAndLastFrame": {
                  "summary": "Generate a video from prompt, first frame, and last frame",
                  "value": {
                    "model": "veo-3.1-generate-001",
                    "input": {
                      "prompt": "make it run",
                      "image": {
                        "bytesBase64Encoded": "xxxxx",
                        "mimeType": "image/jpeg"
                      },
                      "last_frame": {
                        "bytesBase64Encoded": "xxxxx",
                        "mimeType": "image/jpeg"
                      }
                    },
                    "parameters": {
                      "duration": 6,
                      "aspect_ratio": "16:9",
                      "resolution": "1080p",
                      "generate_audio": true
                    }
                  }
                },
                "textToVideoFast": {
                  "summary": "Generate a video from prompt with the fast model",
                  "value": {
                    "model": "veo-3.1-fast-generate-001",
                    "input": {
                      "prompt": "a cinematic shot of waves rolling onto a moonlit beach",
                      "negative_prompt": "blurry, low quality"
                    },
                    "parameters": {
                      "duration": 8,
                      "aspect_ratio": "9:16",
                      "resolution": "720p",
                      "generate_audio": false,
                      "person_generation": "dont_allow"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Task submitted successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Veo31SubmitResponse"
                },
                "examples": {
                  "submitted": {
                    "summary": "Submitted task",
                    "value": {
                      "output": {
                        "task_id": "task_id"
                      },
                      "request_id": "request_id"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Veo31ErrorResponse"
                },
                "examples": {
                  "paramError": {
                    "$ref": "#/components/examples/Veo31ParamError"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Veo31ErrorResponse"
                },
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/Veo31ParamError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/tasks/status": {
      "get": {
        "tags": [
          "Veo 3.1"
        ],
        "operationId": "getVeo31TaskStatus",
        "summary": "Veo 3.1 Task Status",
        "description": "Query the status and result URLs for an asynchronous task.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "task_id",
            "in": "query",
            "required": true,
            "description": "Asynchronous task identifier returned by `/v1/tasks/submit`.",
            "schema": {
              "type": "string"
            },
            "examples": {
              "placeholder": {
                "summary": "Source documentation placeholder",
                "value": "task_id"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Task status response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Veo31StatusResponse"
                },
                "examples": {
                  "success": {
                    "summary": "Successful task",
                    "value": {
                      "output": {
                        "task_id": "task_id",
                        "task_status": "Success",
                        "urls": [
                          "https://xxxxx/xxxx.mp4"
                        ],
                        "submit_time": 1756959000,
                        "finish_time": 1756959050
                      },
                      "usage": {
                        "duration": 5
                      },
                      "request_id": ""
                    }
                  },
                  "failure": {
                    "summary": "Failed task",
                    "value": {
                      "output": {
                        "task_id": "task_id",
                        "task_status": "Failure",
                        "submit_time": 1756959000,
                        "finish_time": 1756959019,
                        "error_message": "error_message"
                      },
                      "usage": {
                        "duration": 5
                      },
                      "request_id": ""
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Veo31ErrorResponse"
                },
                "examples": {
                  "paramError": {
                    "$ref": "#/components/examples/Veo31ParamError"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Veo31ErrorResponse"
                },
                "examples": {
                  "error": {
                    "$ref": "#/components/examples/Veo31ParamError"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "API key",
        "description": "ModelVerse API key sent in the `Authorization: Bearer <API_KEY>` header."
      }
    },
    "schemas": {
      "Veo31SubmitRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "model",
          "input",
          "parameters"
        ],
        "properties": {
          "model": {
            "$ref": "#/components/schemas/Veo31Model"
          },
          "input": {
            "$ref": "#/components/schemas/Veo31Input"
          },
          "parameters": {
            "$ref": "#/components/schemas/Veo31Parameters"
          }
        }
      },
      "Veo31Model": {
        "type": "string",
        "description": "Documented Veo 3.1 model identifier.",
        "enum": [
          "veo-3.1-generate-001",
          "veo-3.1-fast-generate-001"
        ]
      },
      "Veo31Input": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "prompt"
        ],
        "properties": {
          "prompt": {
            "type": "string",
            "minLength": 1,
            "description": "Prompt used to guide video generation."
          },
          "negative_prompt": {
            "type": "string",
            "description": "Negative prompt used to limit undesired content."
          },
          "image": {
            "$ref": "#/components/schemas/Veo31Image"
          },
          "last_frame": {
            "$ref": "#/components/schemas/Veo31Image"
          }
        }
      },
      "Veo31Image": {
        "type": "object",
        "additionalProperties": false,
        "description": "Image object used to guide video generation. When `last_frame` is also\nprovided, `image` represents the first frame.\n",
        "properties": {
          "bytesBase64Encoded": {
            "type": "string",
            "description": "Pure Base64-encoded image bytes. Do not include a data URL prefix\nsuch as `data:image/jpeg;base64,`.\n"
          },
          "mimeType": {
            "type": "string",
            "description": "Image MIME type accepted by the API.",
            "enum": [
              "image/jpeg",
              "image/png",
              "image/webp"
            ]
          }
        }
      },
      "Veo31Parameters": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "generate_audio"
        ],
        "properties": {
          "resolution": {
            "type": "string",
            "description": "Generated video resolution.",
            "enum": [
              "720p",
              "1080p"
            ],
            "default": "720p"
          },
          "duration": {
            "type": "integer",
            "description": "Generated video duration in seconds.",
            "enum": [
              4,
              6,
              8
            ],
            "default": 8
          },
          "aspect_ratio": {
            "type": "string",
            "description": "Generated video aspect ratio.",
            "enum": [
              "16:9",
              "9:16"
            ],
            "default": "16:9"
          },
          "generate_audio": {
            "type": "boolean",
            "description": "Whether to generate audio for the video."
          },
          "person_generation": {
            "type": "string",
            "description": "Safety setting for whether people or faces may be generated.",
            "enum": [
              "allow_adult",
              "dont_allow"
            ],
            "default": "allow_adult"
          }
        }
      },
      "Veo31SubmitResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "output",
          "request_id"
        ],
        "properties": {
          "output": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "task_id"
            ],
            "properties": {
              "task_id": {
                "type": "string",
                "description": "Unique identifier of the asynchronous task."
              }
            }
          },
          "request_id": {
            "type": "string",
            "description": "Unique request identifier."
          }
        }
      },
      "Veo31StatusResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "output",
          "request_id"
        ],
        "properties": {
          "output": {
            "$ref": "#/components/schemas/Veo31StatusOutput"
          },
          "usage": {
            "$ref": "#/components/schemas/Veo31Usage"
          },
          "request_id": {
            "type": "string",
            "description": "Unique request identifier."
          }
        }
      },
      "Veo31StatusOutput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "task_id",
          "task_status"
        ],
        "properties": {
          "task_id": {
            "type": "string",
            "description": "Unique identifier of the asynchronous task."
          },
          "task_status": {
            "$ref": "#/components/schemas/Veo31TaskStatus"
          },
          "urls": {
            "type": "array",
            "description": "Video result URL list. URLs are retained for 24 hours by default.",
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "submit_time": {
            "type": "integer",
            "format": "int64",
            "description": "Task submission timestamp."
          },
          "finish_time": {
            "type": "integer",
            "format": "int64",
            "description": "Task completion timestamp."
          },
          "error_message": {
            "type": "string",
            "description": "Error message returned when the task fails."
          }
        }
      },
      "Veo31TaskStatus": {
        "type": "string",
        "description": "Asynchronous task status.",
        "enum": [
          "Pending",
          "Running",
          "Success",
          "Failure"
        ]
      },
      "Veo31Usage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "duration": {
            "type": "integer",
            "description": "Task execution duration in seconds."
          }
        }
      },
      "Veo31ErrorResponse": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "$ref": "#/components/schemas/Veo31ErrorObject"
          }
        }
      },
      "Veo31ErrorObject": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "message",
          "type"
        ],
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message."
          },
          "type": {
            "type": "string",
            "description": "Error type.",
            "examples": [
              "invalid_request_error"
            ]
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Error code.",
            "examples": [
              "param_error"
            ]
          },
          "param": {
            "type": [
              "string",
              "null"
            ],
            "description": "Related request parameter, if any."
          }
        }
      }
    },
    "examples": {
      "Veo31ParamError": {
        "summary": "Invalid parameter error",
        "value": {
          "error": {
            "message": "Invalid param",
            "type": "invalid_request_error",
            "code": "param_error",
            "param": "task_id"
          }
        }
      }
    }
  }
}
```
