Files API
Generic file storage for everything that needs an attachment — MMS images, WhatsApp media, agent-side documents, message templates, campaign assets. Files live in Cloud Storage; URLs are signed and time-limited. Base path:/api/v1/files
Authentication: API key (X-API-Key) or session JWT.
Upload limits: 25 MB per file (multipart form data).
Example — upload an image for an MMS
POST /api/v1/messages/sms (with media_url set to the signed URL) to send an MMS.
Presigned download URLs
The signed URL returned on upload (and fromGET /api/v1/files/{id}) is short-lived. When you need a fresh download link — or one with a different lifetime — call GET /api/v1/files/{id}/presign to mint a new S3-style presigned read URL for an existing object.
Use the optional ttl_ms query parameter to control how long the URL stays valid:
url along with expires_at (ISO 8601 UTC) and the effective ttl_ms after clamping. A request for a file ID that does not exist in your tenant namespace responds 404.
See also
- Messaging API → MMS — attach a file to an outbound message