Make.com Base64 File Upload: Send JSON and Get a Public URL
Make can pass file data between modules, but not every scenario has a clean file object. Some apps return PDFs, CSVs, invoices, or images as a base64 string inside JSON.
When that happens, the easiest path is to keep the request as JSON. FilePost accepts base64 file data and returns a permanent public CDN URL.
When to Use This Flow
- A vendor API returns a PDF or image as a base64 field.
- A document-generation module produces base64 output.
- Your webhook payload contains file bytes as text.
- Multipart form-data mapping is awkward for the specific module.
If Make has a normal file object, use the broader Make file upload guide. That path uses multipart form-data. This page is for base64-in-JSON scenarios.
HTTP Module Settings
Use Make's HTTP app and choose Make a request. Make's HTTP documentation says the module supports JSON request bodies and multipart/form-data file uploads, which are the two FilePost upload shapes.
| Setting | Value |
|---|---|
| URL | https://filepost.dev/v1/upload/base64 |
| Method | POST |
| Body content type | application/json |
| Header | X-API-Key: fh_your_api_key |
| Parse response | Yes |
Official reference: Make HTTP app documentation.
JSON Body
Map your prior module's base64 field into data_base64. Use the real mapped value from your Make module.
{
"filename": "invoice.pdf",
"content_type": "application/pdf",
"data_base64": "{{1.base64}}",
"expires_in": "7d"
}
Use expires_in only when the file is temporary. Remove it for a permanent URL.
Response Mapping
After Make parses the response, map the FilePost URL into the next module:
{
"file_id": "a1b2c3d4e5f6",
"url": "https://cdn.filepost.dev/file/filepost/uploads/a1/a1b2c3/invoice.pdf",
"name": "invoice.pdf",
"size": 84210,
"content_type": "application/pdf",
"expires_at": "2026-07-02T12:00:00Z"
}
The field you normally want is url. Put it in Airtable, Google Sheets, Slack, email, HubSpot, a webhook response, or any downstream JSON body.
Common Mistakes
Using a data URL instead of base64
If your field starts with data:application/pdf;base64,, FilePost can handle it, but plain base64 is easier to debug. If your scenario has a text transform step, strip the prefix before sending.
Mapping the wrong field
Run the previous module once, inspect the output, and copy the exact base64 field. Do not guess the mapping path. A common failure is mapping a filename or URL field instead of the actual base64 payload.
Uploading large files as base64
Base64 increases payload size. If the file is large and Make has a file object, use multipart upload instead.
Turn Make base64 files into URLs
Send JSON to FilePost and map the returned CDN URL into the rest of your scenario.
Get Your API Key