Saltar al contenido principal
POST
/
v1
/
videos
/
{task_id}
/
remix
# El campo model puede ser "veo3.1-fast" o el alias compatible "veo3.1-fast-ext"
curl --request POST \
  --url https://api.apimart.ai/v1/videos/{task_id}/remix \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "veo3.1-fast",
    "prompt": "The cat continues running on the grass, butterflies fly into the distance",
    "raw": false,
    "aspect_ratio": "16:9",
    "resolution": "720p"
  }'
import requests

url = "https://api.apimart.ai/v1/videos/{task_id}/remix"

payload = {
    "model": "veo3.1-fast",
    "prompt": "The cat continues running on the grass, butterflies fly into the distance",
    "raw": False,
    "aspect_ratio": "16:9",
    "resolution": "720p"
}

headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
const url = "https://api.apimart.ai/v1/videos/{task_id}/remix";

const payload = {
  model: "veo3.1-fast",
  prompt: "The cat continues running on the grass, butterflies fly into the distance",
  raw: false,
  aspect_ratio: "16:9",
  resolution: "720p"
};

const headers = {
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(payload)
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    url := "https://api.apimart.ai/v1/videos/{task_id}/remix"

    payload := map[string]interface{}{
        "model":        "veo3.1-fast",
        "prompt":       "The cat continues running on the grass, butterflies fly into the distance",
        "raw":          false,
        "aspect_ratio": "16:9",
        "resolution":   "720p",
    }

    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    req.Header.Set("Authorization", "Bearer <token>")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class Main {
    public static void main(String[] args) throws Exception {
        String url = "https://api.apimart.ai/v1/videos/{task_id}/remix";

        String payload = """
        {
          "model": "veo3.1-fast",
          "prompt": "The cat continues running on the grass, butterflies fly into the distance",
          "raw": false,
          "aspect_ratio": "16:9",
          "resolution": "720p"
        }
        """;

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(url))
            .header("Authorization", "Bearer <token>")
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(payload))
            .build();

        HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString());

        System.out.println(response.body());
    }
}
<?php

$url = "https://api.apimart.ai/v1/videos/{task_id}/remix";

$payload = [
    "model" => "veo3.1-fast",
    "prompt" => "The cat continues running on the grass, butterflies fly into the distance",
    "raw" => false,
    "aspect_ratio" => "16:9",
    "resolution" => "720p"
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer <token>",
    "Content-Type: application/json"
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
require 'net/http'
require 'json'
require 'uri'

url = URI("https://api.apimart.ai/v1/videos/{task_id}/remix")

payload = {
  model: "veo3.1-fast",
  prompt: "The cat continues running on the grass, butterflies fly into the distance",
  raw: false,
  aspect_ratio: "16:9",
  resolution: "720p"
}

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json

response = http.request(request)
puts response.body
import Foundation

let url = URL(string: "https://api.apimart.ai/v1/videos/{task_id}/remix")!

let payload: [String: Any] = [
    "model": "veo3.1-fast",
    "prompt": "The cat continues running on the grass, butterflies fly into the distance",
    "raw": false,
    "aspect_ratio": "16:9",
    "resolution": "720p"
]

var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let error = error {
        print("Error: \(error)")
        return
    }

    if let data = data, let responseString = String(data: data, encoding: .utf8) {
        print(responseString)
    }
}

task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        var url = "https://api.apimart.ai/v1/videos/{task_id}/remix";

        var payload = @"{
            ""model"": ""veo3.1-fast"",
            ""prompt"": ""The cat continues running on the grass, butterflies fly into the distance"",
            ""raw"": false,
            ""aspect_ratio"": ""16:9"",
            ""resolution"": ""720p""
        }";

        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");

        var content = new StringContent(payload, Encoding.UTF8, "application/json");
        var response = await client.PostAsync(url, content);
        var result = await response.Content.ReadAsStringAsync();

        Console.WriteLine(result);
    }
}
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl;
    CURLcode res;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();

    if(curl) {
        const char *url = "https://api.apimart.ai/v1/videos/{task_id}/remix";
        const char *payload = "{"
            "\"model\":\"veo3.1-fast\","
            "\"prompt\":\"The cat continues running on the grass, butterflies fly into the distance\","
            "\"raw\":false,"
            "\"aspect_ratio\":\"16:9\","
            "\"resolution\":\"720p\""
        "}";

        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer <token>");
        headers = curl_slist_append(headers, "Content-Type: application/json");

        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

        res = curl_easy_perform(curl);

        if(res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                    curl_easy_strerror(res));
        }

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }

    curl_global_cleanup();
    return 0;
}
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSURL *url = [NSURL URLWithString:@"https://api.apimart.ai/v1/videos/{task_id}/remix"];

        NSDictionary *payload = @{
            @"model": @"veo3.1-fast",
            @"prompt": @"The cat continues running on the grass, butterflies fly into the distance",
            @"raw": @NO,
            @"aspect_ratio": @"16:9",
            @"resolution": @"720p"
        };

        NSError *error;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
                                                          options:0
                                                            error:&error];

        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
        [request setHTTPMethod:@"POST"];
        [request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
        [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
        [request setHTTPBody:jsonData];

        NSURLSessionDataTask *task = [[NSURLSession sharedSession]
            dataTaskWithRequest:request
            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                if (error) {
                    NSLog(@"Error: %@", error);
                    return;
                }
                NSString *result = [[NSString alloc] initWithData:data
                                                        encoding:NSUTF8StringEncoding];
                NSLog(@"%@", result);
            }];

        [task resume];
        [[NSRunLoop mainRunLoop] run];
    }
    return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix

