본문 바로가기메인 메뉴 바로가기사이드 메뉴 바로가기

kakao developers

관련사이트

사이드 메뉴

카카오맵

검색

REST API

레퍼런스

이 문서는 카카오디벨로퍼스에서 제공하는 REST API의 규격 정보를 안내합니다.

요청

카카오 플랫폼의 API 요청 규격을 구성하는 요소는 아래와 같습니다.

구성 요소설명
메서드(Method)카카오 API 호출 시 사용해야 할 HTTP 요청 메서드입니다.
(예: GET, POST, PUT, DELETE)
호스트(Host)요청을 받는 카카오 API 서버의 도메인입니다.
(예: kapi.kakao.com)
URLAPI로 제공하는 리소스마다 지정된 요청 경로입니다.
호스트와 함께 각 API의 엔드포인트(Endpoint)를 구성합니다.
(예: /v2/user/me)
헤더(Header)카카오 API 호출 시 필요한 인증 정보(Authorization)나 기타 추가 정보를 전달하는 데 사용합니다.
인증 정보는 액세스 토큰 또는 앱 키를 사용합니다.
일부 카카오모먼트 API는 인증 정보와 함께 광고계정 ID를 헤더에 포함하여 호출해야 합니다.
(예: Authorization: Bearer ${ACCESS_TOKEN})
경로 변수(Path variable)카카오 API 호출 시, 사용자가 전달한 값을 포함해 URL을 구성할 때 사용합니다.
카카오모먼트 등 일부 카카오 API는 URL에 경로 변수를 포함합니다.
(예: /openapi/v4/campaigns/${id})
파라미터(Parameter)요청 처리에 필요한 데이터를 전달하는 데 사용합니다.
파라미터는 키와 값의 쌍으로 구성되며, 쿼리 문자열(Query string) 또는 본문으로 전달합니다.
각 파라미터는 자료형(Data type)과 필수 전달 여부가 지정돼 있습니다.

각 API의 요청 규격이 다르므로, API별 개발 문서에서 상세 정보를 확인하고 호출해야 합니다. 요구 사양을 함께 참고합니다.

보안 설정

서비스의 필요에 따라 보안 강화 요소로 호출 허용 IP 주소클라이언트 시크릿(Client Secret) 설정을 사용할 수 있습니다.

응답

응답 형식

카카오 플랫폼은 API 요청에 대해 응답 코드와 응답 필드로 구성된 응답을 제공합니다. 응답 필드는 각 API의 호스트 및 요청 성공 여부에 따라 구성이 다릅니다.

  • 요청 성공 시: HTTP 상태 코드 및 API별 성공 응답 필드 반환
  • 요청 실패 시: HTTP 상태 코드 및 JSON 형식의 에러 응답 필드 반환, 에러 응답 필드에 에러 코드 및 메시지 포함

아래는 주요 호스트의 에러 응답 필드 구성 및 예시입니다.

kauth.kakao.com
이름타입설명필수
errorString에러 코드
에러 코드에서 상세 정보 확인 가능
X
error_descriptionString실패 원인을 나타내는 에러 메시지
에러 원인에 대한 참고 정보로써 변경될 수 있으므로, 예외 처리 시에는 에러 코드를 사용해야 함
X
kapi.kakao.com
이름타입설명필수
codeInt에러 코드X
msgString에러 메시지
에러 원인에 대한 참고 정보로써 변경될 수 있으므로, 예외 처리 시에는 에러 코드를 사용해야 함
X
예: [앱] > [어드민 키] > [사용 가능 API]에서 허용하지 않은 API를 호출한 경우
HTTP/1.1 403 Forbidden
{
"msg": "This api is not allowed by using app_key(${APP_KEY}).",
"code": -3
}
예: 토큰이 잘못되었을 경우
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer error=invalid_token
{
"code":-401,
"msg":"InvalidTokenException"
}
예: API의 허용된 요청 회수 초과
HTTP/1.1 400 Bad Request
{
"code":-10,
"msg":"API limit has been exceeded."
}
예: 카카오톡 메시지 발송 기능 접근 권한이 없어 전송 실패
HTTP/1.1 403 Forbidden
{
"msg": "insufficient scopes.",
"code": -402,
"api_type": "TALK_MEMO_DEFAULT_SEND",
"required_scopes": [
"talk_message"
],
"allowed_scopes": [
"profile",
"account_email"
]
}
참고: 에러 코드와 에러 메시지

