/v1/short-links/{short_link_id}betaChange a short link's message
- Needs
- Send WhatsApp messages; manage templates, quick messages and WhatsApp short links
(messaging:write) - Plan
- Any plan with API access
- Limits
- 60 a minute per key
- Dry run
- Yes — a full preview with ?dry_run=true
- Undo
- Send the old message back.
Changes the message a short link types for the customer. The link and its code stay the same, so links you shared and QR codes you printed keep working and now open the chat with the new message.
The QR image is generated again, as PNG, at a new URL. The number cannot change: create a new link instead.
Try it
Protects against doing it twice if you retry: a retry with the same key gets the first answer back instead of running again.
Code and response
curl -X PATCH 'https://mcp.wa-api.cloud/v1/short-links/sl-12?dry_run=true' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"message": "Hi! I'\''d like to book a table"
}'The code reads your key from $API_KEY.
Parameters
| Field | Type | What it is |
|---|---|---|
| short_link_idrequired | string | integer · path | The short link id. |
Body
| Field | Type | What it is |
|---|---|---|
| messagerequired | string | The new text: 1–140 characters, plain text (an emoji counts as 2).0–1000 characters |
Headers
| Field | Type | What it is |
|---|---|---|
| Authorizationrequired | header | Bearer $API_KEY — your API key. |
| Api-Version | header | The API version to use, e.g. 2026-10-01. Default: the version your key is pinned to.one of: 2026-10-01 · pattern ^\d{4}-\d{2}-\d{2}$ |
| Idempotency-Key | header | Any unique string (8–128 characters). A retry with the same key returns the first answer instead of running twice. Kept 24 hours.pattern ^[A-Za-z0-9._:-]+$ · 8–128 characters |
Response 200
The short link with its new message.
| Field | Type | What it is |
|---|---|---|
| idrequired | string | |
| coderequired | string | The code at the end of the link. |
| urlrequired | string | The click-to-chat link (https://wa.me/message/…). Share it, or print its QR code. |
| messagerequired | string or null | The text the customer finds already typed; they can edit it before sending. |
| qr_image_urlrequired | string or null | QR code image of the link, hosted by WhatsApp. The link can expire: download and keep your own copy for print. |
| qr_image_formatrequired | string or null | PNG or SVG; null when there is no image or its format is not known.one of: PNG, SVG |
| channelrequired | object or null | The WhatsApp number it belongs to. |
| idrequired | string | Workspace channel id (as GET /v1/channels lists it). |
| namerequired | string or null | |
| phonerequired | string or null | The WhatsApp number the link opens a chat with. |
| created_atrequired | string or null | |
| updated_atrequired | string or null | |
| dry_run | boolean | true when this was a dry run: every check ran and nothing changed. |
Errors
Errors are application/problem+json. Branch on code.
| Status | Code | When |
|---|---|---|
| 400 | invalid_input | A field is missing or has the wrong format. |
| 401 | unauthenticated | The Authorization header is missing, the key is unknown, expired or revoked. |
| 403 | entitlement_required | The workspace's plan does not include API access ( |
| 403 | insufficient_scope | The key does not have the permission this operation needs. |
| 404 | not_found | No short link with this id in your workspace. |
| 409 | conflict | Also returned while a request with the same Idempotency-Key is still running. |
| 429 | rate_limited | The key or workspace went over its rate limit. Wait for |
| 502 | upstream_error | WhatsApp refused the change ( |
| 503 | upstream_unavailable | A service behind the API is briefly unavailable. Safe to retry with backoff. |
| 504 | timeout | The change did not finish in time. Retry with the same Idempotency-Key: it never runs twice. |
Examples
Change the message
Request body
{
"message": "Hi! I'd like to book a table"
}Response 200
{
"id": "sl-12",
"code": "4PZQX7M2LCKHA1",
"url": "https://wa.me/message/4PZQX7M2LCKHA1",
"message": "Hi! I'd like to book a table",
"qr_image_url": "https://scontent-bom5-2.xx.fbcdn.net/m1/v/t6/An9_qr4PZQX7M2LCKHA1?ccb=10-5&oe=66F00000",
"qr_image_format": "PNG",
"channel": {
"id": "301",
"name": "Main WhatsApp",
"phone": "+1 555-555-0100"
},
"created_at": "2026-09-12T10:00:00.000Z",
"updated_at": "2026-09-13T10:00:00.000Z"
}Operation path
The same operation is also at POST /v1/ops/messaging_update_short_link, with every field in the JSON body.