Delete media
Deletes an uploaded media object at Meta.
Meta's reference: https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media
API-key scope: whatsapp.messages.
Authorization
bearerAuth Long-lived ES256 JWT minted from the dashboard (https://app.sautikit.com/developers/api-keys). Signed by the
platform keyring. Carries workspace_id and scopes claims;
revoked via the platform deny-list.
In: header
Path Parameters
Meta's media id, as carried on an inbound message (e.g. image.id).
Query Parameters
The Sautikit number the media belongs to. Mutually exclusive with connection_id.
uuidThe WhatsApp connection the media belongs to. Mutually exclusive with number_id.
uuidResponse Body
application/json
application/json
curl -X DELETE "https://example.com/v1/whatsapp/media/string"{ "success": true}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string", "details": [ "string" ] }}Download media GET
Streams the bytes of a media object. Inbound messages carry media as an **id**, not a URL — `{"type":"image","image":{"id":"1234567890123456"}}`. This endpoint is how you turn that id into the file. Sautikit proxies the bytes rather than redirecting you, deliberately: Meta serves media from a short-lived host whose URL expires in five minutes and is authorised only by your workspace's access token. A redirect would hand you a link that is both dead on arrival and, if it worked, would carry that token. The response is the raw file. `Content-Type` is the MIME type Meta reports, and `X-Sautikit-Media-Sha256` carries Meta's checksum so you can verify what you received. ```bash curl "https://api.sautikit.com/v1/whatsapp/media/$MEDIA_ID?number_id=$NUMBER_ID" \ -H "Authorization: Bearer $SAUTIKIT_API_KEY" \ -o receipt.pdf ``` Meta's reference: https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media **API-key scope:** `whatsapp.messages`.
Send a tap-to-call button message POST
Sends an interactive message carrying a call button, letting the contact start a WhatsApp call to you with one tap — the inbound counterpart to requesting permission to call them. `display_text` and `ttl_minutes` fall back to Meta's defaults ("Call Now", 10080 minutes / 7 days) when omitted. ```json { "number_id": "9d2b1f53-8c0e-4f1d-9a6b-5d3a8c47e9f0", "to": "254700000001", "text": "Need a hand with your order? Tap to call us.", "display_text": "Call support", "ttl_minutes": 1440, "payload": "order-SK-4821" } ``` Meta's reference: https://developers.facebook.com/docs/whatsapp/cloud-api/guides/calling **API-key scope:** `whatsapp.messages`.