let url = "https://api.apimart.ai/v1/videos/{task_id}/remix"

let payload = {|{
  "model": "veo3.1-fast",
  "prompt": "The cat continues running on the grass, butterflies fly into the distance",
  "raw": false,
  "aspect_ratio": "16:9",
  "resolution": "720p"
}|}

let () =
  let headers = Header.init ()
    |> fun h -> Header.add h "Authorization" "Bearer <token>"
    |> fun h -> Header.add h "Content-Type" "application/json"
  in
  let body = Cohttp_lwt.Body.of_string payload in

  let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
    body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
    print_endline body_str
  in
  Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;

void main() async {
  final url = Uri.parse('https://api.apimart.ai/v1/videos/{task_id}/remix');

  final payload = {
    'model': 'veo3.1-fast',
    'prompt': 'The cat continues running on the grass, butterflies fly into the distance',
    'raw': false,
    'aspect_ratio': '16:9',
    'resolution': '720p'
  };

  final response = await http.post(
    url,
    headers: {
      'Authorization': 'Bearer <token>',
      'Content-Type': 'application/json',
    },
    body: jsonEncode(payload),
  );

  print(response.body);
}
library(httr)
library(jsonlite)

url <- "https://api.apimart.ai/v1/videos/{task_id}/remix"

payload <- list(
  model = "veo3.1-fast",
  prompt = "The cat continues running on the grass, butterflies fly into the distance",
  raw = FALSE,
  aspect_ratio = "16:9",
  resolution = "720p"
)

response <- POST(
  url,
  add_headers(
    Authorization = "Bearer <token>",
    `Content-Type` = "application/json"
  ),
  body = toJSON(payload, auto_unbox = TRUE),
  encode = "raw"
)

cat(content(response, "text"))
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01JQXYZ9999NEWEXTENDID"
    }
  ]
}
{
  "error": {
    "code": 400,
    "message": "Invalid request parameters",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": 401,
    "message": "Invalid authentication credentials",
    "type": "authentication_error"
  }
}
{
  "error": {
    "code": 402,
    "message": "Insufficient balance. Please top up your account",
    "type": "payment_required"
  }
}
{
  "error": {
    "code": 403,
    "message": "Access forbidden. You don't have permission to access this resource",
    "type": "permission_error"
  }
}
{
  "error": {
    "code": 404,
    "message": "Video not found",
    "type": "not_found_error"
  }
}
{
  "error": {
    "code": 429,
    "message": "Rate limit exceeded. Please try again later",
    "type": "rate_limit_error"
  }
}
{
  "error": {
    "code": 500,
    "message": "Internal server error. Please try again later",
    "type": "server_error"
  }
}
{
  "error": {
    "code": 502,
    "message": "Bad gateway. The server is temporarily unavailable",
    "type": "bad_gateway"
  }
}
Aviso de compatibilidad de nombres de modelo: Esta interfaz también admite los alias veo3.1-fast-ext (equivalente a veo3.1-fast) y veo3.1-quality-ext (equivalente a veo3.1-quality); cada alias y su modelo son intercambiables y producen los mismos resultados.
# El campo model puede ser "veo3.1-fast" o el alias compatible "veo3.1-fast-ext"
curl --request POST \
  --url https://api.apimart.ai/v1/videos/{task_id}/remix \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "veo3.1-fast",
    "prompt": "The cat continues running on the grass, butterflies fly into the distance",
    "raw": false,
    "aspect_ratio": "16:9",
    "resolution": "720p"
  }'
import requests

url = "https://api.apimart.ai/v1/videos/{task_id}/remix"

payload = {
    "model": "veo3.1-fast",
    "prompt": "The cat continues running on the grass, butterflies fly into the distance",
    "raw": False,
    "aspect_ratio": "16:9",
    "resolution": "720p"
}

headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
const url = "https://api.apimart.ai/v1/videos/{task_id}/remix";

