AI video
Theparamsobject is model-specific: pass the parameters defined by the schema of themodel_idyou choose. Call List AI tools & models to see the available models and the parameters each one accepts.
Generate a video
/v1/ai/generate-video Enqueue a job to generate a video clip from a text prompt, optionally animating a starting/ending image.
Request
curl -X POST "https://api.rendley.com/v1/ai/generate-video" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "<project_id>"
}' const res = await fetch("https://api.rendley.com/v1/ai/generate-video", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"project_id": "<project_id>"
}),
});
const { data } = await res.json(); import requests
res = requests.post(
"https://api.rendley.com/v1/ai/generate-video",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"project_id": "<project_id>"
},
)
data = res.json()["data"] Request body
| Name | Type | Required | Description |
|---|---|---|---|
model_id | string | Optional | |
params | object | Optional | |
project_id | string | Required |
Response codes
| Status | Description |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
402 | Payment Required |
Generate a video avatar
/v1/ai/generate-video-avatar Enqueue a job to generate a video of a virtual avatar speaking the provided text.
Request
curl -X POST "https://api.rendley.com/v1/ai/generate-video-avatar" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "<project_id>"
}' const res = await fetch("https://api.rendley.com/v1/ai/generate-video-avatar", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"project_id": "<project_id>"
}),
});
const { data } = await res.json(); import requests
res = requests.post(
"https://api.rendley.com/v1/ai/generate-video-avatar",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"project_id": "<project_id>"
},
)
data = res.json()["data"] Request body
| Name | Type | Required | Description |
|---|---|---|---|
model_id | string | Optional | |
params | object | Optional | |
project_id | string | Required |
Response codes
| Status | Description |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
402 | Payment Required |
Calculate video avatar generation cost
/v1/ai/generate-video-avatar/cost Calculate the credit cost of generating a talking avatar video.
Request
curl -X POST "https://api.rendley.com/v1/ai/generate-video-avatar/cost" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "<project_id>"
}' const res = await fetch("https://api.rendley.com/v1/ai/generate-video-avatar/cost", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"project_id": "<project_id>"
}),
});
const { data } = await res.json(); import requests
res = requests.post(
"https://api.rendley.com/v1/ai/generate-video-avatar/cost",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"project_id": "<project_id>"
},
)
data = res.json()["data"] Request body
| Name | Type | Required | Description |
|---|---|---|---|
model_id | string | Optional | |
params | object | Optional | |
project_id | string | Required |
Response codes
| Status | Description |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
Calculate video generation cost
/v1/ai/generate-video/cost Calculate the credit cost of generating a video clip.
Request
curl -X POST "https://api.rendley.com/v1/ai/generate-video/cost" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "<project_id>"
}' const res = await fetch("https://api.rendley.com/v1/ai/generate-video/cost", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"project_id": "<project_id>"
}),
});
const { data } = await res.json(); import requests
res = requests.post(
"https://api.rendley.com/v1/ai/generate-video/cost",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"project_id": "<project_id>"
},
)
data = res.json()["data"] Request body
| Name | Type | Required | Description |
|---|---|---|---|
model_id | string | Optional | |
params | object | Optional | |
project_id | string | Required |
Response codes
| Status | Description |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
Lip-sync a video to audio
/v1/ai/lipsync Enqueue a job to lip-sync a video clip to a separate audio track.
Request
curl -X POST "https://api.rendley.com/v1/ai/lipsync" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "<project_id>"
}' const res = await fetch("https://api.rendley.com/v1/ai/lipsync", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"project_id": "<project_id>"
}),
});
const { data } = await res.json(); import requests
res = requests.post(
"https://api.rendley.com/v1/ai/lipsync",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"project_id": "<project_id>"
},
)
data = res.json()["data"] Request body
| Name | Type | Required | Description |
|---|---|---|---|
audio_file_url | string | Optional | |
clip_id | string | Optional | |
duration | number | Optional | |
model_id | string | Optional | |
params | object | Optional | |
project_id | string | Required | |
video_file_url | string | Optional |
Response codes
| Status | Description |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
402 | Payment Required |
Calculate lipsync cost
/v1/ai/lipsync/cost Calculate the credit cost of lip-syncing a video clip to an audio track.
Request
curl -X POST "https://api.rendley.com/v1/ai/lipsync/cost" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "<project_id>"
}' const res = await fetch("https://api.rendley.com/v1/ai/lipsync/cost", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"project_id": "<project_id>"
}),
});
const { data } = await res.json(); import requests
res = requests.post(
"https://api.rendley.com/v1/ai/lipsync/cost",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"project_id": "<project_id>"
},
)
data = res.json()["data"] Request body
| Name | Type | Required | Description |
|---|---|---|---|
audio_file_url | string | Optional | |
clip_id | string | Optional | |
duration | number | Optional | |
model_id | string | Optional | |
params | object | Optional | |
project_id | string | Required | |
video_file_url | string | Optional |
Response codes
| Status | Description |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
Remove video background
/v1/ai/remove-video-background Enqueue a job to remove the background from a video frame-by-frame, leaving only the foreground subject.
Request
curl -X POST "https://api.rendley.com/v1/ai/remove-video-background" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "<project_id>"
}' const res = await fetch("https://api.rendley.com/v1/ai/remove-video-background", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"project_id": "<project_id>"
}),
});
const { data } = await res.json(); import requests
res = requests.post(
"https://api.rendley.com/v1/ai/remove-video-background",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"project_id": "<project_id>"
},
)
data = res.json()["data"] Request body
| Name | Type | Required | Description |
|---|---|---|---|
clip_id | string | Optional | |
file_url | string | Optional | |
model_id | string | Optional | |
params | object | Optional | |
project_id | string | Required |
Response codes
| Status | Description |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
402 | Payment Required |
Calculate remove video background cost
/v1/ai/remove-video-background/cost Calculate the credit cost of removing the background from a video.
Request
curl -X POST "https://api.rendley.com/v1/ai/remove-video-background/cost" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "<project_id>"
}' const res = await fetch("https://api.rendley.com/v1/ai/remove-video-background/cost", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"project_id": "<project_id>"
}),
});
const { data } = await res.json(); import requests
res = requests.post(
"https://api.rendley.com/v1/ai/remove-video-background/cost",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"project_id": "<project_id>"
},
)
data = res.json()["data"] Request body
| Name | Type | Required | Description |
|---|---|---|---|
clip_id | string | Optional | |
file_url | string | Optional | |
model_id | string | Optional | |
params | object | Optional | |
project_id | string | Required |
Response codes
| Status | Description |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
List video avatars
/v1/ai/video-avatars List the available virtual avatars that can be used for avatar video generation.
Request
curl "https://api.rendley.com/v1/ai/video-avatars" \
-H "Authorization: Bearer YOUR_API_KEY" const res = await fetch("https://api.rendley.com/v1/ai/video-avatars", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data } = await res.json(); import requests
res = requests.get(
"https://api.rendley.com/v1/ai/video-avatars",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"] Example response
{
"data": [
{
"avatar_name": "string",
"gender": "string",
"id": "string",
"model_id": "string"
}
]
} Response codes
| Status | Description |
|---|---|
200 | OK |
401 | Unauthorized |
Translate a video
/v1/ai/video-translate Enqueue a job to translate the spoken content of a video into another language and dub it back in.
Request
curl -X POST "https://api.rendley.com/v1/ai/video-translate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "<project_id>"
}' const res = await fetch("https://api.rendley.com/v1/ai/video-translate", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"project_id": "<project_id>"
}),
});
const { data } = await res.json(); import requests
res = requests.post(
"https://api.rendley.com/v1/ai/video-translate",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"project_id": "<project_id>"
},
)
data = res.json()["data"] Request body
| Name | Type | Required | Description |
|---|---|---|---|
clip_id | string | Optional | |
duration | number | Optional | |
file_url | string | Optional | |
model_id | string | Optional | |
params | object | Optional | |
project_id | string | Required |
Response codes
| Status | Description |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
402 | Payment Required |
Calculate video translation cost
/v1/ai/video-translate/cost Calculate the credit cost of translating and dubbing a video into another language.
Request
curl -X POST "https://api.rendley.com/v1/ai/video-translate/cost" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "<project_id>"
}' const res = await fetch("https://api.rendley.com/v1/ai/video-translate/cost", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"project_id": "<project_id>"
}),
});
const { data } = await res.json(); import requests
res = requests.post(
"https://api.rendley.com/v1/ai/video-translate/cost",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"project_id": "<project_id>"
},
)
data = res.json()["data"] Request body
| Name | Type | Required | Description |
|---|---|---|---|
clip_id | string | Optional | |
duration | number | Optional | |
file_url | string | Optional | |
model_id | string | Optional | |
params | object | Optional | |
project_id | string | Required |
Response codes
| Status | Description |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
List video translate languages
/v1/ai/video-translate/languages List the languages supported as targets for video translation.
Request
curl "https://api.rendley.com/v1/ai/video-translate/languages" \
-H "Authorization: Bearer YOUR_API_KEY" const res = await fetch("https://api.rendley.com/v1/ai/video-translate/languages", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data } = await res.json(); import requests
res = requests.get(
"https://api.rendley.com/v1/ai/video-translate/languages",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"] Example response
{
"data": [
{
"id": "string",
"name": "string"
}
]
} Response codes
| Status | Description |
|---|---|
200 | OK |
401 | Unauthorized |