Vocatech

By area

Media

Written beside the API’s code, and read from it every hour.

Plain text
MethodPathWhat it does
GET/v1/media/{id}A signed download link for one attachment, recording or fax
Id starts withWhat it isWhere the id comes from
att_A message attachmentattachments in GET /v1/messages and in message webhooks
rec_A call recordingrecording_url, or a part's url in recordings, on a call leg
fax_A fax documentfax_id in GET /v1/faxes and in fax webhooks
A recording200 OK
{
  "id": "rec_58213407",
  "type": "recording",
  "content_type": "audio/mp3",
  "format": "mp3",
  "duration": 264,
  "url": "<a signed link, good for 30 minutes>",
  "expires_at": "2026-09-24T14:05:12.000Z",
  "part": 1,
  "parts": 1,
  "recording_id": 10592210,
  "start_time": "2026-09-24T13:02:25.000Z"
}
An attachment200 OK
{
  "id": "att_902114",
  "type": "attachment",
  "source": "sms",
  "content_type": "image/jpeg",
  "filename": "side-entrance.jpg",
  "size": 184220,
  "url": "<a signed link, good for 30 minutes>",
  "expires_at": "2026-09-24T14:05:12.000Z"
}
  • The url works for 30 minutes and needs no key. Ask again for a fresh one.
  • An attachment on a text you sent answers with the link you sent it with, and no expires_at.
  • A recording answers with its latest part. Add ?part=N for part N of a call that was parked and picked up again (from 1, oldest first). The answer names its part of parts, its recording_id and start_time. A part that does not exist answers 404, and the message says how many parts there are.
  • A fax answers with content_type: application/pdf and its pages.
  • API Messaging keys may fetch attachments only. A recording or a fax answers them 403.
  • 404: not found, not yours, or not ready yet. 410: the attachment is gone. 503: storage trouble on our side. The file exists, so tell us.

Media in the API reference