Skip to main content
POST
/
api
/
v1
/
veo
/
get-4k-video
Get 4K Video
curl --request POST \
  --url https://api.kie.ai/api/v1/veo/get-4k-video \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "taskId": "veo_task_abcdef123456",
  "index": 0,
  "callBackUrl": "http://your-callback-url.com/4k-callback"
}
'
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "veo_task_abcdef123456",
    "resultUrls": null,
    "imageUrls": null
  }
}
Get the ultra-high-definition 4K version of a Veo 3.1 video generation task.
Legacy note: If a task was generated via a deprecated fallback path, this endpoint may not apply.

Usage Instructions

  • API method difference
    • 1080P uses GET: /api/v1/veo/get-1080p-video
    • 4K uses POST: /api/v1/veo/get-4k-video
  • Credit consumption
    • 4K requires additional credits.
    • The extra cost is approximately equivalent to 2× “Fast mode” video generations (see pricing details for the latest).
  • Supported aspect ratios
    • Both 16:9 and 9:16 tasks support upgrading to 1080P and 4K.
  • Processing time
    • 4K generation requires significant extra processing time — typically ~5–10 minutes depending on load.
  • If the 4K video is not ready yet, the endpoint may return a non-200 code. Wait and retry (recommended interval: 30s+) until the result is available.
For production use, we recommend using callBackUrl to receive automatic notifications when 4K generation completes, rather than polling frequently.

Callbacks

After submitting a 4K video generation task, use the unified callback mechanism to receive generation completion notifications:

4K Video Generation Callbacks

Learn how to configure and handle 4K video generation callback notifications

Error Responses

When submitting repeated requests for the same task ID, the system returns a 422 status code with specific error details:
{
  "code": 422,
  "msg": "4k is processing. It should be ready in 5-10 minutes. Please check back shortly.",
  "data": {
    "taskId": "veo_task_example123",
    "resultUrls": null,
    "imageUrls": null
  }
}

Authorizations

Authorization
string
header
required

All APIs require authentication via Bearer Token.

Get API Key:

  1. Visit API Key Management Page to get your API Key

Usage: Add to request header: Authorization: Bearer YOUR_API_KEY

Body

application/json
taskId
string
required

Task ID

Example:

"veo_task_abcdef123456"

index
integer
default:0

video index

Example:

0

callBackUrl
string<uri>

The URL to receive 4K video generation task completion updates. Optional but recommended for production use.

  • System will POST task status and results to this URL when 4K video generation completes
  • Callback includes generated video URLs, media IDs, and related information
  • Your callback endpoint should accept POST requests with JSON payload containing results
  • To ensure callback security, see Webhook Verification Guide for signature verification implementation
  • Alternatively, use the Get Video Details endpoint to poll task status
Example:

"http://your-callback-url.com/4k-callback"

Response

Request successful

code
enum<integer>

Response status code

  • 200: Success - Request has been processed successfully
  • 401: Unauthorized - Authentication credentials are missing or invalid
  • 404: Not Found - The requested resource or endpoint does not exist
  • 422: Validation Error - The request parameters failed validation checks. record is null. Temporarily supports records within 14 days. record result data is blank. record status is not success. record result data not exist. record result data is empty.
  • 429: Rate Limited - Request limit has been exceeded for this resource
  • 451: Failed to fetch the image. Kindly verify any access limits set by you or your service provider.
  • 455: Service Unavailable - System is currently undergoing maintenance
  • 500: Server Error - An unexpected error occurred while processing the request
Available options:
200,
401,
404,
422,
429,
451,
455,
500
msg
string

Error message when code != 200

Example:

"success"

data
object