Workflow integrations (n8n, Zapier & Make)

Automate AI video upscaling in n8n, Zapier, Make, Dify and Coze with the VideoUpscaler API, webhooks, templates and community node.

Automate video upscaling to 1080p, 2K or 4K inside your automation pipelines — for example when a new clip lands in Google Drive, S3 or Frame.io, or right after an AI video generator finishes a render.

Paid accounts only

Workflow integrations call the VideoUpscaler API and use your account's credits. Create an API key (vu_live_…) in Settings → API Keys on an account that has bought credits or subscribed.

Quick downloads

ResourceLinkBest for
n8n Community Noden8n-nodes-videoupscalerOne-node upscale + wait inside self-hosted or cloud n8n
n8n Workflow Templaten8n-videoupscaler-workflow.jsonImport straight into n8n (HTTP Request + 45s long-poll loop)
Make Blueprintmake-videoupscaler-blueprint.jsonImport straight into Make.com scenarios
OpenAPI 3.1 Specopenapi.jsonOne-click Custom Tool import in Dify, Coze, Postman and OpenAI Actions

n8n integration

You can connect VideoUpscaler to n8n in three ways: install the community node, import our ready-made workflow JSON, or attach the remote MCP server to an n8n AI Agent.

In n8n, open Settings → Community Nodes, click Install, and enter:

n8n-nodes-videoupscaler
  1. Add a VideoUpscaler node to your workflow.
  2. Create a VideoUpscaler API credential and paste your vu_live_… key.
  3. Choose Resource: Video, Operation: Upscale, set Video URL and Resolution (1080p, 2k or 4k).
  4. Leave Wait for Completion enabled — the node automatically waits for the GPU job to finish and outputs output_url.

Works on every n8n instance without installing community nodes:

  1. Download n8n-videoupscaler-workflow.json.
  2. In your n8n canvas, open the menu (⋯) → Import from File… and select the file.
  3. Open the Start Upscale and Poll Task HTTP Request nodes, select Header Auth, and set:
    • Name: Authorization
    • Value: Bearer vu_live_YOUR_API_KEY

The template submits the video with Idempotency-Key: {{ $execution.id }} and long-polls GET /api/v1/tasks/{{ $json.id }}?wait=45 until status is completed.

If your n8n workflow uses an AI Agent node, attach an MCP Client Tool node:

  • SSE / Streamable HTTP Endpoint: https://videoupscaler.co/api/mcp
  • Authentication: Header Auth (Authorization: Bearer vu_live_YOUR_API_KEY)

The agent automatically discovers upscale_video, get_task, list_tasks and get_account.


Zapier integration

Because video upscaling takes from 20 seconds to several minutes, Zapier works best with our webhook_url callback using two Zaps:

Zap 1 — Submit the video when a trigger fires

  1. Trigger: Choose your source (for example Google Drive — New File in Folder or Dropbox — New File).
  2. Action: Choose Webhooks by Zapier → Custom Request (or POST):
    • Method: POST
    • URL: https://videoupscaler.co/api/v1/upscale
    • Headers:
      • Authorization: Bearer vu_live_YOUR_API_KEY
      • Content-Type: application/json
    • Data (JSON):
{
  "video_url": "https://your-public-file-link.mp4",
  "resolution": "4k",
  "webhook_url": "https://hooks.zapier.com/hooks/catch/YOUR_ZAP_2_HOOK"
}

Zap 2 — Receive the upscaled video

  1. Trigger: Choose Webhooks by Zapier → Catch Hook and copy the webhook URL into Zap 1's webhook_url field.
  2. Filter (optional): Continue only if status exactly matches completed.
  3. Action: Pass output_url to Google Drive — Upload File, Slack — Send Channel Message, or your publishing step.

Make (Integromat) integration

  1. Download make-videoupscaler-blueprint.json.
  2. In a new Make scenario, click More (⋯) at the bottom toolbar → Import Blueprint and upload the file.
  3. Replace vu_live_YOUR_API_KEY in the HTTP — Make a request module headers with your API key.

For videos under a minute, the second module (GET https://videoupscaler.co/api/v1/tasks/{{1.data.id}}?wait=45) holds the connection for up to 45 seconds and returns output_url directly in a single scenario run. For longer videos, pass Make's Custom webhook URL as webhook_url in POST /api/v1/upscale.


Dify, Coze & OpenAI Actions

Platforms that support OpenAPI tools can import all VideoUpscaler endpoints at once:

  • Schema URL: https://videoupscaler.co/openapi.json
  • Authentication: API Key / Bearer (Authorization: Bearer vu_live_…)

In Dify (Tools → Custom → Create Custom Tool) or Coze (Plugins → Create Plugin → Import from OpenAPI), paste the schema contents from /openapi.json and configure Bearer authentication with your API key.


Webhook & long-polling reference

Webhook callbacks (webhook_url)

Pass webhook_url (any public https:// URL) in POST /api/v1/upscale:

curl https://videoupscaler.co/api/v1/upscale \
  -H "Authorization: Bearer $VIDEOUPSCALER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://example.com/clip.mp4",
    "resolution": "4k",
    "webhook_url": "https://hooks.example.com/videoupscaler"
  }'

When the task finishes, VideoUpscaler sends an HTTP POST to webhook_url with:

  • Header X-VideoUpscaler-Event: task.completed or task.failed
  • Header X-VideoUpscaler-Task-Id: the task UUID
  • JSON body: the full task object (including output_url when completed, or error when failed)

Long-polling (?wait=45)

Add ?wait=45 (1–45 seconds) to GET /api/v1/tasks/{id} to hold the request open until the task finishes or the timer expires:

curl "https://videoupscaler.co/api/v1/tasks/TASK_ID?wait=45" \
  -H "Authorization: Bearer $VIDEOUPSCALER_API_KEY"

Enhancement options (ops)

You can also pass an optional ops object in POST /api/v1/upscale to combine upscaling with restoration filters:

{
  "video_url": "https://example.com/clip.mp4",
  "resolution": "4k",
  "ops": {
    "engine": "flashvsr",
    "denoise": 2,
    "stabilize": true,
    "faceRestore": false,
    "fpsMultiplier": 2
  }
}