페이지 이동경로
  • Docs>
  • Reference Information>
  • Utility API

Reference Information

Utility API

This document provides the Utility API information for Kakao API platform users.

Retrieve Kakao IP list

Basic information
Method URL Authorization
GET https://kapi.kakao.com/v1/system/ips Native app key
REST API key
JavaScript key
Admin key
Permission Prerequisite Kakao Login User consent
- - - -

Retrieve Kakao IP list to use Kakao APIs. If access to the service server is restricted by the firewall or ACL (Access Control List), you must set the Kakao service server's IP on the firewall rules or ACL.

Send a GET request with one of service app keys in the header. To retrieve only one of either inbound or outbound, use rule_type.

The response includes the inbound and outbound Kakao IP list. If failed, refer to Error code to figure out the reason.

Kakao service information
유형 설명
Inbound Required IPs to get the request from Kakao.
One of the request types below.
callback: Callback
scrap: A request to scrape a service page
Outbound Required IPs to use Kakao APIs.
One of the Kakao service domains below.
https://kauth.kakao.com: Kakao Login API
https://kapi.kakao.com: Kakao API
https://accounts.kakao.com: Kakao Account
https://auth.kakao.com: Kakao Account(Mobile)
https://dapi.kakao.com: Daum search, local API
https://apps.kakao.com: Kakao Talk Message API
https://talk-apps.kakao.com: Kakao Talk universal link

Request

Header
Name Description Required
Authorization Authorization: KakaoAK ${SERVICE_APP_KEY}
Service app key as a type of user authentication.
One of:
Native app key
REST API key
JavaScript key
Admin key
O
Query parameter
Name Type Description Required
rule_type String IP type to retrieve.
One of inbound and outbound.
X

Response

Body
Name Type Description Required
inbound IP[] Inbound IP list of each Kakao service. X
outbound IP[] Outbound IP list of each Kakao service. X
updatedDate String The last updated date in YYYY-MM-DD(ISO 8601) Format. O
ServiceIp
Name Type Description Required
service String The service names or the service domain.
Refer to Kakao service information.
O
ips String[] The IP list of each Kakao service.
RFC1519 CIDR format.
O
ports Int[] The port list of each Kakao service. O
addition IpChange The IP information to be added. X
exclusion IpChange The IP information to be excluded. X
updatedDate String The last updated date in YYYY-MM-DD(ISO 8601) Format. O
IpChange
Name Type Description Required
ips String[] The IP list to be added or excluded.
RFC1519 CIDR format.
O
date String The addition or exclusion schedule. O

Sample

Request
curl -v -G GET "https://kapi.kakao.com/v1/system/ips" \
  -H "Authorization: KakaoAK ${REST_API_KEY}"
Request: retrieve only inbound IP list
curl -v -G GET "https://kapi.kakao.com/v1/system/ips" \
  -H "Authorization: KakaoAK ${REST_API_KEY}" \
  -d "rule_type=inbound"
Response
HTTP/1.1 200 OK
{
  "inbound": [
    {
      "service": "callback",
      "ips": [
        "211.249.203.104/24",
        "220.64.110.190/25",
        "220.64.111.158/25",
        "220.64.109.84/31",
        "203.217.230.3/26"
      ],
      "ports": [
        443
      ],
      "updatedDate": "2023-06-28"
    },
    ...
  ],
  "outbound": [
    {
      "service": "https://kauth.kakao.com",    // If there is no list of IPs to be added
      "ips": [
        "203.133.166.32/32",
        "27.0.237.15/32"
      ],
      "ports": [
        443
      ],
      "updatedDate": "2023-06-28"
    },
    {
      "service": "https://kapi.kakao.com",    // If there is a list of IPs to be added or excluded
      "ips": [
        "203.133.166.33/32",
        "211.249.200.134/32"
      ],
      "ports": [
        443
      ],
      "updatedDate": "2023-06-28",
      "addition": {
        "ips": [
          "111.111.111.0/32",
          "111.111.111.1/32"
        ],
        "date": "2023-06-30"
      },
      "exclusion": {
        "ips": [
          "203.133.166.33/32",
          "211.249.200.134/32"
        ],
        "date": "2023-07-01"
      }
    },
    {
      "service": "https://accounts.kakao.com",    // If there is a list of IPs to be added
      "ips": [
        "211.231.99.67/32",
        "110.76.142.110/32"
      ],
      "ports": [
        443
      ],
      "updatedDate": "2023-06-28",
      "addition": {
        "ips": [
          "111.111.111.2/32",
          "111.111.111.3/32"
        ],
        "date": "2023-06-30"
      }
    },
    {
      "service": "https://auth.kakao.com",    // If there is a list of IPs to be excluded
      "ips": [
        "219.249.227.143/32",
        "210.103.240.15/32",
        "110.76.141.64/32"
      ],
      "ports": [
        443
      ],
      "updatedDate": "2023-06-28",
      "exclusion": {
        "ips": [
          "219.249.227.143/32",
          "210.103.240.15/32"
        ],
        "date": "2023-07-01"
      }
    },
    ...
  ],
  "updatedDate": "2023-06-28"
}
Response: If only the inbound IP list is requested
HTTP/1.1 200 OK
{
    "inbound": [
        {
            "service": "callback",
            "ips": [
                "211.249.203.104/24", "220.64.110.190/25", "220.64.111.158/25", "220.64.109.84/31", "203.217.230.3/26"
            ],
            "ports": [443],
            "updatedDate": "2023-06-28"
        }, {
            "service": "scrap",
            "ips": [
                "211.231.96.0/20", "27.0.236.0/22"
            ],
            "ports": [
                80, 443
            ],
            "updatedDate": "2023-06-28"
        }
    ],
    "updatedDate": "2023-06-28"
}

