I’m hitting this issue too and wanted to share / sense check my workaround:

Create two internal APIs and one Backend Workflow:

API 1: ‘Get image’


This is so simple - just turns any Bubble URL into a ‘file’ (‘Send file’ as form data didn’t work).

API 2: ‘Base64 image’


This uses an API auth token (for security) and then submits an ‘image’ key with the URL of the file you want to convert into base64. File can be private, or not, it’s server side and tests seemed positive for either.

Backend Workflow


Just one key - image - which is used to call API 1


Calling API 1 with our image URL


Returning our file (from API 1) with the base64 data

So we call API 2 with our Image URL, which calls API 1 to return the file which is used in the BE Workflow to get the Base64 as a JSON returned API data.

It’s janky, for sure, but it does seem to work and doesn’t require duplicating & deleting files. Which may be better? I’m learning & testing.