Bundles are used to send messages to one or more recipients simultaneously, which is ideal for notifications or marketing campaigns. A Bundle contains information about the sending Agent, content in the form of text or cards, and a list of recipients. This is the most effective way to reach a large group of users with a single interactive message.
Quickstart #
Quick Start (cURL)
Copy to clipboard
curl -X POST https://api.ip1.net/v3/bundles \
-H "Authorization: Bearer API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"brand": "Min-Butik-AB",
"agent": "Kundservice",
"recipients": {"46700123456": {}},
"reference": "INTERN-REF-001",
"tags": ["frakt", "viktigt"],
"card": {
"title": "Sommarkampanj 2026",
"content": "Få 20% rabatt på alla solglasögon!",
"mediaUrl": "https://cdn.site.se/promo-sun.jpg",
"type": 1
},
"suggestions": [
{
"text": "Se utbud",
"type": 1,
"url": "https://site.se/shop",
"postbackData": "shop_click"
},
{
"text": "Ring butik",
"type": 4,
"phoneNumber": "468123456",
"postbackData": "call_click"
}
]
}'
Call #
Endpoint: /bundles
Methodology: POST
Example of call data #
Anropsdata (JSON)
Copy to clipboard
{
"brand": "Min-Butik-AB",
"agent": "Kundservice",
"recipients": {
"46700123456": { "name": "Kalle" }
},
"reference": "INTERN-REF-001",
"tags": ["frakt", "viktigt"],
"content": "Hej {name}! Här är ett exklusivt erbjudande till dig.",
"uniqueId": "order-12345-id",
"card": {
"title": "Vår-REA!",
"content": "Nu tömmer vi lagret inför sommaren.",
"mediaUrl": "https://cdn.site.se/spring-sale.jpg",
"type": 1
},
"suggestions": [
{
"text": "Shoppa nu",
"type": 1,
"url": "https://site.se/shop",
"postbackData": "track_sale_click"
}
]
}
Fields for call data #
| Field name | Description of the project | Required | Type | Example |
| brand | Your brand name | Yes | string | "My Shop Ltd." |
| agent | Your agent's name | Yes | string | ”Customer service |
| recipients | Your recipient list | Yes | Object | ”46700123456”: { ”name”: ”Kalle” } |
| content | The content of the message itself | Yes (Except when using Cards) | string | ”Hi {name}! Your order has now been shipped.” |
| reference | Internal reference for bundle | No, it is not. | string | ”INTERN-REF-001” |
| tags | A list of searchable tags for grouping the mailing | No, it is not. | Array | [”shipping”, ”important”] |
| card | Contains image, headline, and text (Rich Card). | No, it is not. | Object | (See table below) |
| suggestions | A list of interactive buttons. | No, it is not. | Array | (See table below) |
| uniqueId | Unique ID to avoid duplicates. | No, it is not. | string | ”order-12345-id” |
Field details card #
| Field name | Description of the project | Required | Type | Example |
|---|---|---|---|---|
| title | The heading displayed at the top of the card. | Yes | string | ”Spring Sale!” |
| content | The descriptive text on the card. | Yes | string | ”We are emptying the warehouse now.” |
| type | Card type (1 for standard Rich Card). | Yes | Integer | 1 |
| mediaUrl | URL to image or video (public link). | No, it is not. | URI | ”https://site.se/image.jpg” |
Field details suggestions #
| Field name | Description of the project | Required | Type | Example |
|---|---|---|---|---|
| text | The text on the button. | Yes | string | ”Shop now” |
| type | Type of action (1=URL, 4=Call, 5=Location). | Yes | Integer | 1 |
| postbackData | The data you get back upon a click. | Yes | string | ”track_sale_click” |
| URL | Target URL (required for type 1). | No, it is not. | URI | ”https://site.se/shop” |
Responsibility #
Example of response data #
Responsdata (JSON)
Copy to clipboard
{
"id": "65eb3d14f1234567890abcdef",
"brand": "Min-Butik-AB",
"agent": "Kundservice",
"type": 1,
"content": "Hej! Din order är nu skickad.",
"card": {
"title": "Order #12345",
"content": "Paketet beräknas anlända imorgon.",
"mediaUrl": "https://cdn.site.se/package.jpg",
"type": 1,
"height": 2
},
"suggestions": [
{
"text": "Spåra paket",
"type": 1,
"url": "https://frakt.se/track/123",
"postbackData": "track_click",
"order": 0
}
],
"sendDate": "2026-03-04T15:05:00Z",
"uniqueId": "order-12345-id",
"reference": "INTERN-REF-001",
"created": "2026-03-04T15:03:02Z",
"tags": ["frakt", "viktigt"]
}
Fields for response data #
| Field name | Description of the project | Type | Example |
| id | Bundle's unique ID. | string | "65eb3d14f1234567890abcdef"Hello. |
| brand | The brand used. | string | ”My-Shop-Co” |
| agent | Your agent's name | string | ”Customer service” |
| type | Message type (e.g., 1=Text). | Integer | 1 |
| content | The text content that was sent out. | string | ”Hi {name}! Your order has now been shipped.” |
| sendDate | Dispatch time. | DateTime | ”2026-03-04T15:05:00Z” |
| reference | Your optional free-text reference. | string | ”INTERN-REF-001” |
| uniqueId | Your own ID for duplicate check. | string | ”order-12345-id” |
| created | Timestamp when the mail was created in the system. | DateTime | ”03/04/2026 3:03:02 PM UTC” |
| tags | Array of tags associated with the shipment. | Array | [”shipping”, ”important”] |
| card | Contains details for the sent card (if applicable). | Object | {…} |
| suggestions | List of buttons that were sent. | Array | […] |