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

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}/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.

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}/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.
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 (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
receiverTypeEnumReceiver ID type
  • 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.
statusEnumSending result
  • SUCCEEDED: Sent successfully
  • FAILED: Failed to send
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}/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.
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, newly generated for each sending request (Maximum: 39 characters).
Format: yyyyMMdd-${creativeId}-${uniqueId_for_request}
O
receiversPersonalMessageSendRequest[]Information for each messageO
NameTypeDescriptionRequired
messageSerialNumberStringA 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
receiverTypeEnumReceiver ID type
  • 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}

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.
statusEnumSending result
  • SUCCEEDED: Sent successfully
  • FAILED: Failed to send
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/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.
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 pixels (2:1 ratio), 800x800 pixels (1:1 ratio), 800x600 pixels (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