---
title: "Media · Zaiped API documentation"
description: "To send a file, upload it first: POST /media?numberId=... with the raw bytes as the body and the file's Content-Type. The response carries a mediaId, which you pass as media: { path } in the message. One upload serves every number of the account."
lang: "en-US"
canonical: "https://zaiped.com/en/developers/docs/media"
alternate: "https://zaiped.com/developers/docs/media"
---

# Media

To send a file, upload it first: POST /media?numberId=... with the raw bytes as the body and the file's Content-Type. The response carries a mediaId, which you pass as media: { path } in the message. One upload serves every number of the account.

```
curl -X POST "https://zaiped.com/v1/media?numberId=YOUR_NUMBER_ID" \
  -H "Authorization: Bearer zp_..." \
  -H "Content-Type: image/jpeg" \
  --data-binary @photo.jpg
```

Received media arrives with the message.received event: the event carries the messageId, and GET /media/{messageId} returns a signed URL valid for one hour. If Meta has not delivered the bytes yet, the route answers 404 with media_unavailable; retry in a few seconds.