file_uuid, which you then pass to a send action.
1
Request an upload URL
{ filename, mime_type, size_bytes }. It returns 201 with
file_uuid, upload_url, upload_token, storage_path, and expires_at.2
Upload the binary
upload_url you received, before it expires
(expires_at).3
Confirm
{ file_uuid }. It returns 200 with file_uuid, mime_type,
size_bytes, download_url, and expires_at. From here the file_uuid is
sendable.file_uuid to a send action — as direct media in
send_message, or as a template header:
header.type ∈ image | video | document carries file_uuid
(document accepts an optional filename). In send_message media mode, the
file_uuid goes at the action level with body as an optional caption (audio
doesn’t accept a caption).
Executable example
The full flow in three calls. Thefile_uuid confirmed in step 3 is the one you
then pass to a send action.
1 · Request an upload URL
upload_url before it expires