본문 바로가기메인 메뉴 바로가기사이드 메뉴 바로가기

kakao developers

Related sites
  • Docs
  • Kakao Moment
  • Personalized message management

사이드 메뉴

Search

This document describes how to use the Personalized message management APIs.

MethodURLAuthorization
POSThttps://apis.moment.kakao.com/openapi/v4/messages/creatives/${ID}/sendTestPersonalMessageBusiness token

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.

NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
IDIntegerCreative IDO
NameTypeDescriptionRequired
phoneNumberStringTarget's phone number.O
variablesJSONA JSON object including key-value pairs for variables in the message template.O
curl -X POST "https://apis.moment.kakao.com/openapi/v4/messages/creatives/1/sendTestPersonalMessage" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: 1" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "010-1234-1234",
"variables": {
"image_url1": "https://t1.daumcdn.net/b2/personalMessage/1/testImage.jpg",
"user_name1": "Test user"
}
}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
MethodURLAuthorization
POSThttps://apis.moment.kakao.com/openapi/v4/messages/creatives/${ID}/sendPersonalMessageBusiness token

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
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
IDIntegerCreative IDO
NameTypeDescriptionRequired
messageSerialNumberStringA unique ID that identifies each sent message.
The length must be under 39 characters, and the pattern is below.
yyyyMMdd-${creativeId}-${uniqueId_for_message}
For the single delivery, messageSerialNumber is automatically set to the unique request ID (requestId).
O
receiverTypeStringReceiver ID type, one of:
APP_USER_ID: Service user ID of the app connected to Personalized message creative template profileId
PHONE_NUMBER: Phone number
O
receiverKeyStringReceiver ID
A Service user ID or a phone number.
O
variablesJSONA JSON object including key-value pairs for variables in the message template.O
NameTypeDescription
requestIdStringA unique request ID
Used to retrieve the sending status.
messageSerialNumberStringA unique ID that identifies each sent message.
statusStringSending result, one of:
SUCCEEDED
FAILED
sendAtStringDate the message was sent, in yyyy-MM-dd HH:mm:ss format.
curl -X POST "https://apis.moment.kakao.com/openapi/v4/messages/creatives/1/sendPersonalMessage" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: 1" \
-H "Content-Type: application/json" \
-d '{
"messageSerialNumber": "20230731-1-send1",
"receiverType": "PHONE_NUMBER",
"receiverKey": "010-1234-1234",
"variables": {
"image_url1": "https://t1.daumcdn.net/b2/personalMessage/1/testImage.jpg",
"user_name1": "테스트유저"
}
}'
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"requestId": "20230731-1-001",
"messageSerialNumber": "20230731-1-send1",
"status": "SUCCEEDED",
"sendAt": "2023-07-31 16:00:00"
}
MethodURLAuthorization
POSThttps://apis.moment.kakao.com/openapi/v4/messages/creatives/${ID}/sendPersonalMessagesBusiness token

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
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
IDIntegerCreative IDO
NameTypeDescriptionRequired
requestIdStringA unique request ID
The length must be under 39 characters, and the pattern is below.
yyyyMMdd-${creativeId}-${uniqueId_for_message}
O
receiversPersonalMessageSendRequest[]Information for each messageO
NameTypeDescriptionRequired
messageSerialNumberStringA unique ID that identifies each sent message.
The length must be under 39 characters, and the pattern is below.
yyyyMMdd-${creativeId}-${uniqueId_for_message}
For the single delivery, messageSerialNumber is automatically set to the unique request ID (requestId).
O
receiverTypeStringReceiver ID type, one of:
APP_USER_ID: Service user ID of the app connected to Personalized message creative template profileId
PHONE_NUMBER: Phone number
O
receiverKeyStringReceiver ID
A Service user ID or a phone number.
O
variablesJSONA JSON object including key-value pairs for variables in the message template.O
NameTypeDescription
requestIdStringA unique request ID
Used to retrieve the sending status.
curl -X POST "https://apis.moment.kakao.com/openapi/v4/messages/creatives/1/sendPersonalMessages" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: 1" \
-H "Content-Type: application/json" \
-d '{
"requestId": "20230731-1-request1",
"receivers": [
{
"messageSerialNumber": "20230731-1-send1",
"receiverType": "PHONE_NUMBER",
"receiverKey": "010-1234-1234",
"variables": {
"image_url1": "https://t1.daumcdn.net/b2/personalMessage/1/testImage1.jpg",
"user_name1": "Test user 1"
}
},
{
"messageSerialNumber": "20230731-1-send2",
"receiverType": "PHONE_NUMBER",
"receiverKey": "010-4321-4321",
"variables": {
"image_url1": "https://t1.daumcdn.net/b2/personalMessage/1/testImage2.jpg",
"user_name1": "Test user 2"
}
}
]
}'
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"requestId": "20230731-1-request1"
}
MethodURLAuthorization
GEThttps://apis.moment.kakao.com/openapi/v4/messages/creatives/${ID}/statuses/${REQUEST_ID}Business token

Returns the result of a Personalized Message send request.

You can retrieve sending status in 7 days from the request.

NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
IDIntegerCreative IDO
REQUEST_IDStringUnique request IDO
NameTypeDescription
completedBooleanWhether sending multiple messages is complete.
If not complete, completed is false, and results is an empty array.
resultsPersonalMessageResult[]The result list of each sending request.
NameTypeDescription
messageSerialNumberStringA unique ID that identifies each sent message.
statusStringSending result, one of:
SUCCEEDED
FAILED
statusReasonStringSending result detailed reason
sendAtStringDate the message was sent, in yyyy-MM-dd HH:mm:ss format.
curl -X GET "https://apis.moment.kakao.com/openapi/v4/messages/creatives/${ID}/statuses/${REQUEST_ID}" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"completed": true,
"results": [
{
"status": "SUCCEEDED",
"sendAt": "2023-07-31 16:00:00"
}
]
}
MethodURLAuthorization
POSThttps://apis.moment.kakao.com/openapi/v4/messages/personal/images/uploadBusiness token

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.
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
filesMultipart file[]Image files to upload
File format: JPG, JPEG, PNG
Recommended size: 800x400(2:1 ratio), 800x800(1:1 ratio), 800x600(4:3 ratio)
File size: less than 10MB
O
NameTypeDescription
successFilesImageFile[]Uploaded image information
invalidFilesInvalidFile[]Image information and the reason that failed to upload
NameTypeDescription
downloadUrlStringImage URL
originalFileNameStringImage file name
NameTypeDescription
fileNameStringFile name that failed to upload
invalidReasonsInvalidReason[]Failure reasons
NameTypeDescription
reasonStringReason
descriptionStringDetail information
curl -X POST "https://apis.moment.kakao.com/openapi/v4/messages/personal/images/upload" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}" \
-F "files=@image.jpg"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"successFiles": [
{
"originalFileName": "string",
"downloadUrl": "string"
}
],
"invalidFiles": [
{
"fileName": "string",
"invalidReasons": [
{
"reason": "string",
"description": "string"
}
]
}
]
}

Was this helpful?

    Kakao Moment > Personalized message management - Kakao Developers | Docs