Skip to main content
A voice_memo part tells Relay that an audio file is a spoken message, not a generic attachment. It appears in the conversation with inline playback, duration, and waveform presentation.

Send from a public URL

Use a public HTTPS URL. Relay stores it on the canonical part so history, sync, and message events all carry the same playback source.

Send an uploaded file

Upload the bytes first, then pass the returned attachment_id:
The attachment needs to be available, belong to the sender, and declare an audio/* content type. See Attachments for the raw upload flow and 100 MB limit.

Voice memo or audio attachment

Both use the same file storage. The part discriminator preserves the sender’s presentation intent.

Rules

  • Pass exactly one of url or attachment_id.
  • duration_ms is optional and accepts a non-negative integer.
  • Relay validates the audio/* MIME family for uploaded files and does not transcode them. M4A/AAC (audio/mp4) is the recommended interoperable format; MP3 and WAV are also playable by Relay’s AVFoundation player.
  • Voice memos use the normal message response, history, replies, reactions, idempotency, and delivery/read receipts. There is no second voice-memo delivery pipeline.
Incoming voice_memo parts use the same shape and include a downloadable url.

Next steps