Get Viral Ad Clone Project
curl --request GET \
--url https://api.loova.ai/api/v1/video/viral-ads-clone/{project_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}', 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://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": 200,
"trace_id": "45c30d76f06549b199a3775544515689",
"message": null,
"data": {
"project_id": "683f1a2b3c4d5e6f7890abcd",
"status": "succeeded",
"current_step": "script_ready",
"mode": "manual",
"error_message": null,
"view_script": "0.0-2.0s\nClose-up of the product on a bathroom counter...",
"billing": {
"script_credits_cost": 10,
"video_credits_cost": 0,
"total_credits_cost": 10
},
"task_ids": [],
"tasks": [],
"created_at": "2026-06-15T08:00:00Z",
"updated_at": "2026-06-15T08:02:30Z"
}
}API Reference
Get Viral Ad Clone Project
Returns public project status, the reviewable script when available, all video tasks created from this project, and billing totals. Internal steps, inputs, artifacts, and extras are not returned.
GET
/
v1
/
video
/
viral-ads-clone
/
{project_id}
Get Viral Ad Clone Project
curl --request GET \
--url https://api.loova.ai/api/v1/video/viral-ads-clone/{project_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}', 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://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.loova.ai/api/v1/video/viral-ads-clone/{project_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": 200,
"trace_id": "45c30d76f06549b199a3775544515689",
"message": null,
"data": {
"project_id": "683f1a2b3c4d5e6f7890abcd",
"status": "succeeded",
"current_step": "script_ready",
"mode": "manual",
"error_message": null,
"view_script": "0.0-2.0s\nClose-up of the product on a bathroom counter...",
"billing": {
"script_credits_cost": 10,
"video_credits_cost": 0,
"total_credits_cost": 10
},
"task_ids": [],
"tasks": [],
"created_at": "2026-06-15T08:00:00Z",
"updated_at": "2026-06-15T08:02:30Z"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The project ID returned by the create project endpoint.
⌘I