Share photos and screenshots with an optional caption — product shots, invoices, or proof of delivery.
At a glance
| Item | Detail |
|---|
type | image |
| Supported formats | JPEG, PNG |
| Maximum file size | 5 MB |
| Media field | content.media_url (aliases: media, url) |
| Caption | Optional content.caption |
| Channel support | Official and unofficial |
The URL must be publicly accessible and return the file directly (no HTML landing page). File extension should match the actual content type.
Request body
| Field | Required | Description |
|---|
channel_id | Yes | Sender channel ID |
to | Yes | Recipient phone number |
type | Yes | image |
content.media_url | Yes | HTTPS URL to the image file |
content.caption | No | Optional caption text |
Example (URL)
curl -X POST "https://api.wazapin.com/v1/messages" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel_id": "wzp_abc123",
"to": "6281234567890",
"type": "image",
"content": {
"media_url": "https://cdn.example.com/images/invoice.png",
"caption": "Bukti pembayaran kamu"
}
}'
Endpoint
POST https://api.wazapin.com/v1/messages
Authenticate with X-Api-Key. See Authentication.
Response
On success, the API returns 201 Created with a message record (status often starts as queued).
{
"data": {
"id": "9f1fd66d-c37a-4b50-a8c2-b4dca523f9c8",
"channel_id": "wzp_abc123",
"to_phone": "6281234567890",
"type": "text",
"status": "queued",
"created_at": "2026-03-04T06:20:10Z",
"updated_at": "2026-03-04T06:20:10Z"
}
}
Track delivery with Webhooks or GET /v1/messages/.