Passer au contenu principal
POST
/
v1
/
videos
/
{task_id}
/
remix
# Le champ model peut valoir "veo3.1-fast" ou son 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"
  }
}
Alias de modèle compatible : cette API prend également en charge les alias veo3.1-fast-ext (équivalent à veo3.1-fast) et veo3.1-quality-ext (équivalent à veo3.1-quality) ; ils sont interchangeables avec leurs noms respectifs et produisent des résultats identiques.
# Le champ model peut valoir "veo3.1-fast" ou son 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"
  }
}

Paramètres du chemin

task_id
string
requis
ID de tâche de la vidéo originaleIl s’agit du task_id renvoyé par l’API de génération vidéo. Le statut de la tâche vidéo originale doit être success

Autorisation

Authorization
string
requis
Tous les points de terminaison de l’API nécessitent une authentification par Bearer TokenObtenez votre API Key :Rendez-vous sur la page de gestion des API Keys pour obtenir votre API KeyAjoutez-la dans l’en-tête de la requête :
Authorization: Bearer YOUR_API_KEY

Paramètres de la requête

model
string
requis
Nom du modèle vidéo, doit correspondre au modèle utilisé pour la vidéo originaleModèles pris en charge :
  • veo3.1-fast — version rapide (alias compatible veo3.1-fast-ext)
  • veo3.1-quality — version haute qualité (alias compatible veo3.1-quality-ext)
Exemple : "veo3.1-fast"
Pour assurer la compatibilité avec les anciens appels, les alias veo3.1-fast-ext (correspondant à veo3.1-fast) et veo3.1-quality-ext (correspondant à veo3.1-quality) restent utilisables normalement.
prompt
string
requis
Prompt de continuation décrivant le contenu de la partie prolongée
raw
boolean
Renvoyer ou non uniquement la partie prolongée de la vidéo
  • true — renvoie uniquement la vidéo prolongée
Par défaut : false
aspect_ratio
string
Rapport d’aspect pour la vidéo prolongéeValeurs prises en charge :
  • 16:9
  • 9:16
resolution
string
Résolution de la vidéoValeurs prises en charge :
  • 720p (par défaut)
  • 1080p
  • 4k

Remarques importantes

Le modèle doit correspondre : le modèle utilisé pour la prolongation doit être le même que celui utilisé pour générer la vidéo originale. Les vidéos générées avec veo3.1-fast doivent également utiliser veo3.1-fast pour la prolongation.
Seules les vidéos terminées sont prises en charge : le statut de la tâche vidéo originale doit être success.
task_id dans l’URL : il s’agit du task_id renvoyé lors de la première étape de la génération vidéo (et non de l’ID upstream).

Réponse

code
integer
Code d’état de la réponse
data
object[]
Tableau de données de la réponse