n8n workflow after Sora: HTTP Request nodes for a Sume video job

Rebuild a Sora video workflow in n8n or a similar tool: one POST to Sume /v1/videos, a signed callback_url instead of polling, and a failed-job branch.

4 min readSume
All posts

If an n8n workflow (or any no-code tool with an HTTP request step and a webhook trigger) called the Sora Videos API, replace that step with a POST to https://api.sume.com/v1/videos, send callback_url, and run the rest of the flow from a second workflow that receives Sume's signed webhook. Nothing needs a custom node: the Sume video API is plain JSON over HTTPS with a Bearer key.

A secondary-source guide dates the Sora 2 API shutdown to September 24, 2026 (Higgsfield, read 2026-10-11), so a flow that still calls the old route fails at its first node.

Which request goes in the first node?

Set method POST, URL https://api.sume.com/v1/videos, header Authorization: Bearer plus your key stored as a credential, and a JSON body. Add an Idempotency-Key header built from your row or execution id; a replayed submit then returns the original job instead of a second charge. The response is 202 with id, polling_url, status and model.

{
  "model": "sume/auto",
  "prompt": "{{ prompt from the previous node }}",
  "duration": 8,
  "resolution": "720p",
  "aspect_ratio": "9:16",
  "callback_url": "https://your-host.example/webhook/sume-video"
}

Why a callback instead of a Wait-and-poll loop?

Polling works, but a loop that holds an execution open for each clip wastes workflow capacity. With callback_url, the submit workflow ends at the 202 and a separate webhook-triggered workflow handles completion. Sume signs the raw JSON body and sends x-sume-webhook-timestamp and x-sume-webhook-signature; verify them before you trust the payload, and refuse to run if the signing secret is empty. Keep the handler fast: fetch the file in a later step rather than inside the webhook response.

What should the failure branch do?

Treat a failed job as a decision, not an automatic loop: check the error field first, then resubmit once if it makes sense, with a new Idempotency-Key and the same prompt.

Sume job statuses to branch on (Sume docs, read 2026-10-11)
StatusMeaningBranch
pendingIn the queueWait for the callback
in_progressGeneratingWait for the callback
completedVideo ready in unsigned_urlsDownload with the same Bearer header, then continue
failedGeneration failed; see the error fieldLog it and stop, or resubmit once
cancelledJob canceledStop

Which model should the node pin?

sume/auto resolves to Gemini Omni Flash 1.1 for text, frame-image and reference requests, which accepts 3 to 10 seconds. If your Sora clips ran 12 seconds or longer, pin a model whose supported_durations cover it, found with GET /v1/videos/models, instead of letting an over-limit request return 400.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume