Skip to main content
POST
https://api.joinoverlap.com
/
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 launches an Overlap clipping workflow from an existing template for a given long-form video URL.
  • You must provide companyId, workflowId, and url.
  • All other fields are optional overrides. If you include them, they override the template’s defaults for this trigger only (they do not change the saved template).
  • Override behavior: An override is only applied if the corresponding node exists in the referenced workflow. If the workflow does not include that node, the override is ignored.
The endpoint returns a triggerId which you’ll 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
Overrides: Every other field is optional and overrides the template defaults for this run.
{
  "companyId": "string",
  "workflowId": "string",
  "url": "string",

 /* Optional Overrides */

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

  "subtitleConfig": { /* SubtitleConfig */ },

  "titleOverlay": "boolean",
  "titleConfig": { /* TitleConfig */ },

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

Definitions

SubtitleConfig (map)

See also: StyleConfig
{
  "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"
}

TitleConfig (map)

Controls the AI-generated title overlay node (when present in the workflow).
{
  "allCaps": "boolean",
  "backgroundColor": "string",
  "backgroundOpacity": "number",
  "backgroundStyle": "string",
  "borderRadius": "number",
  "boxShadow": "string",
  "characterSpacing": "number",
  "duration": "number",
  "fontColor": "string",
  "fontFamily": "string",
  "fontScale": "number",
  "fontWeight": "string",
  "lineHeight": "number",
  "lineMargin": "number",
  "padding": "number",
  "prompt": "string",
  "text": "string",
  "textAlign": "string",
  "verticalPadding": "number",
  "yPosition": "number"
}

Field Descriptions (Condensed)

FieldTypeDescription
companyIdstringRequired. Brandlive org/company identifier
workflowIdstringRequired. Workflow/template identifier to launch
urlstringRequired. Publicly accessible long-form video URL
orientationstringOverride output orientation for this run (e.g., horizontal, vertical)
minLengthTarget / maxLengthTargetnumberOverride clip duration bounds (seconds)
musicUrlstringOverride background music URL
brollbooleanOverride: enable/disable automatic b-roll
removeFillerWords / removeStutteredWords / removeSilencesbooleanOverride cleanup options
outroImageUrl / outroMusicUrlstringOverride outro media
subtitlesbooleanOverride: include subtitles
subtitleConfigmapOverride subtitle style (applies only if subtitle node exists in workflow)
titleOverlaybooleanOverride: enable/disable title overlay (if title node exists in workflow)
titleConfigmapOverride title overlay styling/prompt (if title node exists in workflow)
watermarkUrlstringOverride watermark URL
keywordsstring[]Override transcription enrichment keywords (max 150)
promptAdjustmentstringOverride prompt extension for custom behavior

Response

{
  "triggerId": "string",
  "status": "pending",
  "message": "string"
}
  • triggerId — Use this to poll for results via GET /workflow-results/{triggerId}
  • status — Typically "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