Kakao MomentPersonalized message management
This document describes how to use the Personalized message management APIs.
Test sending personalized message
| Method | URL | Authorization |
|---|
POST | https://apis.moment.kakao.com/openapi/v4/messages/creatives/${ID}/sendTestPersonalMessage | |
Sends a test creative under a Personalized Message X Reach campaign.
The message includes [Test Send] in the promotional text area.
This API limits the number of calls you can make to every minute per user account and ad account.
| Name | Description | Required |
|---|
| Authorization | Business token as a type of user authentication.
Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} | O |
| adAccountId | Ad account's ID.
adAccountId: ${AD_ACCOUNT_ID} | O |
| Name | Type | Description | Required |
|---|
| ID | Integer | Creative ID | O |
| Name | Type | Description | Required |
|---|
| phoneNumber | String | Target's phone number. | O |
| variables | JSON | A JSON object including key-value pairs for variables in the message template. | O |
Send a personalized message
| Method | URL | Authorization |
|---|
POST | https://apis.moment.kakao.com/openapi/v4/messages/creatives/${ID}/sendPersonalMessage | |
Sends a creative under a Personalized Message X Reach campaign to one user.
- Can only send to one user at a time.
- Single-message sending is processed synchronously.
| Name | Description | Required |
|---|
| Authorization | Business token as a type of user authentication.
Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} | O |
| adAccountId | Ad account's ID.
adAccountId: ${AD_ACCOUNT_ID} | O |
| Name | Type | Description | Required |
|---|
| ID | Integer | Creative ID | O |
| Name | Type | Description | Required |
|---|
| messageSerialNumber | String | A unique ID that identifies each sent message (Maximum: 39 characters). Format: yyyyMMdd-${creativeId}-${uniqueId_for_message}
Note: For the single delivery, messageSerialNumber is automatically set to the unique request ID (requestId). | O |
| receiverType | Enum | Receiver ID type
APP_USER_ID: Service user ID of the app connected to Personalized message creative template profileId
PHONE_NUMBER: Phone number
| O |
| receiverKey | String | Receiver ID A Service user ID or a phone number. | O |
| variables | JSON | A JSON object including key-value pairs for variables in the message template. | O |
| Name | Type | Description |
|---|
| requestId | String | A unique request ID Used to retrieve the sending status. |
| messageSerialNumber | String | A unique ID that identifies each sent message. |
| status | Enum | Sending result
SUCCEEDED: Sent successfully
FAILED: Failed to send
|
| sendAt | String | Date the message was sent, in yyyy-MM-dd HH:mm:ss format. |
Send multiple personalized message
| Method | URL | Authorization |
|---|
POST | https://apis.moment.kakao.com/openapi/v4/messages/creatives/${ID}/sendPersonalMessages | |
Sends a creative under a Personalized Message X Reach campaign to multiple users.
- Can request from 2 to 100 messages at a time.
- Responds immediately if the request includes an invalid value.
- Multi-message sending that passes validation is processed asynchronously.
| Name | Description | Required |
|---|
| Authorization | Business token as a type of user authentication.
Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} | O |
| adAccountId | Ad account's ID.
adAccountId: ${AD_ACCOUNT_ID} | O |
| Name | Type | Description | Required |
|---|
| ID | Integer | Creative ID | O |
| Name | Type | Description | Required |
|---|
| requestId | String | A unique request ID, newly generated for each sending request (Maximum: 39 characters). Format: yyyyMMdd-${creativeId}-${uniqueId_for_request} | O |
| receivers | PersonalMessageSendRequest[] | Information for each message | O |
PersonalMessageSendRequest
| Name | Type | Description | Required |
|---|
| messageSerialNumber | String | A unique ID that identifies each sent message (Maximum: 39 characters). Format: yyyyMMdd-${creativeId}-${uniqueId_for_message}
Note: For the single delivery, messageSerialNumber is automatically set to the unique request ID (requestId). | O |
| receiverType | Enum | Receiver ID type
APP_USER_ID: Service user ID of the app connected to Personalized message creative template profileId
PHONE_NUMBER: Phone number
| O |
| receiverKey | String | Receiver ID A Service user ID or a phone number. | O |
| variables | JSON | A JSON object including key-value pairs for variables in the message template. | O |
| Name | Type | Description |
|---|
| requestId | String | A unique request ID Used to retrieve the sending status. |
| Method | URL | Authorization |
|---|
GET | https://apis.moment.kakao.com/openapi/v4/messages/creatives/${ID}/statuses/${REQUEST_ID} | |
Returns the result of a Personalized Message send request.
You can retrieve sending status in 7 days from the request.
| Name | Description | Required |
|---|
| Authorization | Business token as a type of user authentication.
Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} | O |
| adAccountId | Ad account's ID.
adAccountId: ${AD_ACCOUNT_ID} | O |
| Name | Type | Description | Required |
|---|
| ID | Integer | Creative ID | O |
| REQUEST_ID | String | Unique request ID | O |
| Name | Type | Description |
|---|
| completed | Boolean | Whether sending multiple messages is complete. If not complete, completed is false, and results is an empty array. |
| results | PersonalMessageResult[] | The result list of each sending request. |
| Name | Type | Description |
|---|
| messageSerialNumber | String | A unique ID that identifies each sent message. |
| status | Enum | Sending result
SUCCEEDED: Sent successfully
FAILED: Failed to send
|
| statusReason | String | Sending result detailed reason |
| sendAt | String | Date the message was sent, in yyyy-MM-dd HH:mm:ss format. |
Upload image for personalized message
| Method | URL | Authorization |
|---|
POST | https://apis.moment.kakao.com/openapi/v4/messages/personal/images/upload | |
Enables you to upload images for Personalized messages.
You can upload from 1 to 100 images at once.
Kakao validates the images against the applicable specifications and policies before saving them.
Cautions when uploading images
- Uploaded images should be included in the message content.
- If the images are uploaded for other purposes, it is possible to get penalties to ad account.
- Also recommend uploading images as close to the time of sending the message as possible.
- The response image URL cannot be used permanently, and the registered image may be deleted without notice due to Kakao's system conditions.
| Name | Description | Required |
|---|
| Authorization | Business token as a type of user authentication.
Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} | O |
| adAccountId | Ad account's ID.
adAccountId: ${AD_ACCOUNT_ID} | O |
| Name | Type | Description | Required |
|---|
| files | Multipart File[] | Image files to upload File format: JPG, JPEG, PNG Recommended size: 800x400 pixels (2:1 ratio), 800x800 pixels (1:1 ratio), 800x600 pixels (4:3 ratio) File size: less than 10MB | O |
| Name | Type | Description |
|---|
| successFiles | ImageFile[] | Uploaded image information |
| invalidFiles | InvalidFile[] | Image information and the reason that failed to upload |
| Name | Type | Description |
|---|
| downloadUrl | String | Image URL |
| originalFileName | String | Image file name |
| Name | Type | Description |
|---|
| fileName | String | File name that failed to upload |
| invalidReasons | InvalidReason[] | Failure reasons |
| Name | Type | Description |
|---|
| reason | String | Reason |
| description | String | Detail information |