Update take video instructions
curl --request POST \
--url https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chunk_prompts": [
{
"index": 0,
"face_prompt": "A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.",
"upper_body_prompt": "A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static."
}
]
}
'import requests
url = "https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts"
payload = { "chunk_prompts": [
{
"index": 0,
"face_prompt": "A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.",
"upper_body_prompt": "A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static."
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chunk_prompts: [
{
index: 0,
face_prompt: 'A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.',
upper_body_prompt: 'A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static.'
}
]
})
};
fetch('https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts', 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://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'chunk_prompts' => [
[
'index' => 0,
'face_prompt' => 'A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.',
'upper_body_prompt' => 'A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static.'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts"
payload := strings.NewReader("{\n \"chunk_prompts\": [\n {\n \"index\": 0,\n \"face_prompt\": \"A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.\",\n \"upper_body_prompt\": \"A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static.\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chunk_prompts\": [\n {\n \"index\": 0,\n \"face_prompt\": \"A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.\",\n \"upper_body_prompt\": \"A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static.\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts")
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 = "{\n \"chunk_prompts\": [\n {\n \"index\": 0,\n \"face_prompt\": \"A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.\",\n \"upper_body_prompt\": \"A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static.\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "22222222-3333-4444-5555-666666666666",
"chunk_prompts": [
{
"index": 0,
"start": 0,
"end": 2.92,
"text": "Welcome to Acme.",
"face_prompt": "A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.",
"upper_body_prompt": "A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static."
}
]
}{
"error": "chunk_prompts must be a non-empty list"
}{
"error": "Invalid API key"
}{
"error": "Take not found"
}{
"error": "Take video has already started"
}Takes
Update take video instructions
Replace face_prompt and upper_body_prompt on every chunk. Window count and timing stay locked. Prompt edits are free. Fails after video has started.
POST
/
clips
/
{clip_id}
/
takes
/
{take_id}
/
prompts
Update take video instructions
curl --request POST \
--url https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chunk_prompts": [
{
"index": 0,
"face_prompt": "A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.",
"upper_body_prompt": "A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static."
}
]
}
'import requests
url = "https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts"
payload = { "chunk_prompts": [
{
"index": 0,
"face_prompt": "A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.",
"upper_body_prompt": "A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static."
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chunk_prompts: [
{
index: 0,
face_prompt: 'A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.',
upper_body_prompt: 'A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static.'
}
]
})
};
fetch('https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts', 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://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'chunk_prompts' => [
[
'index' => 0,
'face_prompt' => 'A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.',
'upper_body_prompt' => 'A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static.'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts"
payload := strings.NewReader("{\n \"chunk_prompts\": [\n {\n \"index\": 0,\n \"face_prompt\": \"A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.\",\n \"upper_body_prompt\": \"A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static.\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chunk_prompts\": [\n {\n \"index\": 0,\n \"face_prompt\": \"A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.\",\n \"upper_body_prompt\": \"A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static.\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://akapulu.com/api/clips/{clip_id}/takes/{take_id}/prompts")
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 = "{\n \"chunk_prompts\": [\n {\n \"index\": 0,\n \"face_prompt\": \"A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.\",\n \"upper_body_prompt\": \"A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static.\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "22222222-3333-4444-5555-666666666666",
"chunk_prompts": [
{
"index": 0,
"start": 0,
"end": 2.92,
"text": "Welcome to Acme.",
"face_prompt": "A lady is talking with animated facial expressions, frequently raising and arching the eyebrows for emphasis. Only the foreground is moving, the background remains static.",
"upper_body_prompt": "A lady is talking to the camera with natural movements while speaking. The torso and shoulders stay steady. Only the foreground person is moving, the background remains static."
}
]
}{
"error": "chunk_prompts must be a non-empty list"
}{
"error": "Invalid API key"
}{
"error": "Take not found"
}{
"error": "Take video has already started"
}Replace
face_prompt and upper_body_prompt on every chunk.
Each object needs index, upper_body_prompt, and face_prompt. Send one object per stored chunk; indexes and timing stay locked. Prompt edits are free and do not regenerate audio.
Fails after video has started.
What to put in those strings is in Workflow.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Show child attributes
Show child attributes
⌘I