const payload = {
  model: "veo3.1-fast",
  prompt: "The cat continues running on the grass, butterflies fly into the distance",
  raw: false,
  aspect_ratio: "16:9",
  resolution: "720p"
};

const headers = {
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(payload)
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    url := "https://api.apimart.ai/v1/videos/{task_id}/remix"

    payload := map[string]interface{}{
        "model":        "veo3.1-fast",
        "prompt":       "The cat continues running on the grass, butterflies fly into the distance",
        "raw":          false,
        "aspect_ratio": "16:9",
        "resolution":   "720p",
    }

    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    req.Header.Set("Authorization", "Bearer <token>")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class Main {
    public static void main(String[] args) throws Exception {
        String url = "https://api.apimart.ai/v1/videos/{task_id}/remix";

        String payload = """
        {
          "model": "veo3.1-fast",
          "prompt": "The cat continues running on the grass, butterflies fly into the distance",
          "raw": false,
          "aspect_ratio": "16:9",
          "resolution": "720p"
        }
        """;

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(url))
            .header("Authorization", "Bearer <token>")
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(payload))
            .build();

        HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString());

        System.out.println(response.body());
    }
}
<?php

$url = "https://api.apimart.ai/v1/videos/{task_id}/remix";

$payload = [
    "model" => "veo3.1-fast",
    "prompt" => "The cat continues running on the grass, butterflies fly into the distance",
    "raw" => false,
    "aspect_ratio" => "16:9",
    "resolution" => "720p"
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer <token>",
    "Content-Type: application/json"
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
require 'net/http'
require 'json'
require 'uri'

url = URI("https://api.apimart.ai/v1/videos/{task_id}/remix")

payload = {
  model: "veo3.1-fast",
  prompt: "The cat continues running on the grass, butterflies fly into the distance",
  raw: false,
  aspect_ratio: "16:9",
  resolution: "720p"
}

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json

response = http.request(request)
puts response.body
import Foundation

let url = URL(string: "https://api.apimart.ai/v1/videos/{task_id}/remix")!

let payload: [String: Any] = [
    "model": "veo3.1-fast",
    "prompt": "The cat continues running on the grass, butterflies fly into the distance",
    "raw": false,
    "aspect_ratio": "16:9",
    "resolution": "720p"
]

var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let error = error {
        print("Error: \(error)")
        return
    }

    if let data = data, let responseString = String(data: data, encoding: .utf8) {
        print(responseString)
    }
}

task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        var url = "https://api.apimart.ai/v1/videos/{task_id}/remix";

        var payload = @"{
            ""model"": ""veo3.1-fast"",
            ""prompt"": ""The cat continues running on the grass, butterflies fly into the distance"",
            ""raw"": false,
            ""aspect_ratio"": ""16:9"",
            ""resolution"": ""720p""
        }";

        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");

        var content = new StringContent(payload, Encoding.UTF8, "application/json");
        var response = await client.PostAsync(url, content);
        var result = await response.Content.ReadAsStringAsync();

        Console.WriteLine(result);
    }
}
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl;
    CURLcode res;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();

    if(curl) {
        const char *url = "https://api.apimart.ai/v1/videos/{task_id}/remix";
        const char *payload = "{"
            "\"model\":\"veo3.1-fast\","
            "\"prompt\":\"The cat continues running on the grass, butterflies fly into the distance\","
            "\"raw\":false,"
            "\"aspect_ratio\":\"16:9\","
            "\"resolution\":\"720p\""
        "}";

        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Authorization: Bearer <token>");
        headers = curl_slist_append(headers, "Content-Type: application/json");

        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);

        res = curl_easy_perform(curl);

        if(res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                    curl_easy_strerror(res));
        }

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }

    curl_global_cleanup();
    return 0;
}
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSURL *url = [NSURL URLWithString:@"https://api.apimart.ai/v1/videos/{task_id}/remix"];

        NSDictionary *payload = @{
            @"model": @"veo3.1-fast",
            @"prompt": @"The cat continues running on the grass, butterflies fly into the distance",
            @"raw": @NO,
            @"aspect_ratio": @"16:9",
            @"resolution": @"720p"
        };

        NSError *error;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
                                                          options:0
                                                            error:&error];

        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
        [request setHTTPMethod:@"POST"];
        [request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
        [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
        [request setHTTPBody:jsonData];

        NSURLSessionDataTask *task = [[NSURLSession sharedSession]
            dataTaskWithRequest:request
            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                if (error) {
                    NSLog(@"Error: %@", error);
                    return;
                }
                NSString *result = [[NSString alloc] initWithData:data
                                                        encoding:NSUTF8StringEncoding];
                NSLog(@"%@", result);
            }];

        [task resume];
        [[NSRunLoop mainRunLoop] run];
    }
    return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix

