API Reference
WhatsApp Messaging

Delete media

DELETE
/v1/whatsapp/media/{id}

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
AuthorizationBearer <token>

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

id*string

Meta's media id, as carried on an inbound message (e.g. image.id).

Query Parameters

number_id?string

The Sautikit number the media belongs to. Mutually exclusive with connection_id.

Formatuuid
connection_id?string

The WhatsApp connection the media belongs to. Mutually exclusive with number_id.

Formatuuid

Response 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`.