

This document describes how to integrate Kakao Talk Social APIs into your service with a REST API.
You can test the features described in this document in [Tools] > [REST API Test].
| Method | URL | Authorization |
|---|---|---|
GET |
https://kapi.kakao.com/v1/api/talk/profile |
Access token |
| Permission | Prerequisite | Kakao Login | User consent |
|---|---|---|---|
| - | Activate Kakao Login Manage consent items |
Required | Required: Profile Info(nickname/profile image) Nickname Profile image |
Retrieves Kakao Talk profile information linked to the Kakao Account of the logged-in user.
You can check the types and differences of user profiles available through the Kakao API in User profile.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${ACCESS_TOKEN}Access token as a type of user authentication. |
O |
| Name | Type | Description | Required |
|---|---|---|---|
| nickName | String |
Kakao Talk nickname. Required user consent: Profile Info(nickname/profile image) or Nickname |
X |
| profileImageUrl | String |
Kakao Talk profile image URL with a size of 640x640 pixels. Only HTTPS is supported.Required user consent: Profile Info(nickname/profile image) or Profile image |
X |
| thumbnailUrl | String |
Kakao Talk profile thumbnail image URL with a size of 110x110 pixels. Only HTTPS is supported.Required user consent: Profile Info(nickname/profile image) or Profile image |
X |
* countryISO: Deprecated, refer to DevTalk for more details.
From June 25, 2021, we provide the profile information separated as 'Nickname' and 'Profile image'. You can request consent to desired profile information by setting desired scopes respectively. If you create a new app, the separated scopes for profile information are applied to the app. If you have enabled the 'Profile Info(nickname/profile image)' scope, you can continue to use that scope. In this case, you do not need to change the app settings, and there is no change in API response. But if you want to use the new scpes in the existing app, fill out the request form. In this case, the API response may change. Refer to Notice for more details.
curl -v -G GET "https://kapi.kakao.com/v1/api/talk/profile" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"nickName":"Ryan",
"profileImageURL":"https://xxx.kakao.co.kr/.../aaa.jpg",
"thumbnailURL":"https://xxx.kakao.co.kr/.../bbb.jpg"
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"nickName":"Ryan"
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"profileImageURL":"https://xxx.kakao.co.kr/.../aaa.jpg",
"thumbnailURL":"https://xxx.kakao.co.kr/.../bbb.jpg"
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{}
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/v1/api/talk/friends |
Access token |
| Permission | Prerequisite | Kakao Login | User consent |
|---|---|---|---|
| Required | Activate Kakao Login Manage consent items |
Required | Required: Friends List in Kakao Service(Including profile image, nickname, and favorites) |
Retrieves Kakao Talk friend information linked to the Kakao Account of the logged-in user.
If the request fails because the user did not agree to provide the Kakao Talk friends list, request again after obtaining user consent by referring to the below.
The friend list is sorted in ascending order (asc) or descending order (desc) depending on the parameter (order). If the default sort order 'asc' is used, the detailed sort order is as below. If 'desc' is used, sorting is applied in the reverse order of the below.
By default, sorting is based on Korean, but if the language is set in the Kakao SDK, sorting is based on English. If you requested favorites-first sorting by setting friend_order to favorite, it is sorted in the order of favorite friends and then other friends, and the same detailed sort order is applied to each.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${ACCESS_TOKEN}Access token as a type of user authentication. |
O |
| Name | Type | Discription | Required |
|---|---|---|---|
| offset | Integer |
Offset value that the list of friends starts from. (Default: 0) |
X |
| limit | Integer |
Maximum number of friends to be retrieved per page. (Maximum: 100, Default: 10) |
X |
| order | String |
Sort order of friends list. asc or desc. - asc: Sort in ascending order.- desc: Sort in descending order. (Default: asc) |
X |
| friend_order | String |
Sort option for the list of friends.favorite: Sort first by favorite friends. nickname: Sort by Kakao Talk nickname.(Default: favorite) |
X |
| Name | Type | Description | Required |
|---|---|---|---|
| elements | Friend[] |
A list of each friend's detailed information in JSON format. |
X |
| total_count | Integer |
Total number of Kakao Talk friends. | O |
| before_url | String |
Previous page URL. If there is no previous page, null is returned. |
X |
| after_url | String |
Next page URL. If there is no next page, null is returned. |
X |
| favorite_count | Integer |
Number of friends added as favorite. |
X |
| Name | Type | Description | Required |
|---|---|---|---|
| id | Long |
Service user ID. | O |
| uuid | String |
User's unique ID used to send a Kakao Talk message. | O |
| profile_nickname | String |
Friend's profile nickname. | X |
| profile_thumbnail_image | String |
Friend's profile thumbnail image. Only HTTPS is supported. |
X |
| favorite | Boolean |
Whether or not the friend is added as a favorite. true: Added as favorite.false: Not added as favorite. |
X |
* allowed_msg: Deprecated. Whether or not the friend allows to receive Kakao Talk messages. For more details, refer to Profile visibility option and DevTalk.
curl -v -G GET "https://kapi.kakao.com/v1/api/talk/friends" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d "limit=3"
curl -v -G GET "https://kapi.kakao.com/v1/api/talk/friends" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d "offset=3" \
-d "limit=3" \
-d "order=asc"
HTTP/1.1 200 OK
{
"elements": [
{
"profile_nickname": "Apeach",
"profile_thumbnail_image": "https://xxx.kakao.co.kr/.../aaa.jpg",
"id": 00000000001,
"uuid": "abcdefg0001",
"favorite": true
},
{
"profile_nickname": "Ryan",
"profile_thumbnail_image": "https://xxx.kakao.co.kr/.../bbb.jpg",
"id": 00000000002,
"uuid": "abcdefg0002",
"favorite": false
},
{
"profile_nickname": "Jordy",
"profile_thumbnail_image": "https://xxx.kakao.co.kr/.../ccc.jpg",
"id": 00000000003,
"uuid": "abcdefg0003",
"favorite": false
}
],
"total_count": 11,
"after_url": "https://kapi.kakao.com/v1/api/talk/friends?offset=3&limit=3&order=asc",
"favorite_count": 1
}
HTTP/1.1 400 Bad Request
{
"msg": "NotExistTalkUserException",
"code": -501
}
| Method | URL | Authentication |
|---|---|---|
GET/POST |
https://kapi.kakao.com/v2/api/talk/profiles |
Service app admin key |
| Permission | Prerequisites | Kakao Login | Consent items |
|---|---|---|---|
| Required: Consent items | Admin key Activate Kakao Login Consent items |
Required | Required: Profile information (Nickname/Profile image) Nickname Profile image |
Retrieves the Kakao Talk profile list of service users. You can also retrieve the Kakao Talk profile list that a specified user can view.
target_ids that are not registered.viewer_id), it returns the profile information that the user can view.| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}Authentication method, requests authentication using the Service app admin key. |
O |
| Content-Type | Content-Type: application/x-www-form-urlencoded;charset=utf-8.Request data type. |
O |
| Name | Type | Description | Required |
|---|---|---|---|
| target_ids | Long[] |
List of user IDs whose Kakao Talk profiles to retrieve. | O |
| target_id_type | String |
target_id type, fixed to user_id (user ID). |
O |
| viewer_id | Long |
User ID used as the reference when retrieving Kakao Talk profiles. If viewer_id is not provided, only the Kakao Talk profiles of the users specified in target_ids are returned. |
X |
| viewer_id_type | String |
viewer_id type, fixed to user_id (user ID). |
X |
| Name | Type | Description | Required |
|---|---|---|---|
| viewer | TalkProfileInfo |
Kakao Talk profile information of the user corresponding to the requested viewer_id.Provided only when viewer_id is included in the parameters. |
X |
| targets | TalkProfileInfo[] |
Kakao Talk profile information list of the users specified in target_ids.Important: If the user is a friend of the viewer_id user, the multi-profile as displayed to that user is applied and returned. |
O |
| Name | Type | Description | Required |
|---|---|---|---|
| user_id | Long |
User ID, app-specific user unique ID assigned when a Kakao Account is linked to an app. | O |
| nickname | String |
Kakao Talk profile nickname. Required consent items: Nickname, or Profile information (Nickname/Profile image). |
X |
| profile_image | String |
Kakao Talk profile image URL. Required consent items: Profile image, or Profile information (Nickname/Profile image). |
X |
| thumbnail_image | String |
Kakao Talk profile thumbnail image URL. Required consent items: Profile image, or Profile information (Nickname/Profile image). Note: Delete previous profile image URL on profile change. |
X |
curl -X GET "https://kapi.kakao.com/v2/api/talk/profiles" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
-H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
-d "viewer_id=12345" \
-d "viewer_id_type=user_id" \
-d "target_ids=[9876,5432]" \
-d "target_id_type=user_id"
HTTP/1.1 200 OK
{
"viewer": {
"user_id": 12345,
"nickname": "xxx",
"profile_image_url": "http://yyy.kakao.com/dn/.../img_640x640.jpg",
"thumbnail_image_url": "http://yyy.kakao.com/.../img_110x110.jpg",
},
"targets": [
{
"user_id": 9876,
"nickname": "yyy",
"profile_image_url": "http://yyy.kakao.com/dn/.../img_640x640.jpg",
"thumbnail_image_url": "http://yyy.kakao.com/.../img_110x110.jpg",
},
{
"user_id": 5432,
"nickname": "zzz",
"profile_image_url": "http://yyy.kakao.com/dn/.../img_640x640.jpg",
"thumbnail_image_url": "http://yyy.kakao.com/.../img_110x110.jpg",
}
]
}
HTTP/1.1 200 OK
{
"targets": [
{
"user_id": 9876,
"nickname": "yyy",
},
]
}
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
{
"code": -101,
"msg": "NotRegisteredUserException"
}
HTTP/1.1 400 Bad request
Content-Type: application/json;charset=UTF-8
{
"code": -2,
"msg": "invalid target_ids. can get the profile only to registered users."
}