let url = "https://api.apimart.ai/v1/videos/{task_id}/remix"

let payload = {|{
  "model": "veo3.1-fast",
  "prompt": "The cat continues running on the grass, butterflies fly into the distance",
  "raw": false,
  "aspect_ratio": "16:9",
  "resolution": "720p"
}|}

let () =
  let headers = Header.init ()
    |> fun h -> Header.add h "Authorization" "Bearer <token>"
    |> fun h -> Header.add h "Content-Type" "application/json"
  in
  let body = Cohttp_lwt.Body.of_string payload in

  let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
    body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
    print_endline body_str
  in
  Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;

void main() async {
  final url = Uri.parse('https://api.apimart.ai/v1/videos/{task_id}/remix');

  final payload = {
    'model': 'veo3.1-fast',
    'prompt': 'The cat continues running on the grass, butterflies fly into the distance',
    'raw': false,
    'aspect_ratio': '16:9',
    'resolution': '720p'
  };

  final response = await http.post(
    url,
    headers: {
      'Authorization': 'Bearer <token>',
      'Content-Type': 'application/json',
    },
    body: jsonEncode(payload),
  );

  print(response.body);
}
library(httr)
library(jsonlite)

url <- "https://api.apimart.ai/v1/videos/{task_id}/remix"

payload <- list(
  model = "veo3.1-fast",
  prompt = "The cat continues running on the grass, butterflies fly into the distance",
  raw = FALSE,
  aspect_ratio = "16:9",
  resolution = "720p"
)

response <- POST(
  url,
  add_headers(
    Authorization = "Bearer <token>",
    `Content-Type` = "application/json"
  ),
  body = toJSON(payload, auto_unbox = TRUE),
  encode = "raw"
)

cat(content(response, "text"))
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01JQXYZ9999NEWEXTENDID"
    }
  ]
}
{
  "error": {
    "code": 400,
    "message": "Invalid request parameters",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": 401,
    "message": "Invalid authentication credentials",
    "type": "authentication_error"
  }
}
{
  "error": {
    "code": 402,
    "message": "Insufficient balance. Please top up your account",
    "type": "payment_required"
  }
}
{
  "error": {
    "code": 403,
    "message": "Access forbidden. You don't have permission to access this resource",
    "type": "permission_error"
  }
}
{
  "error": {
    "code": 404,
    "message": "Video not found",
    "type": "not_found_error"
  }
}
{
  "error": {
    "code": 429,
    "message": "Rate limit exceeded. Please try again later",
    "type": "rate_limit_error"
  }
}
{
  "error": {
    "code": 500,
    "message": "Internal server error. Please try again later",
    "type": "server_error"
  }
}
{
  "error": {
    "code": 502,
    "message": "Bad gateway. The server is temporarily unavailable",
    "type": "bad_gateway"
  }
}

Parámetros de ruta

task_id
string
requerido
ID de tarea del video originalEs el task_id devuelto por la API de generación de video. El estado de la tarea del video original debe ser success

Autorización

Authorization
string
requerido
Todos los endpoints de la API requieren autenticación mediante Bearer TokenObtenga su API Key:Visite la página de gestión de API Keys para obtener su API KeyAñádala a la cabecera de la solicitud:
Authorization: Bearer YOUR_API_KEY

Parámetros de la solicitud

model
string
requerido
Nombre del modelo de video, debe coincidir con el modelo usado para el video originalModelos admitidos:
  • veo3.1-fast - Versión rápida (alias compatible veo3.1-fast-ext)
  • veo3.1-quality - Versión de alta calidad (alias compatible veo3.1-quality-ext)
Ejemplo: "veo3.1-fast"
Para mantener la compatibilidad con llamadas anteriores, los alias veo3.1-fast-ext (corresponde a veo3.1-fast) y veo3.1-quality-ext (corresponde a veo3.1-quality) siguen estando disponibles.
prompt
string
requerido
Prompt de continuación que describe el contenido de la parte extendida
raw
boolean
Si se debe devolver solo la parte extendida del video
  • true - Devuelve solo el video extendido
Predeterminado: false
aspect_ratio
string
Proporción para el video extendidoValores admitidos:
  • 16:9
  • 9:16
resolution
string
Resolución del videoValores admitidos:
  • 720p (predeterminado)
  • 1080p
  • 4k

Notas importantes

El modelo debe coincidir: El modelo usado para la extensión debe ser el mismo que se usó para generar el video original. Los videos generados con veo3.1-fast también deben usar veo3.1-fast para la extensión.
Solo se admiten videos completados: El estado de la tarea del video original debe ser success.
task_id en la URL: Es el task_id devuelto en el primer paso de la generación de video (no el ID upstream).

Respuesta

code
integer
Código de estado de la respuesta
data
object[]
Array de datos de la respuesta