페이지 이동경로
  • 문서>
  • 유용한 참고 정보>
  • REST API 레퍼런스

유용한 참고 정보

REST API 레퍼런스

이 문서는 REST API 요청 시 필요한 URL 정보와 REST API 요청 및 응답 규격 정보와 API 목록을 제공합니다.

요청

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

구성 요소 설명
메서드(Method) 카카오 API 호출 시 사용해야 할 HTTP 요청 메서드입니다.
(예: GET, POST, PUT, DELETE)
호스트(Host) 요청을 받는 카카오 API 서버의 도메인입니다.
(예: kapi.kakao.com)
URL API를 통해 제공되는 리소스마다 지정된 요청 경로입니다.
호스트와 함께 각 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) 또는 바디(Body)를 통해 전달합니다.
각 파라미터는 자료형(Data type)과 필수 전달 여부가 지정돼 있습니다.

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

참고: 보안 설정

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

응답

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

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

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

kauth.kakao.com

Name Type Description Required
error String 에러 코드
문제 해결에서 상세 정보 확인 가능
X
error_description String 실패 원인을 나타내는 에러 메시지
에러 원인에 대한 참고 정보로써 변경될 수 있으므로, 예외 처리 시에는 에러 코드를 사용해야 함
X

kapi.kakao.com

Name Type Description Required
code Int 에러 코드 X
msg String 에러 메시지
에러 원인에 대한 참고 정보로써 변경될 수 있으므로, 예외 처리 시에는 에러 코드를 사용해야 함
X
예: 토큰이 잘못되었을 경우
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"
예: [내 애플리케이션] > [플랫폼]에 등록된 도메인이 아닌 도메인에서 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 제품별로 발생할 수 있는 에러 코드 정보입니다. 에러 발생 시 code 중 해당하는 항목을 찾아 원인을 파악합니다.

공통
code 설명 HTTP 상태 코드
-1 서버 내부에서 처리 중에 에러가 발생한 경우
해결 방법: 재시도
400
-2 필수 인자가 포함되지 않은 경우나 호출 인자값의 데이타 타입이 적절하지 않거나 허용된 범위를 벗어난 경우
해결 방법: 요청 파라미터 확인
400
-3 해당 API를 사용하기 위해 필요한 기능(간편가입, 동의항목, 서비스 설정 등)이 활성화 되지 않은 경우
해결 방법: [내 애플리케이션]에서 필요한 기능을 선택한 후, [활성화 설정]에서 ON으로 설정한 후 재호출
403
-4 계정이 제재된 경우나 해당 계정에 제재된 행동을 하는 경우 403
-5 해당 API에 대한 요청 권한이 없는 경우
해결 방법: 해당 API의 이애하기 문서를 참고하여 검수 진행, 권한 획득 후 재호출
403
-7 서비스 점검 또는 내부 문제가 있는 경우
해결 방법: 해당 서비스 공지사항 확인
400
-8 올바르지 않은 헤더로 요청한 경우
해결 방법: 요청 헤더 확인
400
-9 서비스가 종료된 API를 호출한 경우
해결 방법: 공지 메일이나 데브톡 공지확인
400
-10 허용된 요청 회수를 초과한 경우
해결 방법: 쿼터 및 제한 확인 후 쿼터 범위 내로 호출 조정, FAQ 참고
400
-401 유효하지 않은 앱키나 액세스 토큰으로 요청한 경우, 등록된 앱 정보와 호출된 앱 정보가 불일치 하는 경우
해결 방법: 앱키 확인 또는 토큰 갱신, 개발자 사이트에 등록된 앱 정보 확인
401
-501 카카오톡 미가입 사용자가 카카오톡 API를 호출한 경우 400
-602 이미지 업로드 시 최대 용량을 초과한 경우 400
-603 카카오 플랫폼 내부에서 요청 처리 중 타임아웃이 발생한 경우 400
-819 카카오톡 채널과 앱이 연결되지 않은 경우
해결 방법: 카포비를 통한 채널과 앱의 연결
400
-903 등록되지 않은 개발자의 앱키나 등록되지 않은 개발자의 앱키로 구성된 액세스 토큰으로 요청한 경우 400
-911 지원하지 않는 포맷의 이미지를 업로드 하는 경우 400
-9798 서비스 점검중 503
카카오 로그인

카카오 로그인 기반 일부 API의 경우 앱 연결이 선행되어야 합니다.

