이 문서는 카카오 API 플랫폼 사용자를 위한 공통 편의 기능의 사용 방법을 안내합니다.
메서드 | URL | 인증 방식 |
---|---|---|
GET |
https://kapi.kakao.com/v1/system/ips |
네이티브 앱 키 REST API key JavaScript 키 어드민 키 |
권한 | 사전 설정 | 카카오 로그인 | 동의항목 |
---|---|---|---|
- | - | - | - |
카카오 API 플랫폼을 이용하기 위해 필요한 카카오 IP 목록을 가져옵니다. 서비스 서버에 방화벽 등 접근 제한을 적용한 경우, 카카오 서비스별 IP 목록을 인바운드(Inbound)와 아웃바운드(Outbound) 각각 등록해야 합니다.
서비스 앱 키 중 한 가지를 헤더에 담아 GET
으로 요청합니다. 인바운드와 아웃바운드 중 한 가지 IP 목록만 가져오려면 rule_type
을 사용합니다.
요청 성공 시 응답은 카카오 인바운드 및 아웃바운드 IP 목록을 포함합니다. 요청 실패 시 에러 코드로 원인을 확인합니다.
유형 | 설명 |
---|---|
인바운드 | 카카오로부터의 요청을 받기 위한 IP 요청 유형을 나타내며, 다음 중 하나 callback : 콜백scrap : 서비스 웹 페이지 스크랩 요청 |
아웃바운드 | 카카오 API 사용을 위한 IP 각 카카오 서비스 도메인이며, 다음 중 하나 https://kauth.kakao.com : 카카오 로그인 APIhttps://kapi.kakao.com : 카카오 APIhttps://accounts.kakao.com : 카카오계정https://auth.kakao.com : 카카오계정(모바일)https://dapi.kakao.com : 검색, 로컬 APIhttps://apps.kakao.com : 카카오톡 메시지 APIhttps://talk-apps.kakao.com : 카카오톡 유니버설 링크 |
이름 | 설명 | 필수 |
---|---|---|
Authorization | Authorization: KakaoAK ${SERVICE_APP_KEY} 인증 방식, 서비스 앱 키로 인증 요청 다음 중 한 가지 앱 키 사용 네이티브 앱 키 REST API key JavaScript 키 어드민 키 |
O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
rule_type | String |
조회할 카카오 IP 유형inbound 또는 outbound 중 하나 |
X |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
inbound | ServiceIp[] |
카카오 서비스별 인바운드 IP 목록 | X |
outbound | ServiceIp[] |
카카오 서비스별 아웃바운드 IP 목록 | X |
updatedDate | String |
최종 변경일, YYYY-MM-DD (ISO 8601) 형식 |
O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
service | String |
서비스 이름 또는 도메인 카카오 서비스 정보 참고 |
O |
ips | String[] |
서비스별 서버의 IP 목록 RFC1519 CIDR 형식 |
O |
ports | Int[] |
서비스별 포트 목록 | O |
addition | IpChange |
서비스별 추가 IP 목록 및 일정 | X |
exclusion | IpChange |
서비스별 제외 IP 목록 및 일정 | X |
updatedDate | String |
최종 변경일, YYYY-MM-DD (ISO 8601) 형식 |
O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
ips | String[] |
추가 또는 제외될 IP 목록 RFC1519 CIDR 형식 |
O |
date | String |
추가 또는 제외 일정 | O |
curl -v -G GET "https://kapi.kakao.com/v1/system/ips" \
-H "Authorization: KakaoAK ${REST_API_KEY}"
curl -v -G GET "https://kapi.kakao.com/v1/system/ips" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
-d "rule_type=inbound"
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", // 추가, 변경 예정인 IP 목록이 없는 경우
"ips": [
"203.133.166.32/32",
"27.0.237.15/32"
],
"ports": [
443
],
"updatedDate": "2023-06-28"
},
{
"service": "https://kapi.kakao.com", // 추가, 변경 예정인 IP 목록이 있는 경우
"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", // 추가 예정인 ip 목록이 있는 경우
"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", // 변경 예정인 ip 목록이 있는 경우
"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"
}
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"
}
[카카오 오픈 API 상태]를 API로 조회할 수 있습니다.
메서드 | URL | 인증 방식 |
---|---|---|
GET |
https://api-status.kakao.com/api/health/current |
- |
권한 | 사전 설정 | 카카오 로그인 | 동의항목 |
---|---|---|---|
- | - | - | - |
카카오 오픈 API의 현재 상태를 확인합니다. 상태 정보는 5분마다 갱신됩니다.
GET
으로 요청합니다. product
로 제품, api
로 API를 지정할 수 있습니다. 요청이 성공하면 응답은 각 제품 및 API의 현재 상태 정보를 포함합니다. 각 제품의 상태는 정상 여부와 무관하게 항상 응답에 포함되고, 각 API의 상태는 이상이 있는 경우에만 응답에 포함됩니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
product | String |
상태를 확인할 제품, 쉼표로 구분된 하나의 문자열 미지정 시 모든 제품의 상태 확인 (예: login,message ) |
X |
api | String |
상태를 확인할 API, 쉼표로 구분된 하나의 문자열 미지정 시 모든 API의 상태 확인 (예: user_me,user_shipping_address )비고: 제품을 지정한 경우, 해당 제품에 속한 API만 지정해야 함 |
X |
lang | String |
응답 언어, 다음 중 하나:ko : 한국어en : 영어(기본값: ko ) |
X |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
updatedAt | String |
최종 업데이트 시각, 5분 단위, yyyy-MM-dd HH:mm:ssZ 형식 |
X |
statuses | Status[] |
상태 정보 목록 | X |
warning | Warning |
잘못된 요청인 경우, 상세 사유 | X |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
productId | String |
제품 ID | O |
productName | String |
제품 이름 | O |
status | String |
현재 제품 상태, 다음 중 하나:GREEN : 정상YELLOW : 주의RED : 오류MAINTENANCE : 점검UNKNOWN : 알 수 없음 |
O |
issuses | Issue[] |
상태 이상 상세 정보status 가 GREEN 또는 UNKNOWN 인 경우 미제공 |
X |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
apiId | String |
API ID | O |
apiName | String |
API 이름 | O |
status | String |
현재 API 상태, 다음 중 하나:GREEN : 정상YELLOW : 주의RED : 오류MAINTENANCE : 점검UNKNOWN : 알 수 없음 |
O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
invalidProduct | String[] |
유효하지 않은 product 값 목록 |
X |
invalidUri | String[] |
유효하지 않은 api 값 목록 |
X |
curl -v -G GET "https://api-status.kakao.com/api/health/current"
curl -v -G GET "https://api-status.kakao.com/api/health/current" \
-d "product=login"
curl -v -G GET "https://api-status.kakao.com/api/health/current" \
-d "product=login" \
-d "api=user_me"
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"
},
...
]
}
HTTP/2 200
content-type: application/json; charset=utf-8
{
"updatedAt": "2023-12-05T07:00:01.986Z",
"statuses": [
{
"productId": "login",
"productName": "카카오 로그인",
"status": "GREEN"
}
]
}
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"
}
]
}
]
}
HTTP/2 200
content-type: application/json; charset=utf-8
{
"updatedAt": "2023-12-05T07:12:43.961Z",
"statuses": []
}
HTTP/2 200
content-type: application/json; charset=utf-8
{
"updatedAt": "2023-12-05T07:49:57.811Z",
"statuses": [],
"warning": {
"invalidProduct": "test",
"invalidUris": "test"
}
}
메서드 | URL | 인증 방식 |
---|---|---|
GET |
https://api-status.kakao.com/api/health/history |
- |
권한 | 사전 설정 | 카카오 로그인 | 동의항목 |
---|---|---|---|
- | - | -- | -- |
카카오 오픈 API 상태의 이력을 확인합니다. 이력은 일 단위로 제공되고, 요청일 기준으로 최대 30일 전까지 조회 가능합니다.
GET
으로 요청합니다. start
와 end
로 기간을 지정할 수 있습니다. 요청 성공 시, 응답은 일 단위 상태 이력을 포함합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
start | String |
시작일, yyyy-MM-dd 형식 |
X |
end | String |
종료일, yyyy-MM-dd 형식 |
X |
product | String |
상태를 확인할 제품, 쉼표로 구분된 하나의 문자열 미지정 시 모든 제품의 상태 확인 (예: login,message ) |
X |
api | String |
상태를 확인할 API, 쉼표로 구분된 하나의 문자열 미지정 시 모든 API의 상태 확인 (예: user_me,user_shipping_address )비고: 제품을 지정한 경우, 해당 제품에 속한 API만 지정해야 함 |
X |
lang | String |
응답 언어, 다음 중 하나:ko : 한국어en : 영어(기본값: ko ) |
X |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
- | StatusHistory[] |
일별 상태 이력 | O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
date | String |
날짜 | O |
statuses | Status[] |
상태 정보 목록 | O |
curl -v -G GET "https://api-status.kakao.com/api/health/history"
curl -v -G GET "https://api-status.kakao.com/api/health/history" \
-d "start=2023-12-01" \
-d "end=2023-12-31"
curl -v -G GET "https://api-status.kakao.com/api/health/history" \
-d "product=login"
curl -v -G GET "https://api-status.kakao.com/api/health/history" \
-d "product=user_me"
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"
},
...
]
},
...
]
HTTP/2 200
content-type: application/json; charset=utf-8
[
{
"date": "2023-12-04T15:00:00.000Z",
"statuses": [
{
"productId": "login",
"productName": "카카오 로그인",
"status": "GREEN"
}
]
},
...
]
이름 | ID |
---|---|
카카오 로그인 | login |
카카오톡 소셜 | social |
메시지 | message |
로컬 | local |
카카오내비 | navi |
카카오톡 채널 | channel |
검색 | search |
이름 | ID |
---|---|
인가 코드 받기 | oauth_authorize |
토큰 받기 | oauth_token |
OIDC: 메타데이터 확인하기 | oidc_meta |
OIDC: 공개키 목록 조회하기 | oidc_public_key |
로그아웃 | user_logout |
연결하기 | user_signup |
연결 끊기 | user_unlink |
토큰 정보 보기 | user_access_token_info |
사용자 정보 가져오기 | user_me |
사용자 정보 저장하기 | user_update_profile |
배송지 가져오기 | user_shipping_address |
사용자 목록 가져오기 | user_ids |
여러 사용자 정보 가져오기 | app_users |
동의 내역 확인하기 | user_scopes |
동의 철회하기 | user_revoke_scopes |
서비스 약관 동의 내역 확인하기 | user_service_terms |
서비스 약관 동의 철회하기 | user_revoke_service_terms |
OIDC: 사용자 정보 가져오기 | oidc_userinfo |
프로필 가져오기 | talk_profile |
친구 목록 가져오기 | talk_friends |
피커: 친구 선택하기(Native SDK) | picker_friends_native |
피커: 친구 선택하기(JS SDK) | picker_friends_js |
카카오톡 공유: 기본 템플릿으로 메시지 구성하기 | talk_sharing_default_template |
카카오톡 공유: 사용자 정의 템플릿으로 메시지 구성하기 | talk_sharing_custom_template |
카카오톡 공유: 스크랩 메시지 구성하기 | talk_sharing_scrap_template |
카카오톡 공유: 메시지 보내기 | talk_sharing_send_message |
카카오톡 공유: 웹 공유 메시지 보내기 | talk_sharing_web_send_message |
카카오톡 공유: 이미지 업로드하기 | talk_sharing_upload_images |
카카오톡 공유: 이미지 스크랩하기 | talk_sharing_scrap_images |
카카오톡 공유: 이미지 삭제하기 | talk_sharing_delete_images |
나에게 기본 템플릿으로 메시지 보내기 | talk_memo_default_send |
나에게 사용자 정의 템플릿으로 메시지 보내기 | talk_memo_send |
나에게 스크랩 메시지 보내기 | talk_memo_scrap_send |
친구에게 기본 템플릿으로 메시지 보내기 | talk_friends_message_default_send |
친구에게 사용자 정의 템플릿으로 메시지 보내기 | talk_friends_message_send |
친구에게 스크랩 메시지 보내기 | talk_friends_message_scrap_send |
JavaScript용 지도 API | map_js |
네이티브앱용 지도 API | map_native |
네이티브앱용 벡터 지도 API | vector_map_native |
지도 배경 구성 정보 | map_style |
POI(관심 지점) | map_poi |
주소를 좌표로 변환하기 | local_search_address |
좌표를 행정구역정보로 변환하기 | local_geo_coord2regioncode |
좌표를 주소로 변환하기 | local_geo_coord2address |
좌표계 변환하기 | local_geo_transcoord |
키워드로 장소 검색하기 | local_search_keyword |
카테고리로 장소 검색하기 | local_search_category |
자동차 길찾기 | navi_directions |
다중 경유지 길찾기 | navi_waypoints_directions |
다중 출발지 길찾기 | navi_origins_directions |
다중 목적지 길찾기 | navi_destinations_directions |
미래 운행 정보 길찾기 | navi_future_directions |
카카오톡 채널 관계 확인하기 | talk_channels |
여러 사용자 카카오톡 채널 관계 확인하기 | talk_channels_multi |
고객 관리: 파일 등록하기 | talkchannel_create_target_user_file |
고객 관리: 파일 보기 | talkchannel_target_user_file |
고객 관리: 사용자 추가하기 | talkchannel_update_target_users |
고객 관리: 사용자 삭제하기 | talkchannel_delete_target_users |
웹 문서 검색하기 | search_web |
동영상 검색하기 | search_vclip |
이미지 검색하기 | search_image |
블로그 검색하기 | search_blog |
책 검색하기 | search_book |
카페 검색하기 | search_cafe |