code는 특별한 규칙을 가지고 있지 않은 음수의 숫자이고, 실패 원인을 나타내는 msg는 요청에 따라 의미가 바뀌지 않는 범위에서 내용이 바뀔 수 있습니다. 예를 들어, code가 -401일 경우 전달되는 msg의 내용은 아래와 같이 다양하게 전달됩니다.

예: 유효하지 않은 앱키나 액세스 토큰으로 요청한 경우
"this access token does not exist", "this access token is already expired", "appKey(xxxxxxxx) is already deactivated"
예: 앱 관리 페이지의 [앱] > [플랫폼 키] > [JavaScript 키] > [JavaScript SDK 도메인]에 등록되지 않은 도메인에서 API를 호출한 경우
"domain mismatched! caller=xxxxxxxx. check out registered web domains."
예: 앱 관리 페이지의 [앱] > [플랫폼 키] > [네이티브 앱 키]에 등록된 정보와 클라이언트의 정보가 맞지 않을 경우
"android keyhash mismatched! caller=xxxxxxxx. check out registered keyhash."
"ios bundle id mismatched! caller=xxxxxxxx. check out registered bundle id."
예: [호출 허용 IP 주소] 설정에 해당하는 IP에서 요청하지 않았을 경우
"ip mismatched! callerIp=xxxxxxxx. check out registered ips."

응답 코드

응답 코드는 요청에 대한 상태를 나타내는 HTTP 상태 코드(Status code), 에러에 대한 정보를 담은 에러 코드(Error code)로 나뉩니다. 요청 성공 시 HTTP 상태 코드 200과 함께 요청에 대한 응답 본문(response body)이 반환되고, 요청이 실패한 경우 codemsg로 이루어진 에러 코드를 반환합니다.

HTTP 상태 코드

HTTP 상태 코드(HTTP Status code)란 응답 메시지의 첫 번째 줄에 나타나는 세 자리 숫자의 코드로 요청에 대한 상태 정보(성공 또는 실패)를 나타냅니다. 상태 코드는 크게 5가지로 분류되며, 상태 코드의 첫 번째 숫자로 응답의 종류를 파악할 수 있습니다. 자세한 정보는 RFC 2616을 참고합니다.

아래는 카카오 플랫폼이 API 요청에 대해 응답하는 상태 코드의 종류와 의미입니다.

상태 코드상태설명
200
OK
성공서버가 클라이언트의 요청을 성공적으로 수행
응답 본문의 경우 각 API별로 응답 본문의 형식이 다를 수 있으므로, 자세한 내용은 각 API별 상세 설명을 참고합니다.
400
Bad Request
실패일반적인 오류
주로 API에 필요한 필수 파라미터와 관련하여 서버가 클라이언트 오류를 감지해 요청을 처리하지 못한 상태입니다.
401
Unauthorized
실패인증 오류(주로 토큰 관련)
해당 리소스에 유효한 인증 자격 증명이 없어 요청에 실패한 상태입니다.
응답은 OAuth 2.0 RFC6750 표준 규격에 따라 헤더에 오류 정보를 포함합니다.
  • 토큰 사용 시: WWW-Authenticate: Bearer error=invalid_token
  • 서비스 앱 어드민 키 사용 시: WWW-Authenticate: KakaoAK error=invalid_token
상세 오류 정보는 응답 본문에서 확인할 수 있습니다.
403
Forbidden
실패권한 오류
서버에 요청이 전달되었지만, 권한 때문에 거절된 상태입니다.
429
Too Many Request
실패쿼터 초과(Daum 검색, 로컬, 모먼트, 키워드광고 API에만 해당)
정해진 사용량이나 초당 요청 한도를 초과한 경우
500
Internal Server Error
실패시스템 오류
서버 에러를 총칭하는 에러 코드로, 요청을 처리하는 과정에서 서버가 예상하지 못한 상황에 놓인 상태입니다.
502
Bad Gateway
실패시스템 오류
서로 다른 프로토콜을 연결해주는 게이트웨이가 잘못된 프로토콜을 연결하거나 연결된 프로토콜에 문제가 있어 통신이 제대로 되지 않은 상태입니다.
503
Service Unavailable
실패서비스 점검중
서버가 요청을 처리할 준비가 되지 않은 상태입니다.
에러 코드

에러 코드를 참고합니다.

API 목록

카카오 플랫폼에서 REST API로 제공하는 API 목록과 기본적인 요청 규격 정보입니다.