Kakao Open API status

Use these APIs to retrieve [Kakao Open API Status].

Check current status

Basic information
Method URL Authorization
GET https://api-status.kakao.com/api/health/current -
Permission Prerequisite Kakao Login User consent
- - - -

Check the current status of Kakao APIs. The status is updated every 5 minutes.

Send a GET request. Use product and api parameters to specify products and APIs. If the request is successful, the response includes the current status information for each product and API. The status of each product is always included in the response regardless of the status, and the status of each API is included in the response only if there is an abnormality.

Request

Query parameter
Name Type Description Required
product String Products to check status, a comma separated string
If not specified, check all products
(Example: login,message)
X
api String APIs to check status, a comma separated string
If not specified, check all APIs
(Example: user_me,user_shipping_address)

Note: If products are specified, APIs only for the same products are available
X
lang String Language for the response, one of:
ko: Korean
en: English
(Default: ko)
X

Response

Body
Name Type Description Required
updatedAt String Last updated time, in 5-minute increments, yyyy-MM-dd HH:mm:ssZ format O
statuses Status[] List of the status information O
warning Warning If the request was invalid, detailed reasons X
Status
Name Type Description Required
productId String ID of the product O
productName String Name of the product O
status String Current product status, one of the following:
GREEN: Normal
YELLOW: Warning
RED: Outage
MAINTENANCE: Maintenance
UNKNOWN: Unknown
O
issuses Issue[] Detailed information on abnormal status
Not provided when the status is GREEN or UNKNOWN
X
Issue
Name Type Description Required
apiId String ID of the API O
apiName String Name of the API O
status String Current API status, one of:
GREEN: Normal
YELLOW: Warning
RED: Outage
MAINTENANCE: Maintenance
UNKNOWN: Unknown
O
Warning
Name Type Description Required
invalidProduct String[] List of the invaild product values X
invalidUri String[] List of the invalid api values X

Sample

Request
curl -v -G GET "https://api-status.kakao.com/api/health/current"
Request: Check for Kakao Login
curl -v -G GET "https://api-status.kakao.com/api/health/current" \
    -d "product=login"
Request: Check for retrieving user information API
curl -v -G GET "https://api-status.kakao.com/api/health/current" \
    -d "product=login" \
    -d "api=user_me"
Response
HTTP/2 200
content-type: application/json; charset=utf-8
{
    "updatedAt": "2023-12-05T07:10:01.823Z",
    "statuses": [
        {
            "productId": "login",
            "productName": "카카오 로그인",
            "status": "GREEN"
        }, 
        {
            "productId": "social",
            "productName": "카카오톡 소셜",
            "status": "GREEN"
        }, 
        {
            "productId": "message",
            "productName": "메시지",
            "status": "GREEN"
        }, 
        ...
    ]
}
Response: Check for Kakao Login, normal status
HTTP/2 200 
content-type: application/json; charset=utf-8
{
    "updatedAt": "2023-12-05T07:00:01.986Z",
    "statuses": [
        {
            "productId": "login",
            "productName": "카카오 로그인",
            "status": "GREEN"
        }
    ]
}
Response: Check for Kakao Login, abnormal status
HTTP/2 200 
content-type: application/json; charset=utf-8
{
    "updatedAt":"2023-11-27T09:30:01.807Z",
    "statuses":[
        {
            "productId":"login",
            "productName":"카카오 로그인",
            "status":"RED",
            "issues": [
                {
                    "apiId": "oauth_authorize",
                    "apiName": "인가 코드 받기",
                    "status": "YELLOW"
                },
                {
                    "apiId": "oauth_token",
                    "apiName": "토큰 받기",
                    "status": "RED"
                }
            ]
        }
    ]
}
Response: A product is specified, but the specified API is not included for the product
HTTP/2 200
content-type: application/json; charset=utf-8
{
    "updatedAt": "2023-12-05T07:12:43.961Z",
    "statuses": []
}
Response: Requested for invalid product or API
HTTP/2 200
content-type: application/json; charset=utf-8
{
    "updatedAt": "2023-12-05T07:49:57.811Z",
    "statuses": [],
    "warning": {
        "invalidProduct": "test",
        "invalidUris": "test"
    }
}

Check history

Basic information
Method URL Authorization
GET https://api-status.kakao.com/api/health/history -
Permission Prerequisite Kakao Login User consent
- - - -

Check the history of the status for Kakao Open API. Status history is provided on a daily basis and is provided up to 30 days prior to the request date.

