/v1/short-linksbetaList WhatsApp short links
- Needs
- Read your data
(mcp:read) - Plan
- Any plan with API access
- Limits
- 300 a minute per key
- Undo
- Nothing to undo: this only reads.
Lists your WhatsApp click-to-chat short links, newest first. Each one is a https://wa.me/message/… link that opens a chat with one of your WhatsApp numbers with a message already typed, and usually a QR code image of it. Each link names the number it belongs to.
Try it
Query (5)
Only links of this WhatsApp channel.
Only links of this WhatsApp number, in any format (`+1 555-555-0100`).
The message contains this text (case-insensitive).
The `next_cursor` from the previous page. Cursors expire after 24 hours.
How many items per page (1–100).
This only reads. It uses your real data and changes nothing.
Code and response
curl -X GET 'https://mcp.wa-api.cloud/v1/short-links' \ -H "Authorization: Bearer $API_KEY"
The code reads your key from $API_KEY.
Parameters
| Field | Type | What it is |
|---|---|---|
| channel_id | string · query | Only links of this WhatsApp channel.0–64 charactersSigned in? Pick one from your data with “My data”. |
| phone | string · query | Only links of this WhatsApp number, in any format (+1 555-555-0100).0–32 characters |
| search | string · query | The message contains this text (case-insensitive).0–100 characters |
| cursor | string · query | The next_cursor from the previous page. Cursors expire after 24 hours.1–2048 characters |
| limit | integer · query | How many items per page (1–100).1–100 · default 25 |
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}$ |
Response 200
A page of short links.
| Field | Type | What it is |
|---|---|---|
| datarequired | array of object | |
| 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 | |
| totalrequired | number | |
| next_cursorrequired | string or null | Pass as "cursor" to get the next page; null when there are no more results. |
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 | The channel, or a connected number with this phone, is not in your workspace. |
| 429 | rate_limited | The key or workspace went over its rate limit. Wait for |
| 503 | upstream_unavailable | A service behind the API is briefly unavailable. Safe to retry with backoff. |
Examples
All short links
Response 200
{
"data": [
{
"id": "sl-12",
"code": "4PZQX7M2LCKHA1",
"url": "https://wa.me/message/4PZQX7M2LCKHA1",
"message": "Hi! I'd like to order 🍕",
"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-12T10:00:00.000Z"
}
],
"next_cursor": null,
"total": 1
}Operation path
The same operation is also at POST /v1/ops/messaging_list_short_links, with every field in the JSON body.