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

유용한 참고 정보

REST API 레퍼런스

이 문서는 REST API 요청 시 필요한 URL 정보와 REST API 요청에 따라 발생할 수 있는 응답 코드를 소개합니다.

요구사양

REST API를 통해 카카오 API를 사용할 경우, 아래의 서버 및 개발 환경에 대한 지원 버전 정보를 참고합니다:

Name Version
OS X Mavericks 이상
Windows Windows XP SP3 이상
Java JRE 1.8.0_101 이상
브라우저 Firefox의 경우 32 이상
CentOS/RHEL ca-certificates-2015.2.4-65.0.1.el6_6.noarch 등

* 참고: 카카오 Open API 플랫폼 SSL 인증서 변경

REST API 목록

REST API가 지원하는 각 API 기능을 사용하기 위해 요청 시 필요한 URL, HOST, METHOD를 제공합니다.

REST API를 위한 모든 HTTP 요청의 경우 SSL(Secure Sockets Layer) 환경의 HTTPS를 이용합니다. 로그인을 하기 위해서는 REST API 키가 필요하고, 로그인 후 API 요청들은 로그인 시 발급받은 토큰이 필요합니다.


카카오 로그인
URL HOST METHOD 기능
/oauth/authorize https://kauth.kakao.com GET 인가 코드 받기
추가 항목 동의 받기
약관 선택해 동의 받기
톡에서 자동 로그인
/oauth/token https://kauth.kakao.com POST 토큰 받기, 토큰 갱신하기
/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 동의 철회하기

카카오톡 소셜
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 정기결제 비활성화

카카오모먼트
카카오 키워드광고
푸시 알림
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 기능
/v1/directions https://apis-navi.kakaomobility.com GET 자동차 길찾기
/v1/waypoints/directions https://apis-navi.kakaomobility.com POST 다중 경유지 길찾기
/v1/origins/directions https://apis-navi.kakaomobility.com POST 다중 출발지 길찾기
/v1/destinations/directions https://apis-navi.kakaomobility.com POST 다중 목적지 길찾기
/v1/future/directions https://apis-navi.kakaomobility.com GET 미래운행정보 길찾기

비전
URL HOST METHOD 기능
/v2/vision/face/detect https://dapi.kakao.com POST 얼굴 검출
/v2/vision/product/detect https://dapi.kakao.com POST 상품 검출
/v2/vision/adult/detect https://dapi.kakao.com POST 성인이미지 판별
/v2/vision/thumbnail/crop https://dapi.kakao.com POST 썸네일 생성
/v2/vision/thumbnail/detect https://dapi.kakao.com POST 썸네일 검출
/v2/vision/multitag/generate https://dapi.kakao.com POST 멀티 태그 생성
/v2/vision/text/ocr https://dapi.kakao.com POST OCR

포즈
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 영상 분석 결과 확인하기

번역
URL HOST METHOD 기능
/v2/translation/translate https://dapi.kakao.com GET, POST 문장 번역하기
/v2/translation/language/detect https://dapi.kakao.com GET, POST 언어 감지하기

음성
URL HOST METHOD 기능
/v1/recognize https://kakaoi-newtone-openapi.kakao.com POST 음성 인식하기
/v1/synthesize https://kakaoi-newtone-openapi.kakao.com POST 음성 합성하기

응답 코드

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


HTTP 상태 코드

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

다음은 API 호출 후 카카오 플랫폼에서 전송하는 상태 코드의 종류와 각 상태 코드가 의미하는 바를 설명한 표입니다.

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

에러 코드

요청이 실패하였을 경우, 카카오 서버는 에러 코드를 JSON 형태로 보냅니다. 에러 코드는 Integer 타입의 코드(code)와 String 타입의 메시지(msg)로 구성됩니다.

예시: 토큰이 잘못되었을 경우
HTTP/1.1 401 Unauthorized  

{
  "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는 요청하는 API에 따라 의미가 바뀌지 않는 범위에서 내용이 바뀔 수 있습니다. 예를 들어, 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."

다음은 카카오 플랫폼에서 제공하는 API별로 발생하는 에러 코드에 대해 설명합니다. 에러가 발생한 경우 아래 테이블에서 code를 확인하여 에러의 원인을 파악합니다.

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

포즈
코드 설명 HTTP 상태 코드
-824 포즈 API 초당 요청 한도를 초과한 경우 429

기타: 카카오 서버 내부 에러
코드 설명 HTTP 상태 코드
-600 카카오내비 API의 경로서버 내부 에러 500
-812 번역 API의 내부 에러 400
-813 카카오모먼트 API의 내부 에러 400
-814 포즈 API의 내부 에러 500
-815 카카오톡 채널 고객파일 관리 API 내부 에러 400
-820 카카오 키워드광고 API의 내부 에러 400