카카오 로그인

API메서드URL
인가 코드 요청GEThttps://kauth.kakao.com/oauth/authorize
토큰 요청POSThttps://kauth.kakao.com/oauth/token
로그아웃POSThttps://kapi.kakao.com/v1/user/logout
카카오계정과 함께 로그아웃GEThttps://kauth.kakao.com/oauth/logout
연결 해제POSThttps://kapi.kakao.com/v1/user/unlink
액세스 토큰 정보 조회GEThttps://kapi.kakao.com/v1/user/access_token_info
토큰 갱신POSThttps://kauth.kakao.com/oauth/token
사용자 정보 조회GET/POSThttps://kapi.kakao.com/v2/user/me
여러 사용자 정보 조회GEThttps://kapi.kakao.com/v2/app/users
사용자 목록 조회GEThttps://kapi.kakao.com/v1/user/ids
사용자 프로퍼티 저장POSThttps://kapi.kakao.com/v1/user/update_profile
배송지 조회GEThttps://kapi.kakao.com/v1/user/shipping_address
동의항목 동의 내역 조회GEThttps://kapi.kakao.com/v2/user/scopes
동의항목 동의 철회POSThttps://kapi.kakao.com/v2/user/revoke/scopes
서비스 약관 동의 내역 조회GEThttps://kapi.kakao.com/v2/user/service_terms
서비스 약관 동의 철회POSThttps://kapi.kakao.com/v2/user/revoke/service_terms
고급: 서비스 약관에 동의POSThttps://kapi.kakao.com/v2/user/upgrade/service_terms
OIDC: 메타데이터 조회GEThttps://kauth.kakao.com/.well-known/openid-configuration
OIDC: 공개키 목록 조회GEThttps://kauth.kakao.com/.well-known/jwks.json
OIDC: ID 토큰 정보 조회POSThttps://kauth.kakao.com/oauth/tokeninfo
OIDC: 사용자 정보 조회GEThttps://kapi.kakao.com/v1/oidc/userinfo
고급: 수동 연결POSThttps://kapi.kakao.com/v1/user/signup

카카오톡 소셜

API메서드URL
카카오톡 프로필 조회GEThttps://kapi.kakao.com/v1/api/talk/profile
카카오톡 친구 목록 조회GEThttps://kapi.kakao.com/v1/api/talk/friends
사용자 목록으로 카카오톡 프로필 조회GET/POSThttps://kapi.kakao.com/v2/api/talk/profiles

카카오톡 메시지

API메서드URL
나에게 기본 템플릿으로 메시지 발송POSThttps://kapi.kakao.com/v2/api/talk/memo/default/send
나에게 사용자 정의 템플릿으로 메시지 발송POSThttps://kapi.kakao.com/v2/api/talk/memo/send
나에게 스크랩 메시지 발송POSThttps://kapi.kakao.com/v2/api/talk/memo/scrap/send
기본 템플릿으로 메시지 발송POSThttps://kapi.kakao.com/v1/api/talk/friends/message/default/send
사용자 정의 템플릿으로 메시지 발송POSThttps://kapi.kakao.com/v1/api/talk/friends/message/send
스크랩 메시지 발송POSThttps://kapi.kakao.com/v1/api/talk/friends/message/scrap/send

카카오톡 채널

API메서드URL
카카오톡 채널 관계 조회GEThttps://kapi.kakao.com/v2/api/talk/channels
여러 사용자 카카오톡 채널 관계 조회GEThttps://kapi.kakao.com/v2/api/talk/channels/multi
고객 관리: 고객파일 등록POSThttps://kapi.kakao.com/v1/talkchannel/create/target_user_file
고객 관리: 고객파일 조회GEThttps://kapi.kakao.com/v1/talkchannel/target_user_file
고객 관리: 고객파일에 사용자 추가POSThttps://kapi.kakao.com/v1/talkchannel/update/target_users
고객 관리: 고객파일의 사용자 삭제POSThttps://kapi.kakao.com/v1/talkchannel/delete/target_users

비즈니스 인증

API메서드URL
비즈니스 인가 코드 요청GEThttps://kauth.kakao.com/oauth/business/authorize
비즈니스 토큰 요청POSThttps://kauth.kakao.com/oauth/business/token
비즈니스 토큰 정보 조회GEThttps://kapi.kakao.com/v1/business/tokeninfo
비즈니스 사용자 정보 조회GEThttps://kapi.kakao.com/v1/business/userinfo
비즈니스 토큰 발급 철회POSThttps://kapi.kakao.com/v1/business/revoke

