Rendley docs

Exports

Create an export

POST /v1/export

Start an export render job. Provide either `project_id` (a project stored on Rendley) or `project` (render-ready project JSON), but not both. When sending `project` inline, every media item referenced in the JSON (video, image, audio, font) must use a permanent, publicly reachable URL so the render server can resolve and download it; expiring/signed URLs will fail the render. The response returns a job ID; poll `GET /jobs/{id}` for status and the resulting file.

Request

curl -X POST "https://api.rendley.com/v1/export" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "project": {},
    "project_id": "<project_id>",
    "settings": {}
  }'
const res = await fetch("https://api.rendley.com/v1/export", {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "project": {},
    "project_id": "<project_id>",
    "settings": {}
  }),
});
const { data } = await res.json();
import requests

res = requests.post(
    "https://api.rendley.com/v1/export",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
      "project": {},
      "project_id": "<project_id>",
      "settings": {}
    },
)
data = res.json()["data"]

Request body

Name Type Required Description
project object Optional Render-ready project JSON to export inline, used instead of project_id when the project is not stored on Rendley. Every media item referenced in the JSON (video, image, audio, font) must use a permanent, publicly reachable URL so the render server can resolve and download it. Temporary or signed URLs that expire will cause the render to fail.
project_id string Optional ID of a project already stored on Rendley to export. Provide either project_id or project, not both.
settings object Optional Optional render settings. Defaults are applied when omitted.
Example response
{
  "data": {
    "job_id": "string"
  }
}
Response codes
Status Description
200 OK
400 Bad Request
401 Unauthorized

Calculate export cost

POST /v1/export/cost

Calculate the credit cost of an export without starting the render.

Request

curl -X POST "https://api.rendley.com/v1/export/cost" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "project": {},
    "project_id": "<project_id>",
    "settings": {}
  }'
const res = await fetch("https://api.rendley.com/v1/export/cost", {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "project": {},
    "project_id": "<project_id>",
    "settings": {}
  }),
});
const { data } = await res.json();
import requests

res = requests.post(
    "https://api.rendley.com/v1/export/cost",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
      "project": {},
      "project_id": "<project_id>",
      "settings": {}
    },
)
data = res.json()["data"]

Request body

Name Type Required Description
project object Optional Render-ready project JSON to export inline, used instead of project_id when the project is not stored on Rendley. Every media item referenced in the JSON (video, image, audio, font) must use a permanent, publicly reachable URL so the render server can resolve and download it. Temporary or signed URLs that expire will cause the render to fail.
project_id string Optional ID of a project already stored on Rendley to export. Provide either project_id or project, not both.
settings object Optional Optional render settings. Defaults are applied when omitted.
Example response
{
  "data": {
    "credits": 0
  }
}
Response codes
Status Description
200 OK
400 Bad Request
401 Unauthorized