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

const apiUrl = "https://api.joinoverlap.com/trigger-template";

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

const payload = {
  companyId: "brandlive-prod",
  workflowId: "webinar-template",
  url: "https://brandlive.com/webinars/stream123.mp4",
  broll: true
};

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/trigger-template
This endpoint starts the full Overlap clipping workflow for a given long-form video URL. It returns a triggerId which you will use to poll for status and retrieve generated clips.

Authentication

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Request Body

Required fields: companyId, workflowId, url All other fields are optional.
{
  "companyId": "string",
  "workflowId": "string",
  "url": "string",

  "orientation": "string",
  "minLengthTarget": "number",
  "maxLengthTarget": "number",
  "musicUrl": "string",
  "broll": "boolean",
  "removeFillerWords": "boolean",
  "removeStutteredWords": "boolean",
  "removeSilences": "boolean",
  "outroImageUrl": "string",
  "outroMusicUrl": "string",
  "subtitles": "boolean",

  "subtitleConfig": {
    "amplifiedColor": "string",
    "amplifiedOpacity": "number",
    "amplifyOpacityTransitionDuration": "number",
    "amplifySpokenWords": "boolean",
    "animationStyle": "string",
    "backgroundColor": "string",
    "backgroundBorderRadius": "number",
    "backgroundFillStyle": "string",
    "backgroundOpacity": "number",
    "backgroundPadding": "number",
    "fontColor": "string",
    "isItalic": "boolean",
    "outlineColor": "string",
    "maxCharsPerLine": "number",
    "subtitleY": "number"
  },

  "watermarkUrl": "string",
  "keywords": "string[]",
  "promptAdjustment": "string"
}

Field Descriptions (Condensed)

FieldTypeDescription
companyIdstringRequired. Brandlive org/company identifier
workflowIdstringRequired. Workflow/template to use
urlstringRequired. Publicly accessible long-form video URL
minLengthTarget / maxLengthTargetnumberClip duration bounds
musicUrlstringBackground music
brollbooleanEnable automatic b-roll
removeFillerWords / removeStutteredWords / removeSilencesbooleanCleanup options
outroImageUrl / outroMusicUrlstringOutro media
subtitlesbooleanWhether to include subtitles
subtitleConfigobjectSee StyleConfig for attributes
watermarkUrlstringOverlay watermark
keywordsstring[]Custom words for transcriptions enrichment. Limited to 150 max.
promptAdjustmentstringPrompt extension for custom behavior

Response

{
  "triggerId": "string",
  "status": "pending",
  "message": "string"
}
  • triggerId — Use this to poll for results via GET /{triggerId}/status
  • status — Always "pending" immediately after triggering
  • message — Additional context

// Node.js (using fetch)
import fetch from "node-fetch";

const apiUrl = "https://api.joinoverlap.com/trigger-template";

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

const payload = {
  companyId: "brandlive-prod",
  workflowId: "webinar-template",
  url: "https://brandlive.com/webinars/stream123.mp4",
  broll: true
};

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

Sample Response

{
  "triggerId": "c1a27b63-91d9-45fb-9c89-5f418442fb6e",
  "status": "pending",
  "message": "Workflow triggered successfully."
}

Processing Time

  • Horizontal clips: ~3 minutes per hour of input
  • Vertical clips: ~10 minutes per hour
  • Actual duration varies depending on template configuration and video complexity.

Notes & Considerations

Filler words and stuttered words will be removed from the transcript and on-screen captions, without affecting the video timeline. Silences will be cut from the video entirely.
See our guide on prompting best practices. We recommend using markdown.
No! By default, we will apply all of the same styling as your configured template. For example, if you designed a template to return vertical clips with red subtitles and soft background music, then any request made with only the url parameter will include this styling.You should use the properties to override template styling, when desired. If you wanted the subtitles to be blue instead of red, then you would pass that specific attribute.

Next Step

Check Workflow Status

Poll for clip results using your triggerId