Rendley docs

AI video

The params object is model-specific: pass the parameters defined by the schema of the model_id you choose. Call List AI tools & models to see the available models and the parameters each one accepts.

Generate a video

POST /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

POST /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

POST /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

POST /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

POST /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

POST /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

POST /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

POST /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

GET /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

POST /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

POST /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

GET /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