Get Video
curl --request GET \
--url https://easy-peasy.ai/api/get-video \
--header 'x-api-key: <api-key>'import requests
url = "https://easy-peasy.ai/api/get-video"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://easy-peasy.ai/api/get-video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://easy-peasy.ai/api/get-video",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://easy-peasy.ai/api/get-video"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://easy-peasy.ai/api/get-video")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://easy-peasy.ai/api/get-video")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"video": {
"id": 12345,
"prompt": "A cat walking on the beach at sunset",
"url": "",
"model": "Veo 3.1 Fast",
"status": "processing",
"created_at": "2025-01-15T10:30:00.000Z",
"request": {
"duration": "4s",
"aspectRatio": "16:9",
"isTextToVideo": true,
"isImageToVideo": false
}
}
}
Video Generation
Get Video
Retrieve the status and result of a video generation request. Since video generation is asynchronous (typically 1–5 minutes), poll this endpoint every 15–30 seconds until the status is completed and the url field contains the video URL.
GET
/
api
/
get-video
Get Video
curl --request GET \
--url https://easy-peasy.ai/api/get-video \
--header 'x-api-key: <api-key>'import requests
url = "https://easy-peasy.ai/api/get-video"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://easy-peasy.ai/api/get-video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://easy-peasy.ai/api/get-video",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://easy-peasy.ai/api/get-video"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://easy-peasy.ai/api/get-video")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://easy-peasy.ai/api/get-video")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"video": {
"id": 12345,
"prompt": "A cat walking on the beach at sunset",
"url": "",
"model": "Veo 3.1 Fast",
"status": "processing",
"created_at": "2025-01-15T10:30:00.000Z",
"request": {
"duration": "4s",
"aspectRatio": "16:9",
"isTextToVideo": true,
"isImageToVideo": false
}
}
}
Pass the
id returned by Generate Video or Generate Talking Video as the video_id query parameter. Use the same account’s API key.
Read video.status and video.url. The endpoint exposes processing and completed; it does not expose a failed status. HTTP 404 means the job is missing, deleted, or unavailable to this account, including some failed jobs.
See the bounded polling example. A client timeout does not cancel the job.Authorizations
API key for authentication. Get yours at https://easy-peasy.ai/settings/api
Query Parameters
The video ID returned from the Generate Video endpoint
Response
Video data
Show child attributes
Show child attributes
Was this page helpful?
