

이 문서는 카카오디벨로퍼스 사용자를 위한 공통 편의 기능의 사용 방법을 안내합니다.
| 메서드 | URL | 인증 방식 |
|---|---|---|
GET |
https://kapi.kakao.com/v1/system/ips |
네이티브 앱 키 REST API key JavaScript 키 어드민 키 |
| 권한 | 사전 설정 | 카카오 로그인 | 동의항목 |
|---|---|---|---|
| - | - | - | - |
카카오디벨로퍼스를 이용하기 위해 필요한 카카오 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":"${SERVICE_NAME}",
"ips":[
"${IP_ADDRESS}",
...
],
"ports":[
"${PORT_NUMBER}",
...
],
"updatedDate":"${UPDATED_DATE}"
},
...
],
"outbound":[
{
"service":"${SERVICE_NAME}",
"ips":[
"${IP_ADDRESS}",
...
],
"ports":[
"${PORT_NUMBER}",
...
],
"updatedDate":"${UPDATED_DATE}"
},
...
],
"updatedDate":"${UPDATED_DATE}"
}
[카카오 오픈 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 |