Skip to main content
POST
/
render
// Node.js (using fetch)
import fetch from "node-fetch";

const apiUrl = "https://api.joinoverlap.com/render";

const headers = {
  "Content-Type": "application/json",
  "Authorization": "Bearer YOUR_API_KEY"
};

const payload = {
  companyId: "brandlive-prod",
  clipId: "<CLIP_ID>"
};

fetch(apiUrl, {
  method: "POST",
  headers,
  body: JSON.stringify(payload)
})
  .then(res => res.json())
  .then(data => console.log(data))
  .catch(err => console.error(err));

Endpoint

POST https://api.joinoverlap.com/render
This endpoint renders an existing clip when changes are made on the frontend (e.g., subtitle edits, trimming adjustments). This process runs synchronously and will take about 20 seconds + 50% of the video length

Authentication

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Request Body

{
  "companyId": "string",
  "clipId": "string" // As obtained from the clip document in /workflow-results
}
// Node.js (using fetch)
import fetch from "node-fetch";

const apiUrl = "https://api.joinoverlap.com/render";

const headers = {
  "Content-Type": "application/json",
  "Authorization": "Bearer YOUR_API_KEY"
};

const payload = {
  companyId: "brandlive-prod",
  clipId: "<CLIP_ID>"
};

fetch(apiUrl, {
  method: "POST",
  headers,
  body: JSON.stringify(payload)
})
  .then(res => res.json())
  .then(data => console.log(data))
  .catch(err => console.error(err));

Field Descriptions

FieldTypeDescription
companyIdstringOrganization identifier
clipIdstringID of the clip to re-render

Response

{
 	"status": "finished" | "failed" | "rendering",
	"renderUrl": "string",
	"error": // if relevant
	"code": // Specific error event, if relevant
}

Field Descriptions

FieldTypeDescription
statusstringsuccess or error
renderUrlstringURL of the newly rendered clip

Performance & Behavior

  • Runs synchronously
  • Expected runtime: 20 seconds + video_length_seconds * 0.5

View Clip Data Model

Understand all available clip fields