Send a GET request. Use start and end parameters to specify the period. If the request is successful, the response includes the history of the status on a daily basis.

Request

Query parameter
Name Type Description Required
start String Start date, yyyy-MM-dd format X
end String End date, yyyy-MM-dd format X
product String Products to check status, a comma separated string
If not specified, check all products
(Example: login,message)
X
api String APIs to check status, a comma separated string
If not specified, check all APIs
(Example: user_me,user_shipping_address)

Note: If products are specified, APIs only for the same products are available
X
lang String Language for the response, one of:
ko: Korean
en: English
(Default: ko)
X

Response

Body
Name Type Description Required
- StatusHistory[] Daily status history O
StatusHistory
Name Type Description Required
date String Date O
statuses Status[] List of the status information O

Sample

Request
curl -v -G GET "https://api-status.kakao.com/api/health/history"
Request: Specified period
curl -v -G GET "https://api-status.kakao.com/api/health/history" \
    -d "start=2023-12-01" \
    -d "end=2023-12-31"
Request: Check for Kakao Login
curl -v -G GET "https://api-status.kakao.com/api/health/history" \
    -d "product=login"
Request: Check for retrieving user information API
curl -v -G GET "https://api-status.kakao.com/api/health/history" \
    -d "product=user_me"
Response
HTTP/2 200
content-type: application/json; charset=utf-8
[
    {
        "date": "2023-12-04T15:00:00.000Z",
        "statuses": [
            {
                "productId": "login",
                "productName": "카카오 로그인",
                "status": "GREEN"
            }, 
            {
                "productId": "social",
                "productName": "카카오톡 소셜",
                "status": "GREEN"
            }, 
            {
                "productId": "message",
                "productName": "메시지",
                "status": "GREEN"
            }, 
            ...
        ]
    },
    ...
]
Response: Check for Kakao Login, normal status
HTTP/2 200
content-type: application/json; charset=utf-8
[
    {
        "date": "2023-12-04T15:00:00.000Z",
        "statuses": [
            {
                "productId": "login",
                "productName": "카카오 로그인",
                "status": "GREEN"
            }
        ]
    },
    ...
]

Available products

Name ID
Kakao Login login
Kakao Talk Social social
Message message
Map/Local local
Kakao Navi navi
Kakao Talk Channel channel
Search search

Available APIs

Name ID
Get authorization code oauth_authorize
Get tokens oauth_token
OIDC: Retrieve Discovery document oidc_meta
OIDC: Get public key oidc_public_key
Logout user_logout
Manual signup user_signup
Unlink user_unlink
Retrieve token information user_access_token_info
Retrieve user information user_me
Store user information user_update_profile
Retrieve shipping address user_shipping_address
Retrieve user list user_ids
Retrieve multiple user information app_users
Retrieve consent details user_scopes
Revoke consent user_revoke_scopes
Retrieve consent details for service terms user_service_terms
Revoke consent for service terms user_revoke_service_terms
OIDC: Retrieve user information oidc_userinfo
Retrieve Kakao Talk profile talk_profile
Retrieve list of friends talk_friends
Picker: Retrieve friends(Native SDK) picker_friends_native
Picker: Retrieve friends(JS SDK) picker_friends_js
Kakao Talk Sharing: Configure message with default template talk_sharing_default_template
Kakao Talk Sharing: Configure message with custom template talk_sharing_custom_template
Kakao Talk Sharing: Configure scrap message talk_sharing_scrap_template
Kakao Talk Sharing: Send message talk_sharing_send_message
Kakao Talk Sharing: Send web sharing message talk_sharing_web_send_message
Kakao Talk Sharing: Upload images talk_sharing_upload_images
Kakao Talk Sharing: Scrap images talk_sharing_scrap_images
Kakao Talk Sharing: Delete images talk_sharing_delete_images
Send me message with default template talk_memo_default_send
Send me message with custom template talk_memo_send
Send me scrap message talk_memo_scrap_send
Send friends message with default template talk_friends_message_default_send
Send friends message with custom template talk_friends_message_send
Send friends scrap message talk_friends_message_scrap_send
Map API for JavaScript map_js
Map API for native app map_native
Vector map API for native app vector_map_native
Map style map_style
POI(Point Of Interest) map_poi
Convert address to coordinates local_search_address
Convert coordinates to region code local_geo_coord2regioncode
Convert coordinates to address local_geo_coord2address
Transform coordinates local_geo_transcoord
Place search by keyword local_search_keyword
Place search by category local_search_category
Find driving directions navi_directions
Find directions via multiple waypoints navi_waypoints_directions
Find directions from multiple origins navi_origins_directions
Find directions to multiple destinations navi_destinations_directions
Estimate future driving navi_future_directions
Check Kakao Talk Channel relationship talk_channels
Check multiple users' Kakao Talk Channel relationship talk_channels_multi
Customer management: Register customer file talkchannel_create_target_user_file
Customer management: View customer file talkchannel_target_user_file
Customer management: Add user talkchannel_update_target_users
Customer management: Delete user talkchannel_delete_target_users
Search web document search_web
Search video search_vclip
Search image search_image
Search blog search_blog
Search book search_book
Search cafe search_cafe