카카오모먼트

카카오 키워드광고

푸시 알림

API메서드URL
푸시 토큰 등록POSThttps://kapi.kakao.com/v2/push/register
푸시 토큰 조회GET/POSThttps://kapi.kakao.com/v2/push/tokens
푸시 토큰 삭제POSThttps://kapi.kakao.com/v2/push/deregister
푸시 알림 발송POSThttps://kapi.kakao.com/v2/push/send

톡캘린더

API메서드URL
목록 조회GEThttps://kapi.kakao.com/v2/api/calendar/calendars
서브 캘린더 생성POSThttps://kapi.kakao.com/v2/api/calendar/create/calendar
서브 캘린더 수정POSThttps://kapi.kakao.com/v2/api/calendar/update/calendar
서브 캘린더 삭제DELETEhttps://kapi.kakao.com/v2/api/calendar/delete/calendar
생성POSThttps://kapi.kakao.com/v2/api/calendar/create/event
목록 조회GEThttps://kapi.kakao.com/v2/api/calendar/events
상세 조회GEThttps://kapi.kakao.com/v2/api/calendar/event
수정POSThttps://kapi.kakao.com/v2/api/calendar/update/event/host
삭제DELETEhttps://kapi.kakao.com/v2/api/calendar/delete/event
생성POSThttps://kapi.kakao.com/v2/api/calendar/public/create/event
목록 조회GEThttps://kapi.kakao.com/v2/api/calendar/public/events
상세 조회GEThttps://kapi.kakao.com/v2/api/calendar/public/event
수정POSThttps://kapi.kakao.com/v2/api/calendar/public/update/event
삭제DELETEhttps://kapi.kakao.com/v2/api/calendar/public/delete/event
사용자 캘린더에 추가POSThttps://kapi.kakao.com/v2/api/calendar/public/follow
구독 가능 캘린더 목록 조회GEThttps://kapi.kakao.com/v2/api/calendar/subscribable/calendars
구독POSThttps://kapi.kakao.com/v2/api/calendar/subscribe
구독 해제DELETEhttps://kapi.kakao.com/v2/api/calendar/unsubscribe
수정POSThttps://kapi.kakao.com/v2/api/calendar/update/event/guest
공휴일 및 주요 기념일 조회GEThttps://kapi.kakao.com/v2/api/calendar/holidays
생성POSThttps://kapi.kakao.com/v1/api/calendar/create/task
조회GEThttps://kapi.kakao.com/v1/api/calendar/tasks
도전 기록 조회GEThttps://kapi.kakao.com/v1/api/calendar/task/records
수정POSThttps://kapi.kakao.com/v1/api/calendar/update/task
완료 여부 설정POSThttps://kapi.kakao.com/v1/api/calendar/complete/task
삭제DELETEhttps://kapi.kakao.com/v1/api/calendar/delete/task

로컬

API메서드URL
주소로 좌표 변환GEThttps://dapi.kakao.com/v2/local/search/address.${FORMAT}
좌표로 행정구역정보 변환GEThttps://dapi.kakao.com/v2/local/geo/coord2regioncode.${FORMAT}
좌표로 주소 변환GEThttps://dapi.kakao.com/v2/local/geo/coord2address.${FORMAT}
좌표계 변환GEThttps://dapi.kakao.com/v2/local/geo/transcoord.${FORMAT}
키워드로 장소 검색GEThttps://dapi.kakao.com/v2/local/search/keyword.${FORMAT}
카테고리로 장소 검색GEThttps://dapi.kakao.com/v2/local/search/category.${FORMAT}

Daum 검색

API메서드URL
웹문서 검색GEThttps://dapi.kakao.com/v2/search/web
동영상 검색GEThttps://dapi.kakao.com/v2/search/vclip
이미지 검색GEThttps://dapi.kakao.com/v2/search/image
블로그 검색GEThttps://dapi.kakao.com/v2/search/blog
책 검색GEThttps://dapi.kakao.com/v3/search/book
카페 검색GEThttps://dapi.kakao.com/v2/search/cafe

사용자 편의 API

API메서드URL
카카오 IP 목록 조회GEThttps://kapi.kakao.com/v1/system/ips
현재 상태 조회GEThttps://api-status.kakao.com/api/health/current
이력 조회GEThttps://api-status.kakao.com/api/health/history

도움이 되었나요?