사이드 메뉴
Getting started
Kakao Developers
Login
Communication
Advertisement
- Concepts
- Ad creation: Ad account
- Ad creation: Campaign
- Ad creation: Ad group
- Targeting for ad group
- Custom audience targeting for ad group
- Ad creation: Creative common
- Ad creation: Display creative
- Ad creation: Message creative
- Ad creation: Personalized message creative
- Bizboard landing settings
- Report
- Message management
- Personalized message management
- Message ad management
- Message ad operation
- Ad View management
- Business Form+ management
- Business Form linkage management
- Pixel & SDK linkage management
- Audience management
- Engagement targeting management
- Customer file management
- Friend group management
- Ad account management
- Reference
- Type information
- Error code
REST API
This document describes how to integrate Kakao Talk Channel APIs into your service with a REST API.
| Method | URL | Authorization |
|---|---|---|
GET | https://kapi.kakao.com/v2/api/talk/channels | Access token Service app admin key |
| Permission | Prerequisite | Kakao Login | User consent |
|---|---|---|---|
| Required | Admin key Activate Kakao Login Manage consent items Set Kakao Talk Channel | Required | Required: Kakao Talk Channel addition status and details |
Returns the relationship between the current user and Kakao Talk Channels connected to your app.
We provide the v2 version for checking Kakao Talk Channel relationship API. You can find information of the v1 API in a separate document.
To get a notification when a user adds or blocks one of your Kakao Talk Channels linked to you service, use the Kakao Talk Channel webhook function.
If an error occurs because the user has not consented to the Kakao Talk Channel addition status and details consent item, use Request additional consent to request consent.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${ACCESS_TOKEN}Access token as a type of user authentication. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| channel_ids | String | List of Kakao Talk Channel profile IDs that you want to check the relationship with a user. A comma-separated string. (Example: _Bxkd,_RQxl,_vxfxm, default: all Kakao Talk Channel profile IDs linked to the app) | X |
| channel_id_type | String | A type of the Kakao Talk Channel profile ID. Fixed to channel_public_id. | X |
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}Service app admin key as a type of user authentication. | O |
| Content-Type | Content-Type: application/x-www-form-urlencoded;charset=utf-8The data type of the request. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| target_id_type | String | A type of the user ID. Fixed to user_id. | O |
| target_id | Long | Service user ID. | O |
| channel_ids | String | List of Kakao Talk Channel profile IDs that you want to check the relationship with a user. A comma-separated string. (Example: _Bxkd,_RQxl,_vxfxm, default: all Kakao Talk Channel profile IDs linked to the app) | X |
| channel_id_type | String | A type of the Kakao Talk Channel profile ID. Fixed to channel_public_id. | X |
| Name | Type | Description | Required |
|---|---|---|---|
| user_id | Long | Service user ID. | O |
| channels | Channels[] | Kakao Talk Channel information. | X |
| Name | Type | Description | Required |
|---|---|---|---|
| channel_uuid | String | Kakao Talk Channel profile ID for search purpose. | O |
| channel_public_id | String | Kakao Talk Channel profile ID. | O |
| relation | String | Relationship between a Kakao Talk Channel and a user.ADDED: a user has added the channel.BLOCKED: a user has blocked the channel.NONE: a user has not either added or blocked the channel. | O |
| created_at | Datetime | Time when a Kakao Talk Channel is added in UTC*. Only returned if a Kakao Talk Channel is added ( ADDED). | X |
| updated_at | Datetime | Time when a Kakao Talk Channel relationship is changed in UTC*. Only returned if a Kakao Talk Channel is added ( ADDED) or blocked (BLOCKED). | X |
Request: Using access token
curl -v -G GET "https://kapi.kakao.com/v2/api/talk/channels" \-H "Authorization: Bearer ${ACCESS_TOKEN}" \-d "channel_ids=_frxjem,_xnrxjem,_Brxjem"
Request: Using admin key
curl -v -G GET "https://kapi.kakao.com/v2/api/talk/channels" \-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \-d "target_id_type=user_id" \-d "target_id=${USER_ID}" \-d "channel_ids=_frxjem,_xnrxjem,_Brxjem"
Response: Success
// HTTP/1.1 200 OK{"user_id": 1234567890, // ${USER_ID}"channels": [{"channel_uuid": "@테스트","channel_public_id": "_ZeUTxl","relation": "ADDED", // One of ADDED, BLOCKED, NONE"created_at": "2020-04-18T03:17:05Z", // Only returned when "relation" is "ADDED"."updated_at": "2021-05-17T05:25:01Z"} // Only returned when "relation" is "ADDED" or "BLOCKED".// ...]}
Response: Fail, if requesting for a non-Kakao Talk user
// HTTP/1.1 400 Bad Request{"msg": "given account is not connected to any talk user.","code": -501}
| Method | URL | Authorization |
|---|---|---|
GET | https://kapi.kakao.com/v2/api/talk/channels/multi | Service app admin key |
| Permission | Prerequisite | Kakao Login | User consent |
|---|---|---|---|
| Required | Admin key Activate Kakao Login Manage consent items Set Kakao Talk Channel | Required | Required: Kakao Talk Channel addition status and details |
Returns the relationships between multiple users and Kakao Talk Channels connected to your app.
To get a notification when a user adds or blocks one of your Kakao Talk Channels linked to you service, use the Kakao Talk Channel webhook function.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}Service app admin key as a type of user authentication. | O |
| Content-Type | Content-Type: application/x-www-form-urlencoded;charset=utf-8The data type of the request. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| target_id_type | String | A type of the user ID. Fixed to user_id. | O |
| target_ids | Long | A comma-separated list of service user IDs (maximum: 200 users). | O |
| channel_id_type | String | A type of the Kakao Talk Channel profile ID. Fixed to channel_public_id. | X |
| channel_ids | String[] | List of Kakao Talk Channel profile IDs that you want to check the relationship with a user. A comma-separated string. (Default: A list of all Kakao Talk Channel profile IDs that connected to your service app) | X |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| - | TalkChannelsResult[] | Relationship information for each user. Users whose relationship could not be checked are excluded. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| user_id | Long | Service user ID. | O |
| channels | Channels[] | Kakao Talk Channel information. | X |
| Name | Type | Description | Required |
|---|---|---|---|
| channel_public_id | String | Kakao Talk Channel profile ID. | O |
| channel_uuid | String | Kakao Talk Channel profile ID for search purpose. | O |
| relation | String | Relationship between a Kakao Talk Channel and a user.ADDED: a user has added the channel.BLOCKED: a user has blocked the channel.NONE: a user has not either added or blocked the channel. | O |
| created_at | Datetime | Time when a Kakao Talk Channel is added in UTC*. Only returned if a Kakao Talk Channel is added ( ADDED). | X |
| updated_at | Datetime | Time when a Kakao Talk Channel relationship is changed in UTC*. Only returned if a Kakao Talk Channel is added ( ADDED) or blocked (BLOCKED). | X |
Request
curl -v -G GET "https://kapi.kakao.com/v2/api/talk/channels/multi" \-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \-d "target_id_type=user_id" \-d "target_ids=${USER_ID_1},${USER_ID_2},${USER_ID_3}" \--data-urlencode 'channel_ids=_frxjem,_xnrxjem,_Brxjem'
Response
// HTTP/1.1 200 OK[{"user_id": 1234567890, // ${USER_ID_1}"channels": [{"channel_public_id": "_xnrxjem","channel_uuid": "@플러스친구","relation": "ADDED","created_at": "2022-11-09T07:08:48Z","updated_at": "2023-07-20T07:21:05Z"}]},{"user_id": 2345678901, // ${USER_ID_2}"channels": [{"channel_public_id": "_xnrxjem","channel_uuid": "@플러스친구","relation": "NONE"}]}// ...]
Response: Excepted for the user that failed to check
// HTTP/1.1 200 OK[{"user_id": 1234567890, // ${USER_ID_1}"channels": [{"channel_public_id": "_xnrxjem","channel_uuid": "@플러스친구","relation": "ADDED","created_at": "2022-11-09T07:08:48Z","updated_at": "2023-07-20T07:21:05Z"}]}]
| Method | URL | Authorization |
|---|---|---|
POST | https://kapi.kakao.com/v1/talkchannel/create/target_user_file | REST API key Service app admin key |
Registers a new customer file.
- Define the new file name in
file_nameand filtering criteria inschema - A defined schema cannot be edited
- The file ID (
file_id) returned after registration is used to add or remove users from the file
When you register a customer file through this API, you must follow the schema rules:
- You must use the supported keys in Korean if the customer information is a string.
- When assigning a new key, "앱유저아이디" and "전화번호" are not allowed. Only
Numbertypes are allowed for the value. - A schema can contain up to 30 items.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: KakaoAK ${APP_KEY}REST API key or Service app admin key as a type of user authentication. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| channel_public_id | String | Kakao Talk Channel profile ID. | O |
| schema | JSON | Define the item and type of customer information to be registered in a customer file. Pairs of key and value type. Supported keys: 생년월일: birthday국가: country지역: region성별: gender연령: age구매금액: purchase amount포인트: point가입일: signup date최근 구매일: recent purchase date응모일: event application date(Only Korean is supported for keys.) Value type: String or Number | O |
| file_name | String | Name of a customer file. | O |
| Name | Type | Description |
|---|---|---|
| file_id | Integer | ID of the customer file that has been created. |
Request
curl -v -X POST "https://kapi.kakao.com/v1/talkchannel/create/target_user_file" \-H "Authorization: KakaoAK ${APP_KEY}" \-H "Content-Type: application/json" \-d '{"channel_public_id": "_ZeUTxl","file_name": "vip고객리스트","schema":{"생년월일":"string","성별":"string","연령":"number"}}'
Response
// HTTP/1.1 200 OK// Content-Type: application/json;charset=UTF-8{"file_id": 437}
| Method | URL | Authorization |
|---|---|---|
GET | https://kapi.kakao.com/v1/talkchannel/target_user_file | REST API key Service app admin key |
Returns customer file information registered for a Kakao Talk Channel.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: KakaoAK ${APP_KEY}REST API key or Service app admin key as a type of user authentication. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| channel_public_id | String | Kakao Talk Channel profile ID. | O |
| Name | Type | Description |
|---|---|---|
| empty_slot | Integer | The number of available slots. |
| using_slot | Integer | The number of using slots. |
| results | Results[] | Information of each customer file registered for the Kakao Talk Channel. |
| Name | Type | Description |
|---|---|---|
| file_id | Integer | File ID. |
| file_name | String | File name. |
| status | String | File status. One of using, deleting, failed. |
| update_at | String | The time when the file has been uploaded. |
| empty_slot | Integer | Number of available slots. |
| using_slot | Integer | Number of slots in use. |
Request
curl -v -G GET "https://kapi.kakao.com/v1/talkchannel/target_user_file" \-H "Authorization: KakaoAK ${APP_KEY}" \-d "channel_public_id=_ZeUTxl"
Response
// HTTP/1.1 200 OK// Content-Type: application/json;charset=UTF-8{"results": [{"file_id": 437,"file_name": "VIPCustomerList","status": "USING","update_at": "2019-02-03 13:22:33","schema": "{\"birthday\":\"string\",\"gender\":\"string\",\"age\":\"number\"}"}// ...],"empty_slot": 27,"using_slot": 3}
| Method | URL | Authorization |
|---|---|---|
POST | https://kapi.kakao.com/v1/talkchannel/update/target_users | REST API key Service app admin key |
Adds user information to the customer file.
Invalid user information and the following cases can prevent users from being added, so the requested and successfully added user counts may differ:
- You can only add the users who have added your Kakao Talk Channel as a friend to the customer file.
- If
user_typeis set toapp, the value ofidmust be a service user ID that has been issued through Kakao Login. To do so, the user must be linked to your service through a Kakao Account. - If
user_typeis set tophone, the value ofidmust be the phone number used to sign up for Kakao Talk.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: KakaoAK ${APP_KEY}REST API key or Service app admin key as a type of user authentication. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| file_id | Integer | File ID. | O |
| channel_public_id | String | Kakao Talk Channel profile ID. | O |
| user_type | String | Type of ID to be used to identify a user.app or phone app: service user ID of Kakao Account.phone: mobile phone number registered in Kakao Talk. | O |
| users | User[] | A list of users to be added to a customer file, including IDs and schemas (maximum: 2,000 users). | O |
| Name | Type | Description | Required |
|---|---|---|---|
| id | String | User ID. Pass a service user ID or Kakao Talk phone number according to user_type. | O |
| field | JSON | Values for the predefined schema in key-value format. Note: Only Number types are allowed for the value. String type value must be transferred to the Number type value by referring to a notice in Kakao Talk Channel Partner Center. | O |
| Name | Type | Description |
|---|---|---|
| file_id | Integer | File ID. |
| request_count | Integer | Number of users you requested to add to the customer file. |
| success_count | Integer | Number of users who have successfully added to the customer file. |
Request
curl -v -X POST "https://kapi.kakao.com/v1/talkchannel/update/target_users" \-H "Authorization: KakaoAK ${APP_KEY}" \-H "Content-Type: application/json" \--data-urlencode '{"file_id": 437,"channel_public_id": "_ZeUTxl","user_type": "app","users": [{"id": "12345","field" : {"생년월일": "2000-01-01","성별": "남자","age": 19}},...]}'
Response
// HTTP/1.1 200 OK// Content-Type: application/json;charset=UTF-8{"file_id": 437,"request_count": 10,"success_count": 9}
| Method | URL | Authorization |
|---|---|---|
POST | https://kapi.kakao.com/v1/talkchannel/delete/target_users | REST API key Service app admin key |
Deletes a specific user from one of your customer files registered in the Kakao Talk Channel.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: KakaoAK ${APP_KEY}REST API key or Service app admin key as a type of user authentication. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| file_id | Integer | File ID. | O |
| channel_public_id | String | Kakao Talk Channel profile ID. | O |
| user_type | String | Type of ID to be used to identify a user.app or phone app: service user ID of Kakao Account.phone: mobile phone number registered in Kakao Talk. | O |
| user_ids | JSON[] | A list of users to be deleted from a customer file. | O |
Request
curl -v -X POST "https://kapi.kakao.com/v1/talkchannel/delete/target_users" \-H "Authorization: KakaoAK ${APP_KEY}" \-H "Content-Type: application/json" \--data-urlencode '{"file_id" : 437,"channel_public_id" : "_ZeUTxl","user_type" : "app""user_ids" : ["12345"]}'
Response
HTTP/1.1 200 OKContent-Length: 0Content-Type: application/json;charset=UTF-8