Kling API in n8n: HTTP Request node, auth, and waiting
Call the Kling API from n8n with an HTTP Request node and a Bearer credential, then poll or resume a Wait node. Direct to Kling, or kling-3 through Sume.

To use the Kling API in n8n, call it from an HTTP Request node: one POST creates the video task, then a Wait node either pauses between status checks or resumes when a callback arrives. You can call Kling directly with a Kling API key, or call Kling 3.0 through Sume's POST /v1/videos with model: "kling-3" and a Sume key. Either way it is a plain HTTPS call; Sume has no official n8n node.
n8n facts come from its HTTP Request, HTTP Request credentials and Wait docs; Kling facts from its Kling 3.0, Authentication and Callback pages; Sume facts from Video generation. All read on 2026-09-28.
How do I authenticate the Kling API in n8n?
Both APIs take a Bearer token, so use n8n's generic Bearer auth credential. n8n describes it as header auth with the name Authorization and the value Bearer <token>. Kling's current endpoints, the ones with the model version in the path, take a Kling API key created in the Kling AI console; its older endpoints that pass the model as model_name need a JWT signed from an AccessKey and SecretKey instead.
For Sume, put $SUME_API_KEY in the same kind of credential. Sume's Authentication rules say to keep keys on trusted servers or secret stores, never in frontend code.
| Node setting | Kling direct | Through Sume |
|---|---|---|
| URL | https://api-singapore.klingai.com/text-to-video/kling-3.0 | https://api.sume.com/v1/videos |
| Length | settings.duration, 3–15 s | duration, 4–15 s for kling-3 |
| Callback field | options.callback_url | callback_url (HTTPS) |
| Callback fires | When the task status changes | Once, at a terminal state |
| Status values | submitted, processing, succeeded, failed | pending, in_progress, completed, failed, cancelled |
How do I send the request from the HTTP Request node?
Set Method to POST and Send Body to JSON, and enter the body with Using JSON. The node can also import a curl command, but n8n notes that the import turns every value into a string; switch to Using JSON to keep numbers and booleans typed. The Sume body for kling-3, with the callback pointed at the Wait node:
- Add an
Idempotency-Keyheader: a retry with the same key and the same body returns the original job. The resume URL differs in every execution, so a new execution sends a new body and needs a new key. - The answer is
202with a jobid, apolling_url, andstatus: pending.
{
"model": "kling-3",
"prompt": "Cinematic product orbit on a clean table.",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16",
"generate_audio": false,
"callback_url": "{{ $execution.resumeUrl }}"
}How do I wait for the Kling video to finish?
n8n's Wait node can resume On Webhook Call. It provides $execution.resumeUrl, a URL unique to each execution that you send to the other service before the Wait node runs. The n8n Wait node guide covers that pattern in depth.
- Through Sume, the callback arrives once the job is terminal. Read the job again with
GET /v1/videos/{id}and your key rather than trusting the resume body. - Kling direct notifies when the task status changes, so a call to the resume URL can arrive before the video is done. Check the status and loop back if it is not
succeeded. - In current code Sume refuses a callback URL with a non-default port, such as
:5678, so a self-hosted n8n needs a public HTTPS resume URL without one; otherwise poll. - To poll instead, use Wait After Time Interval, then a GET. Sume's docs suggest about 30 seconds between polls; generation takes 30 seconds to several minutes.
How do I download the finished video in n8n?
Through Sume, add an HTTP Request node that GETs https://api.sume.com/v1/videos/{id}/content with the same credential. That route redirects to the file, and n8n follows redirects by default. Set the node's Response Format to File to get the MP4 as binary data.
How much does Kling 3.0 cost through Sume?
Sume bills video at the provider's list price × 1.25, reserved when you submit. For kling-3 that is $0.14 per second silent and $0.21 per second with audio, plus a 5.5% agent fee by default. In current code audio is on unless you send generate_audio: false. Kling 3.0 API compares this with Kling's own per-second Units.
Sources
- n8n: HTTP Request node (read 2026-09-28)
- n8n: HTTP Request credentials (read 2026-09-28)
- n8n: Wait node (read 2026-09-28)
- Kling API: Kling 3.0 text to video (read 2026-09-28)
- Kling API: Authentication (read 2026-09-28)
- Kling API: Callback protocol (read 2026-09-28)
- Video generation
- Authentication
- API reference
- Sume API reference
Related posts
More in Integrations
- Langflow MCP client: add Sume's hosted MCP server
Use Langflow as an MCP client for Sume's hosted server: register it with a Bearer global variable, then wire MCP Tools into an Agent.
- LibreChat MCP server: add Sume in librechat.yaml
Add Sume's hosted MCP server to LibreChat under mcpServers in librechat.yaml: streamable-http, a Bearer key header, and requiresOAuth set to false.
- LlamaIndex MCP: load Sume's hosted tools into an agent
Load Sume's hosted MCP tools into a LlamaIndex agent with BasicMCPClient and aget_tools_from_mcp_url, a Bearer key header, and allowed_tools.
- Make.com scheduler: run a scenario daily to make a video
Make.com schedules each scenario in its Schedule settings: intervals, daily, weekly, monthly, set dates, or on demand. Start a daily video run this way.
Written by Sume