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.

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.
| Status | Meaning | Branch |
|---|---|---|
| pending | In the queue | Wait for the callback |
| in_progress | Generating | Wait for the callback |
| completed | Video ready in unsigned_urls | Download with the same Bearer header, then continue |
| failed | Generation failed; see the error field | Log it and stop, or resubmit once |
| cancelled | Job canceled | Stop |
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
- n8n instance-level MCP plus Sume MCP in one AI client
Connect n8n's instance-level MCP server and Sume's hosted MCP to the same AI client: two URLs, two credentials, and which one pays for a render.
- n8n MCP Client Tool: Tools to Include modes for Sume
n8n's MCP Client Tool can expose All, Selected, or All Except tools. How to pick the set for Sume so an AI Agent node reads freely but cannot spend by accident.
- Neovim mcphub.nvim: Sume hosted MCP with autoApprove for read tools
mcphub.nvim reads remote MCP servers from servers.json. Add Sume with a Bearer header, autoApprove only read tools, and leave paid generation to confirm.
- Personal Agent Protocol Draft 0.1 vs MCP OAuth: what Sume grants
Meta and Sierra announced the Personal Agent Protocol on Oct 6. How its read or write sign-in compares with Sume's hosted MCP OAuth scopes today.
Written by Sume