code 설명 HTTP 상태 코드
-101 해당 앱에 카카오계정 연결이 완료되지 않은 사용자가 호출한 경우
해결 방법: 카카오계정 연결 후 재시도
400
-102 이미 앱과 연결되어 있는 사용자의 토큰으로 연결하기 요청한 경우 400
-103 존재하지 않는 카카오계정으로 요청한 경우 400
-201 사용자 정보 요청 API나 사용자 정보 저장 API 호출 시 앱에 추가하지 않은 사용자 프로퍼티 키 값을 불러오거나 저장하려고 한 경우
해결 방법: [내 애플리케이션] > [카카오 로그인] > [사용자 프로퍼티]에서 설정한 사용자 프로퍼티 키와 요청 파라미터가 일치하도록 설정
400
-402 해당 API에서 접근하는 리소스에 대해 사용자의 동의를 받지 않은 경우
해결 방법: 응답바디의 required_scopes을 확인하여 사용자에게 해당 동의항목을 추가 동의 받도록 요청
403
-406 14세 미만 미허용 설정이 되어 있는 앱으로 14세 미만 사용자가 API 호출한 경우 401
메시지
code 설명 HTTP 상태 코드
-502 받는 이가 보내는 이의 친구가 아닌 경우
해결 방법: 친구 캐시(cache) 만료 시간 후에 재요청
400
-530 받는 이가 메시지 수신 거부를 설정한 경우 400
-531 특정 앱에서 보내는 이가 특정인에게 하루 동안 보낼 수 있는 쿼터를 초과한 경우 400
-532 특정 앱에서 보내는 이가 받는 사람 관계없이 하루 동안 보낼 수 있는 쿼터를 초과한 경우 400
-533 특정 앱에서 받는 이가 하루 동안 받을 수 있는 쿼터를 초과한 경우 400
-534 특정 앱에서 받는 이가 한달 동안 받을 수 있는 쿼터를 초과한 경우 400
-536 '보내는 이와 받는 이' 한 쌍을 기준으로 하루 동안 주고 받을 수 있는 쿼터를 초과한 경우 400
-541 존재하지 않는 카카오톡 채널일 경우 400
카카오스토리
code 설명 HTTP 상태 코드
-601 카카오스토리 미가입 사용자가 카카오스토리 API를 호출한 경우 400
-604 카카오스토리에서 스크랩이 실패한 경우 400
-605 카카오스토리에 존재하지 않는 내스토리를 요청한 경우 400
-606 카카오스토리에서 업로드할 수 있는 최대 이미지 개수를 초과한 경우(5개, gif 파일은 1개) 400
-608 카카오스토리 채널 미가입자가 스토리채널 API를 요청한 경우 400
카카오톡 채널 고객파일 관리
코드 설명 HTTP 상태 코드
-816 파일 ID가 잘못된 경우나 해당 파일 ID로 업로드된 카카오톡 채널 고객파일을 찾을 수 없는 경우 400
-817 이미 존재하는 파일명이나 허용되지 않는 파일명으로 고객파일 등록하는 경우 400
-818 등록한 고객파일이 최대 개수를 초과한 경우 (카카오톡 채널 관리자센터에 업로드한 파일 포함하여 최대 30개) 400
카카오페이
코드 설명 HTTP 상태 코드
-701 결제 인증이 완료되지 않은 상태에서 결제 승인 API를 호출한 경우 400
-702 이미 결제 완료된 TID로 다시 결제승인 API를 호출한 경우 400
-703 결제 승인 API 호출 시 포인트 금액이 잘못된 경우 400
-704 결제 승인 API 호출 시 결제 금액이 잘못된 경우 400
-705 결제 승인 API 호출 시 CARD 또는 MONEY 외에 지원하지 않는 결제 수단으로 요청한 경우 400
-706 결제 준비 API에서 요청한 partner_order_id와 다른 값으로 결제승인 API 호출한 경우 400
-707 결제 준비 API에서 요청한 partner_user_id와 다른 값으로 결제승인 API 호출 한 경우 400
-708 잘못된 pg_token로 결제승인 API를 호출한 경우 400
-710 결제 취소 API 호출 시 취소 요청 금액을 취소 가능액보다 큰 금액으로 요청한 경우 400
-721 TID가 존재하지 않는 경우 400
-722 금액 정보가 잘못된 경우 400
-723 결제 만료 시간이 지난 경우 400
-724 단건 결제 금액이 잘못된 경우 400
-725 총 결제 금액이 잘못된 경우 400
-726 주문 정보가 잘못된 경우 400
-730 가맹점 앱 정보가 잘못된 경우 400
-731 CID 가 잘못된 경우 400
-732 GID 가 잘못된 경우 400
-733 CID_SECRET이 잘못된 경우 400
-750 SID가 존재하지 않는 경우 400
-751 비활성화된 SID로 정기결제 API를 호출한 경우 400
-752 SID가 월 최대 사용 회수를 초과한 경우 400
-753 정기 결제 API 호출 시 partner_user_id가 SID를 발급받았던 최초 결제 준비 API에서 요청한 값과 다른 경우 400
-761 입력한 전화번호가 카카오톡에 가입하지 않은 경우 400
-780 결제 승인 API 호출이 실패한 경우 400
-781 결제 취소 API 호출이 실패한 경우 400
-782 정기 결제 API 호출이 실패한 경우 400
-783 승인 요청을 할 수 없는 상태에서 결제 승인 API를 호출한 경우 400
-784 취소 요청을 할 수 없는 상태에서 결제 취소 API를 호출한 경우 400
-785 결제와 취소를 중복으로 요청한 경우 400
-797 1회 결제 한도 금액을 초과할 경우 400
-798 허용되지 않는 IP를 사용한 경우 400
-799 등록된 웹사이트 도메인의 설정과 요청 도메인이 다를 경우
해결 방법: [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인 확인
400
카카오모먼트

카카오모먼트 응답 코드는 카카오모먼트를 참고합니다.

카카오 키워드광고

카카오 키워드광고 응답 코드는 카카오 키워드광고를 참고합니다.

푸시 알림
code 설명 HTTP 상태 코드
-901 등록된 푸시 토큰이 없는 기기로 푸시 메시지를 보낸 경우 400
포즈
코드 설명 HTTP 상태 코드
-824 포즈 API 초당 요청 한도를 초과한 경우 429
기타: 카카오 서버 내부 에러
코드 설명 HTTP 상태 코드
-813 카카오모먼트 API의 내부 에러 400
-814 포즈 API의 내부 에러 500
-815 카카오톡 채널 고객파일 관리 API 내부 에러 400
-820 카카오 키워드광고 API의 내부 에러 400

API 목록

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

카카오 로그인

URL HOST METHOD 기능
/oauth/authorize https://kauth.kakao.com GET 인가 코드 받기
추가 항목 동의 받기
약관 선택해 동의 받기
톡에서 자동 로그인
/oauth/token https://kauth.kakao.com POST 토큰 받기, 토큰 갱신하기
/.well-known/openid-configuration https://kauth.kakao.com GET OIDC: 메타데이터 확인하기
/.well-known/jwks.json https://kauth.kakao.com GET OIDC: 공개키 목록 조회하기
/oauth/tokeninfo https://kauth.kakao.com POST OIDC: ID 토큰 정보 보기
/v1/user/logout https://kapi.kakao.com POST 로그아웃
/v1/user/signup https://kapi.kakao.com POST 연결하기
/v1/user/unlink https://kapi.kakao.com POST 연결 끊기
/v1/user/access_token_info https://kapi.kakao.com GET 토큰 정보 보기
/v2/user/me https://kapi.kakao.com GET/POST 사용자 정보 가져오기
/v1/user/update_profile https://kapi.kakao.com POST 사용자 정보 저장하기
/v1/user/ids https://kapi.kakao.com GET/POST 사용자 목록 가져오기
/v2/app/users https://kapi.kakao.com GET 여러 사용자 정보 가져오기
/v2/user/scopes https://kapi.kakao.com GET 동의 내역 확인하기
/v2/user/revoke/scopes https://kapi.kakao.com POST 동의 철회하기
/v1/oidc/userinfo https://kapi.kakao.com GET OIDC: 사용자 정보 가져오기

카카오톡 소셜

URL HOST METHOD 기능
/v1/api/talk/profile https://kapi.kakao.com GET 프로필 가져오기
/v1/api/talk/friends https://kapi.kakao.com GET 친구 목록 가져오기

메시지

URL HOST METHOD 기능
/v2/api/talk/memo/default/send https://kapi.kakao.com POST 나에게 기본 템플릿으로 메시지 보내기
/v2/api/talk/memo/send https://kapi.kakao.com POST 나에게 사용자 정의 템플릿으로 메시지 보내기
/v2/api/talk/memo/scrap/send https://kapi.kakao.com POST 나에게 기본 템플릿으로 스크랩 메시지 보내기,
나에게 사용자 정의 템플릿으로 스크랩 메시지 보내기
/v1/api/talk/friends/message/default/send https://kapi.kakao.com POST 친구에게 기본 템플릿으로 보내기
/v1/api/talk/friends/message/send https://kapi.kakao.com POST 친구에게 사용자 정의 템플릿으로 보내기
/v1/api/talk/friends/message/scrap/send https://kapi.kakao.com POST 친구에게 기본 템플릿으로 스크랩 메시지 보내기,
친구에게 사용자 정의 템플릿으로 스크랩 메시지 보내기

카카오스토리

URL HOST METHOD 기능
/v1/api/story/isstoryuser https://kapi.kakao.com GET 사용자 확인하기
/v1/api/story/profile https://kapi.kakao.com GET 프로필 가져오기
/v1/api/story/post/note https://kapi.kakao.com POST 글 스토리 쓰기
/v1/api/story/post/photo https://kapi.kakao.com POST 사진 스토리 쓰기
/v1/api/story/post/link https://kapi.kakao.com POST 링크 스토리 쓰기
/v1/api/story/mystory https://kapi.kakao.com GET 내 스토리 받기
/v1/api/story/mystories https://kapi.kakao.com GET 여러 개의 내 스토리 받기
/v1/api/story/delete/mystory https://kapi.kakao.com DELETE 내 스토리 삭제하기
/v1/api/story/upload/multi https://kapi.kakao.com POST 이미지 업로드하기
/v1/api/story/linkinfo https://kapi.kakao.com GET 웹 페이지 스크랩하기

카카오톡 채널

URL HOST METHOD 기능
/v1/api/talk/channels https://kapi.kakao.com GET 카카오톡 채널 관계 확인하기
/v1/talkchannel/create/target_user_file https://kapi.kakao.com POST 고객 관리: 파일 등록하기
/v1/talkchannel/target_user_file https://kapi.kakao.com GET 고객 관리: 파일 보기
/v1/talkchannel/update/target_users https://kapi.kakao.com POST 고객 관리: 사용자 추가하기
/v1/talkchannel/delete/target_users https://kapi.kakao.com POST 고객 관리: 사용자 삭제하기

카카오싱크

URL HOST METHOD 기능
/v1/user/shipping_address https://kapi.kakao.com GET 배송지 조회하기
/v1/user/service/terms https://kapi.kakao.com GET 동의한 약관 확인하기

카카오페이

URL HOST METHOD 기능
/v1/payment/ready https://kapi.kakao.com POST 단건 결제 준비,
정기 결제 시작
/v1/payment/approve https://kapi.kakao.com POST 단건 결제 승인
/v1/payment/subscription https://kapi.kakao.com POST 정기 결제 요청(2회차)
/v1/payment/cancel https://kapi.kakao.com POST 결제 취소
/v1/payment/order https://kapi.kakao.com POST 주문 조회
/v1/payment/manage/subscription/status https://kapi.kakao.com POST 정기 결제 상태 조회
/v1/payment/manage/subscription/inactive https://kapi.kakao.com POST 정기결제 비활성화

카카오모먼트

카카오모먼트 API 레퍼런스를 참고합니다.

카카오 키워드광고

카카오 키워드광고 API 레퍼런스를 참고합니다.

푸시 알림

URL HOST METHOD 기능
/v2/push/register https://kapi.kakao.com POST 푸시 토큰 등록하기
/v2/push/tokens https://kapi.kakao.com GET 푸시 토큰 보기
/v2/push/deregister https://kapi.kakao.com POST 푸시 토큰 삭제하기
/v2/push/send https://kapi.kakao.com POST 푸시 알림 보내기

Daum 검색

URL HOST METHOD 기능
/v2/search/web https://dapi.kakao.com GET 웹문서 검색
/v2/search/vclip https://dapi.kakao.com GET 동영상 검색
/v2/search/image https://dapi.kakao.com GET 이미지 검색
/v2/search/blog https://dapi.kakao.com GET 블로그 검색
/v3/search/book https://dapi.kakao.com GET 책 검색
/v2/search/cafe https://dapi.kakao.com GET 카페 검색

로컬

URL HOST METHOD 기능
/v2/local/search/address.{format} https://dapi.kakao.com GET 주소 검색
/v2/local/geo/coord2regioncode.{format} https://dapi.kakao.com GET 좌표로 행정구역정보 받기
/v2/local/geo/coord2address.{format} https://dapi.kakao.com GET 좌표로 주소 변환하기
/v2/local/geo/transcoord.{format} https://dapi.kakao.com GET 좌표계 변환
/v2/local/search/keyword.{format} https://dapi.kakao.com GET 키워드로 장소 검색
/v2/local/search/category.{format} https://dapi.kakao.com GET 카테고리로 장소 검색

포즈

URL HOST METHOD 기능
/pose https://cv-api.kakaobrain.com POST 이미지 분석하기
/pose/job https://cv-api.kakaobrain.com POST 영상 분석하기
/pose/job/${job_id} https://cv-api.kakaobrain.com GET 영상 분석 결과 확인하기