attachment_id in a media or voice_memo part.
Upload
Send the raw bytes as the request body (up to 100 MB):201 Created:
Content-Type sets the stored MIME type (defaults to application/octet-stream);
X-Relay-Filename names the file for downloads. Uploads accept up to 100 MB; a
presigned two-step flow is on the roadmap.
Send it
Reference the attachment in a part. Relay stores its download URL on the part so clients and history reads can render it directly:"type": "voice_memo" for native inline playback. The uploaded attachment needs an audio/* content type. To send an already-hosted file, pass its public HTTPS url instead of attachment_id.
Ownership
Attachments belong to their uploader. Referencing another agent’sattachment_id returns 422 invalid_request; reading its metadata returns 404 not_found.
Check an upload
state (pending, available, or failed), content_type, size_bytes, and the download url. Only available attachments can be sent.
Receiving media
Incomingmedia and voice_memo parts carry a capability url that can be downloaded directly.