' \
-H 'Accept: application/json' \
-H 'Intercom-Version: @Unstable'
```
**Example Response:**
```json
{
"type": "list",
"data": [
{
"type": "macro",
"id": "123",
"name": "Order Status Update",
"body": "Hi , your order is ready!
",
"body_text": "Hi there, your order is ready!",
"created_at": "2025-07-17T11:18:08.000Z",
"updated_at": "2025-07-17T15:30:24.000Z",
"visible_to": "everyone",
"visible_to_team_ids": [],
"available_on": ["inbox", "messenger"]
}
],
"pages": {
"type": "pages",
"per_page": 10,
"next": {
"starting_after": "WzE3MTk0OTM3NTcuMCwgIjEyMyJd"
}
}
}
```
**Important Notes:**
- This API is currently available in the Unstable version only
- Placeholders in macro bodies are transformed from Intercom format to XML-like attributes
- The pagination cursor encodes `[updated_at, id]` for stable ordering
- Maximum 150 macros can be retrieved per request
For complete documentation and more examples, see the [Macros API Reference](https://developers.intercom.com/docs/references/unstable/rest-api/api.intercom.io/macros/).
## New WhatsApp Message status API
The [WhatsApp Message status API](https://developers.intercom.com/docs/references/unstable/rest-api/api.intercom.io/whatsapp/getwhatsappmessagestatus) is now available in the Unstable version. This endpoint returns paginated status events for WhatsApp messages sent via the Outbound module, providing information about delivery state and related message details.
## Enforcement of ticket permissions on the Conversations API
Starting in early August 2024, accessing a ticket directly through the [Conversations API](https://developers.intercom.com/docs/references/unstable/rest-api/api.intercom.io/Conversations/retrieveConversation/) will requires the "Read tickets" or "Write tickets" scope, as appropriate. When [listing conversations](https://developers.intercom.com/docs/references/unstable/rest-api/api.intercom.io/Conversations/listConversations/) or [searching conversations](https://developers.intercom.com/docs/references/unstable/rest-api/api.intercom.io/Conversations/searchConversations/), tickets will only be returned in the results if the caller has the "Read tickets" scope.
Breaking permission changes
Previously, tickets were accessible through the Conversations API using only the "Read conversations" or "Write conversations" scope(s). Any apps relying on this behaviour will need to add the appropriate ticket permission, and have users reauthenticate.
## New Searchable Contact Attribute
We added `formatted_phone` as a searchable attribute for contacts. This is the contact's phone number normalized to the E164 format.
## Added ability to link to an existing ticket when creating a ticket
We've extended the [Create a ticket](https://developers.intercom.com/docs/references/rest-api/api.intercom.io/tickets/createticket) request body with `conversation_to_link_id`.
This adds the ability to link the created ticket to an existing one.
Here are the valid ways of linking two tickets:
- `conversation | back-office ticket`
- `customer tickets | non-shared back-office ticket`
- `conversation | tracker ticket`
- `customer ticket | tracker ticket`