Once I get a binary file via API call, I cannot pin the data, due to file size. Therefore, I do not know how to test the workflow without waiting 3 minutes for the file to be continually reproduced, and a nice fat bill at the end of the month for API use. There has to be a way to test such a workflow. Anyone have any ideas?
I’d recommend testing with a very small sample size. You can also replicate the data structure, and use a code block to create sample data instead of connecting it to real data. Test on the small data, and move to real data once you are comfortable with with the workflow.
You’re totally right — this is a common pain point when working with large binary files in n8n. Since pinning is limited to 12MB, testing workflows that involve binaries (like PDFs, videos, or images from APIs) becomes tricky. Here are some ideas you can try:
Option 1: Simulate Binary with a Smaller File
Use a Set node or local file to inject a smaller sample version of the binary file (e.g., trim a PDF, use a small JPG). You can mimic the file structure like this:
You can disable the API trigger node (or mock it with static data), run the workflow from any middle node, and simulate the input manually. It won’t be exactly the same binary, but lets you test the logic downstream.
Option 3: Save the File Once, Then Read from Disk
Let the binary download once from the API.
Use a Write Binary File node to store it locally (e.g., /tmp/sample.pdf)
Temporarily replace the HTTP Request node with a Read Binary File node during testing.
This avoids repeated API calls while you test the rest of the workflow.
Bonus: Feature Request
You could consider voting for or proposing a feature like “Simulated Pin for Binary Metadata” — just pin the file reference, not the whole payload.
This is good! For options 1 and 2 though, does this insinuate that this is not possible on a cloud version? I’m self-hosting via RepoCloud, not a local machine — so how would it be possible to even “test” with a file? Would it have to be hosted to Google Drive, for example, and then fetech/downloaded in the actual execution?