n8n payload limit 16 MiB: pass Sume artifact URLs, not video bytes
n8n caps webhook payloads at 16 MiB and form-data files at 200 MiB. A Sume callback is small JSON with media URLs, so keep the video out of the payload.

n8n's default maximum webhook payload is 16 MiB, and 200 MiB for files in form-data webhook payloads. A Sume callback never gets near either, because it carries JSON with media.sume.com artifact URLs rather than the video itself. The risk is in your next steps: downloading the file into n8n and passing it from node to node.
The n8n numbers are from its Endpoints environment variables page, read on 2026-10-02.
What are the n8n payload settings?
Both are settings of a self-hosted instance. Raising them takes a configuration change, and a reverse proxy in front may have its own body limit.
| Variable | Default | Meaning |
|---|---|---|
| N8N_PAYLOAD_SIZE_MAX | 16 | Maximum payload size in MiB; can be raised |
| N8N_FORMDATA_FILE_SIZE_MAX | 200 | Max size in MiB for files in form-data webhook payloads |
What does a Sume callback actually weigh?
A job webhook, per the webhook docs, is an event name, ids, a status and a payload.artifacts array, where each artifact has an id, a url, a type and a content_type. Format run webhooks, per run webhooks, carry the run receipt with primary_output_url and artifacts. In both cases the bytes stay on Sume's media host.
That is why a 16 MiB cap is irrelevant for the callback and relevant for the next node, if you download the file into the workflow.
How do I keep the video out of n8n?
Hand the URL to the destination and let it fetch. Many targets accept a public URL: a Slack message, an email link, a CMS field, a Sheets cell. If a target needs an upload, check its own size limit, since that is the real ceiling.
- Read
payload.artifacts[0].url(job webhook) orprimary_output_url(Format run webhook). - Store the URL and the
job_idorrun_id, not the file. - Do not raise
N8N_PAYLOAD_SIZE_MAXjust to accommodate a download you could avoid. - Fetch a fresh result from
GET /v1/jobs/{id}/resultwhen you need the URLs again.
How do I know the callback itself is small?
Look at one. Sume's Send test posts a signed dummy webhook.test body to a URL you type, and a real job's webhook has the shape shown in the docs. In n8n, open the execution and read the incoming item size beside the artifact URLs. The numbers you see will be tiny next to 16 MiB.
If an upstream tool is sending you big payloads, that is a different integration. With Sume as the sender, the only way to hit the limit is to build a payload yourself, for example by embedding base64 media in a request body, which Sume's media inputs do not need, because they take public HTTPS URLs.
Which Sume surfaces return which URL?
Branch on event, not on the presence of a field, because the two surfaces share one signature scheme but have different payloads.
| Webhook | Event | Where the URL is |
|---|---|---|
| Generation job | job.completed | payload.artifacts[].url |
| Format run | format.run.terminal | payload.primary_output_url and payload.artifacts |
| Agent Completion run | agent.run.terminal | The run receipt in payload |
What if I do need the bytes in n8n?
Then download once, in the last node that needs the file, and test with the largest file you expect. The size of what you generate depends on the model and length, so measure one rather than assuming. n8n upload file to Google Drive shows the upload end. Everything else about the callback, including dedupe on job_id, is the same as in any other receiver.
Sume's webhook body does not include the media bytes in any mode, so there is no setting on the Sume side to shrink it.
Treat the numbers on the vendor page as the current word, and reread it before you rely on them in a design review, since limits like these are changed from time to time by their owners and your copy of the number may be stale.
Sources
Related posts
More in Integrations
- n8n Remove Duplicates node: skip repeat rows before Sume calls
Use n8n's Remove Duplicates node in previous-executions mode so a repeated row never reaches a paid Sume call, and keep an Idempotency-Key for retries.
- n8n WEBHOOK_URL deprecated in 2.35: the URL Sume will accept
n8n 2.35.0 deprecates WEBHOOK_URL for N8N_WEBHOOK_URL. Sume only calls public HTTPS webhook URLs, so a wrong base URL fails at submit. How to set and test it.
- OpenHands MCP server: add Sume as a Streamable HTTP server
Add Sume's hosted MCP to OpenHands as a Streamable HTTP server with a bearer API key, and know why OAuth does not suit unattended OpenHands runs.
- Perplexity Agent API MCP tool: connect Sume with allowed_tools
Perplexity's Agent API runs every MCP tool call with no approval step. Connect Sume's hosted MCP with an allowed_tools list so a model cannot reach paid tools.
Written by Sume