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.

5 min readSume
All posts

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.

n8n payload variables, read 2026-10-02
VariableDefaultMeaning
N8N_PAYLOAD_SIZE_MAX16Maximum payload size in MiB; can be raised
N8N_FORMDATA_FILE_SIZE_MAX200Max 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) or primary_output_url (Format run webhook).
  • Store the URL and the job_id or run_id, not the file.
  • Do not raise N8N_PAYLOAD_SIZE_MAX just to accommodate a download you could avoid.
  • Fetch a fresh result from GET /v1/jobs/{id}/result when 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.

Where the media URL sits, read 2026-10-02
WebhookEventWhere the URL is
Generation jobjob.completedpayload.artifacts[].url
Format runformat.run.terminalpayload.primary_output_url and payload.artifacts
Agent Completion runagent.run.terminalThe 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

All Integrations posts

Written by Sume