Upload Storage Object
supabase.storage_upload
ActionDatabases & warehousesconnection required
Calls the Supabase API with the connection's credentials.
Upload a file to a Storage bucket, either from inline text or from an upstream node's base64 file payload.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- API key
- Providers
- Supabase
- Secret shape
- the project API key, or {"api_key": "…"} / {"service_role_key": "…"}
- Config it needs
- base_url, schema
- Resolved by
- config.connection_id, else node.connection_id
Configuration
6 fields, 3 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
bucket The Storage bucket name. | string | Yes | — | — | invoices |
path Object key inside the bucket, including any folder prefix. | string | Yes | — | — | 2026/09/invoice-1001.pdf |
body The file contents: text, or a base64 blob when content_encoding is base64 (for example {{ $json.file_content }} from a download node). | string | Yes | — | — | — |
content_encoding Set to 'base64' when body is a base64 blob (e.g. from a download_archive node). Defaults to the upstream file's encoding, else text. | string | No | — | one of "text", "base64" | — |
content_type MIME type stored with the object and returned on download. Defaults to text/plain, or application/octet-stream for base64 bodies. | string | No | — | — | application/pdf |
upsert Replace the object if the key already exists. Without this the API answers 409 Duplicate. | boolean | No | false | — | — |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"bucket": "invoices",
"content_type": "application/pdf",
"path": "2026/09/invoice-1001.pdf",
"upsert": false
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
bucket The bucket written to. | string | — |
path The object key inside the bucket. | string | — |
key The full <bucket>/<path> key the API reported. | string | — |
id The object's Storage id, when the API returned one. | string | — |
size Bytes uploaded. | number | — |
content_type MIME type stored with the object. | string | — |
{
"bucket": "",
"content_type": "",
"id": "",
"key": "",
"path": "",
"size": 0
}See Upload Storage Object run in a workflow.
In a technical demo we add the Supabase connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.