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

kakao developers

관련사이트

사이드 메뉴

플랫폼 API

API 제공

전용 API

어드민 API

이 문서는 카카오 또는 공동체 서비스용 카카오 로그인 REST API 사용법을 안내합니다.

메서드URL인증 방식
GET외부
https://kauth.kakao.com/oauth/authorize
-

인가 코드 요청은 카카오 로그인을 시작하는 단계로써, 카카오 로그인 동의 화면을 호출하고, 사용자 동의를 거쳐 인가 코드 발급을 요청하는 API입니다.

자세한 안내는 인가 코드 요청을 참고합니다.

이름타입설명필수
client_idString서비스 앱 REST API 키
앱 관리 페이지의 [앱] > [플랫폼 키] > REST API 키에서 확인 가능
O
redirect_uriString인가 코드를 전달받을 리다이렉트 URIO
response_typeStringcode로 고정O
scopeString동의항목 추가 동의 요청 시 사용
추가 동의 받을 항목의 키, 카카오계정 정보 참고
앱 관리 페이지의 [카카오 로그인] > [동의항목]에서 해당 동의항목의 ID 값 확인해 사용
쉼표(,)로 구분해 여러 개 전달 가능

주의: OpenID Connect를 사용하는 앱의 경우, scope 파라미터 값에 openid를 반드시 포함해야 함, 미포함 시 ID 토큰이 재발급되지 않음
참고: scope 파라미터
X
promptString동의 화면 요청 시 추가 상호작용을 요청하고자 할 때 전달하는 파라미터
쉼표(,)로 구분된 문자열 값 목록으로 전달

아래 값 사용 가능:
  • login: 기존 사용자 인증 여부와 상관없이 사용자에게 카카오계정 로그인 화면을 출력해 다시 사용자 인증을 수행하고자 할 때 사용, 카카오톡 인앱 브라우저에서는 제공하지 않음
  • none: 사용자에게 동의 화면과 같은 대화형 UI를 노출하지 않고 인가 코드 발급을 요청할 때 사용, 인가 코드 발급을 위해 사용자의 동작이 필요한 경우 에러 응답 전달
  • create: 사용자에게 카카오계정 신규 가입 후 로그인하도록 하기 위해 사용, 카카오계정 가입 페이지로 이동 후, 카카오계정 가입 완료 후 동의 화면 출력
  • select_account: 카카오계정 간편로그인을 요청할 때 사용, 브라우저에 카카오계정 로그인 세션이 있을 경우 자동 로그인 또는 계정 선택 화면 출력

참고: 추가 기능
X
login_hintString로그인 힌트 요청 시 사용
카카오계정 로그인 페이지의 ID란에 자동 입력할 값

참고: 카카오계정 로그인 시 이메일, 전화번호, 카카오메일 ID를 ID에 입력해 로그인 가능
X
service_termsString서비스 약관 선택해 동의 요청 시 사용
동의 받을 약관 태그, 쉼표(,)로 묶어 하나의 문자열로 전달
X
channel_public_idString채널 선택해 동의 요청 시 사용
동의 화면에 보여주도록 선택할 카카오톡 채널 프로필 ID, 쉼표(,)로 묶어 하나의 문자열로 전달
(예: channel_public_id=pf_1,pf_2)
1개 이상, 전달된 카카오톡 채널 프로필 ID가 2개를 초과할 경우에는 2개까지만 노출
각 카카오톡 채널 추가 동의항목은 파라미터에 기재한 순서대로 노출됨

참고: 카카오톡 채널 프로필 ID 확인 방법
X
stateString카카오 로그인 과정 중 동일한 값을 유지하는 임의의 문자열(정해진 형식 없음)
Cross-Site Request Forgery(CSRF) 공격으로부터 카카오 로그인 요청을 보호하기 위해 사용
각 사용자의 로그인 요청에 대한 state 값은 고유해야 함
인가 코드 요청, 인가 코드 응답, 토큰 발급 요청의 state 값 일치 여부로 요청 및 응답 유효성 확인 가능
X
nonceStringOpenID Connect으로 ID 토큰을 함께 발급받을 경우, ID 토큰 재생 공격을 방지하기 위해 사용
ID 토큰 유효성 검증 시 대조할 임의의 문자열(정해진 형식 없음)
X
https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=${REST_API_KEY}&redirect_uri=${REDIRECT_URI}
HTTP/1.1 302
Content-Length: 0
Location: ${REDIRECT_URI}?code=${AUTHORIZE_CODE}
HTTP/1.1 302
Content-Length: 0
Location: ${REDIRECT_URI}?error=access_denied&error_description=User%20denied%20access

인가 코드를 받은 뒤, 인가 코드로 액세스 토큰과 리프레시 토큰을 발급받는 API입니다. 인가 코드 요청만으로는 카카오 로그인이 완료되지 않으며, 토큰 요청까지 마쳐야 카카오 로그인을 정상적으로 완료할 수 있습니다.

자세한 안내와 예제는 토큰 요청을 참고합니다.

카카오 로그인 완료 시 발급받은 액세스 토큰으로 사용자 정보 조회를 요청해 회원 가입에 필요한 사용자 정보를 제공받을 수 있습니다. 일부 사용자 정보는 동의항목 설정 및 사용자 동의가 필요합니다.

인가 코드 요청 시 사용할 수 있는 추가 기능을 안내합니다.

사용자가 첫 카카오 로그인 시 동의 화면에서 동의하지 않았지만, 서비스 이용 중 추가로 동의해야 하는 항목을 동적으로 동의 요청하는 기능입니다.

자세한 안내와 예제는 동의항목 추가 동의 요청을 참고합니다.

사용자가 이미 서비스에 가입한 상태일 경우 별도의 카카오 로그인 화면을 거치지 않고 인가 코드를 발급받는 기능입니다.

자세한 안내와 예제는 카카오톡에서 자동 로그인을 참고합니다.

카카오싱크 서비스에서 동의하지 않은 약관을 선택해 사용자에게 동의 요청하는 기능입니다.

자세한 안내와 예제는 서비스 약관 선택해 동의 요청을 참고합니다.

카카오싱크 간편가입 화면에서 상황에 따라 카카오톡 채널을 선택해 노출하는 기능입니다.

자세한 안내와 예제는 채널 선택해 동의 요청을 참고합니다.

ID 토큰은 토큰 요청 시 함께 발급됩니다. 단, 동의항목 추가 동의 요청 시 scope 파라미터에 openid 값을 추가 전달해야 합니다.

자세한 안내와 예제는 토큰 요청, 동의항목 추가 동의 요청을 참고합니다.

기존 로그인 여부와 상관없이 로그인은 서비스의 필요에 따라 사용자 인증을 다시 수행하고자 할 때 사용하는 추가 기능입니다.

자세한 안내와 예제는 인가 코드 요청을 참고합니다.

사용자에게 카카오계정 신규 가입 후 로그인하도록 하기 위해 사용하는 기능입니다.

자세한 안내와 예제는 카카오계정 가입 후 로그인을 참고합니다.

카카오계정 로그인 화면의 ID란에 login_hint 파라미터 값을 자동 입력하는 기능입니다.

자세한 안내와 예제는 로그인 힌트를 참고합니다.

카카오 로그인 요청 시 브라우저에 카카오계정 간편로그인 정보가 있으면 계정 선택 화면을 표시하는 추가 기능입니다.

자세한 안내와 예제는 카카오계정 간편로그인을 참고합니다.

사용자 액세스 토큰과 리프레시 토큰을 모두 만료시킵니다.

자세한 안내와 예제는 로그아웃을 참고합니다.

카카오계정과 함께 로그아웃은 웹 브라우저에 로그인된 카카오계정의 세션을 만료시키고, 서비스에서도 로그아웃 처리할 때 사용하는 로그아웃 추가 기능입니다.

자세한 안내와 예제는 카카오계정과 함께 로그아웃을 참고합니다.

메서드URL인증 방식
POST카카오
http://kapi.kakao.com/v1/internal/user/signup
공동체
https://kapi.kakao.com/v1/internal/user/signup
외부
https://kapi.kakao.com/v1/user/signup
액세스 토큰
서비스 앱 어드민 키

수동 연결은 자동 연결 설정(auto_regi)을 비활성화(False)한 앱에서 사용하는 기능으로, 회원가입 완료 시 수동으로 사용자와 앱의 연결 상태를 연결(Registered)로 변경하기 위해 호출합니다.

헤더에 액세스 토큰을 담아 POST로 요청합니다. 필요한 파라미터를 선택적으로 전달할 수 있습니다. 요청 시 properties 파라미터를 사용해 수동 연결 시점에 서비스의 사용자 정보를 저장할 수 있습니다. properties에 저장한 정보는 연결 해제 시 삭제됩니다. 사용자 프로퍼티사용자 프로퍼티 저장을 참고합니다.

사용자가 연결 대기(Preregistered) 상태에서 24시간 안에 수동 연결 API로 연결이 완료되지 않는다면, 가입 미완료자로 분류되어 카카오 API 플랫폼에서 연결 해제 처리합니다. 연결 해제 시 연결 해제 웹훅이 되어 있다면 웹훅(Webhook)이 전달되므로, 서비스에서도 해당 사용자에 대해 연결 해제 요청 및 사용자 정보 삭제를 해야 합니다. 자세한 정보는 데브톡 공지사항을 참고합니다.

이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
이름타입설명필수
propertiesJSON저장할 사용자 프로퍼티(Properties)
키와 값 쌍의 형식으로 구성
(예: {"customAppUserName":"Gordon", "customAppUserAge" : 26})
X
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
이름타입설명필수
target_idString사용자 IDO
target_id_typeStringtarget_id의 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
propertiesJSON저장할 사용자 프로퍼티(Properties)
키와 값 쌍의 형식으로 구성
(예: {"customAppUserName":"Gordon", "customAppUserAge" : 26})
X
이름타입설명필수
idLong앱과 연결된 사용자의 회원번호O
  • 내부 API 호출
  • 파라미터: 없음
curl -v -X POST "http://kapi.kakao.com/v1/internal/user/signup" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"
  • 외부 API 호출
  • 파라미터
    • 저장할 사용자 정보의 키(properties): age(나이), gender(성별)
curl -v -X POST "https://kapi.kakao.com/v1/user/signup" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
--data-urlencode 'properties={"age":"23", "gender":"female"}'
  • 내부 API 호출
  • 파라미터
    • 저장할 사용자 정보의 키(properties): age(나이), gender(성별)
curl -v -X POST "http://kapi.kakao.com/v1/internal/user/signup" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
-d "target_id=1376016924429759243" \
-d "target_id_type=user_id" \
--data-urlencode 'properties={"age":"23", "gender":"female"}'
// HTTP/1.1 200 OK
{
"id": 1376016924429759228
}
// HTTP/1.1 400 Bad Request
{
"msg": "already registered",
"code": -102
}
// HTTP/1.1 401 Unauthorized
{
"msg": "this access token does not exist",
"code": -401
}
// HTTP/1.1 400 Bad Request
{
"msg": "user property not found ([gender, age] for appId=${APP_ID})",
"code": -201
}
메서드URL인증 방식
POST카카오
http://kapi.kakao.com/v1/internal/user/unlink
공동체
https://kapi.kakao.com/v1/internal/user/unlink
외부
https://kapi.kakao.com/v1/user/unlink
액세스 토큰
서비스 앱 어드민 키
위임

사용자와 앱의 연결을 해제합니다. 카카오계정으로만 가입 가능한 카카오 또는 공동체 서비스의 연결 해제는 탈퇴와 같은 의미여야 합니다. 이 외 서비스의 연결 해제는 탈퇴와 별개로 앱과 사용자의 연결 상태만을 변경합니다.

사용자와 앱의 연결이 해제되면 연결 해제 이력이 남으며, 연결 및 연결 해제 이력은 앱 연결 이력 조회로 조회할 수 있습니다.

헤더에 원하는 인증 정보를 담아 POST로 요청하고, 성공 시 앱과 연결을 끊은 사용자 회원번호(user_id)를 받습니다.

이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
이름타입설명필수
target_idString앱과의 연결을 끊을 사용자 IDO
target_id_typeStringtarget_id의 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id:카카오톡 회원번호
O
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 요청 대상 사용자를 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
    • 서비스 앱 키: target_app_key, target_id, target_id_type
    • 서비스 앱 ID: target_app_id, target_id, target_id_type
    • 액세스 토큰: target_access_token
이름타입설명필수
target_app_keyString사용자와의 연결을 끊을 서비스 앱의 키O(Optional)
target_app_idLong사용자와의 연결을 끊을 서비스 앱의 IDO(Optional)
target_access_tokenString앱과의 연결을 끊을 사용자의 액세스 토큰 값O(Optional)
target_idString앱과의 연결을 끊을 사용자 IDO(Optional)
target_id_typeStringtarget_id 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O(Optional)
이름타입설명필수
idLong앱과 연결 해제된 사용자 ID, 회원번호(user_id)O
  • 파라미터: 없음
curl -v -X POST "http://kapi.kakao.com/v1/internal/user/unlink" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"
  • 파라미터
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 카카오계정 ID(account_id)
curl -v -X POST "http://kapi.kakao.com/v1/internal/user/unlink" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
-d "target_id_type=account_id&target_id=200937"
  • 파라미터
    • 서비스 앱 키(target_app_key)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 카카오계정 ID(account_id)
curl -v -X POST "http://kapi.kakao.com/v1/internal/user/unlink" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_app_key=${SERVICE_APP_KEY}&target_id_type=account_id&target_id=200937"
  • 파라미터
    • 서비스 앱 ID(target_app_id)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 카카오계정 ID(account_id)
curl -v -X POST "http://kapi.kakao.com/v1/internal/user/unlink" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_app_id=57669&target_id_type=account_id&target_id=200937"
  • 파라미터
    • 액세스 토큰(target_access_token)
curl -v -X POST "http://kapi.kakao.com/v1/internal/user/unlink" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_access_token=${ACCESS_TOKEN}"
{
"id": 1376016924426814086
}
메서드URL인증 방식
GET카카오
http://kapi.kakao.com/v1/internal/user/access_token_info
공동체
https://kapi.kakao.com/v1/internal/user/access_token_info
외부
https://kapi.kakao.com/v1/user/access_token_info
액세스 토큰
위임

카카오 로그인으로 발급받은 액세스 토큰의 정보를 조회합니다. 주로 아래 두 가지 경우에 사용합니다.

  • 토큰을 발급받은 서비스 앱에서 토큰 유효성 검증: 액세스 토큰 방식 사용
  • 해당 토큰을 전달 받은 플랫폼에서 토큰의 유효성 검증: 위임 방식 사용

헤더에 원하는 인증 방식별 정보를 담아 GET으로 요청하고, 성공 시 해당 액세스 토큰과 사용자 정보를 받습니다. 응답 중 카카오계정 ID(account_id)는 권한이 있는 앱에서 내부 API로 요청한 경우에만 응답에 포함됩니다.

에러 코드 -401(InvalidTokenException)은 토큰이 만료된 경우이므로 토큰을 갱신해야 합니다. 에러 코드 -1(InternalErrorException)은 카카오 API 및 인증 서버의 내부 장애이므로, 일시 장애로 처리하고 토큰을 강제로 폐기하거나 로그아웃하지 않을 것을 권장합니다.

이 외 에러는 앱이나 사용자, 또는 토큰이 더 이상 유효하지 않은 경우이므로 로그아웃으로 처리합니다.

이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
이름타입설명필수
target_access_tokenString정보를 요청할 액세스 토큰 값O
이름타입설명필수
idLong회원번호X
expires_inLong액세스 토큰의 만료 시간(단위: 초)O
app_idInt토큰이 발급된 앱 IDO
account_idInt카카오계정 ID

제공 조건: 카카오계정 ID 응답 권한 보유, 내부 API 요청
X
* expiresInMillis, appId, kaccount_id: Deprecated, 각각 expires_in, app_id, account_id로 변경
  • 파라미터: 없음
curl -v -G GET "http://kapi.kakao.com/v1/internal/user/access_token_info" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"
  • 파라미터
    • 액세스 토큰(target_access_token)
curl -v -G GET "http://kapi.kakao.com/v1/internal/user/access_token_info" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_access_token=${ACCESS_TOKEN}"
{
"id": 1227075864,
"expires_in": 21420,
"app_id": 80859,
"account_id": 7075535 // 내부 API 요청 시에만 제공, 권한 필요
}
// HTTP/1.1 401 Unauthorized
{
"code": -401,
"msg": "this access token does not exist"
}

액세스 토큰과 리프레시 토큰을 갱신하는 API입니다.

자세한 안내와 예제는 토큰 갱신을 참고합니다.

메서드URL인증 방식
GET카카오
http://kapi.kakao.com/v2/internal/user/scopes
공동체
https://kapi.kakao.com/v2/internal/user/scopes
외부
https://kapi.kakao.com/v2/user/scopes
배치
http://kapi.kakao.com/v2/internal/user/scopes/batch
액세스 토큰
서비스 앱 어드민 키
위임

사용자가 동의한 동의항목의 상세 정보 목록을 조회합니다. 앱 관리 페이지의 [카카오 로그인] > [동의항목]에 설정된 동의항목의 목록과 사용자가 동의한 동의항목의 상세 정보를 반환합니다. 사용자가 기존에 동의했던 동의항목이라면 현재 앱에 사용하도록 설정돼 있지 않아도 응답에 포함됩니다.

헤더에 원하는 인증 방식의 정보를 담아 GET으로 요청하고, 성공 시 앱의 동의항목 정보 목록을 받습니다. 각 동의항목 정보는 동의항목 사용 설정 여부, 사용자 동의 여부, 철회 가능 여부와 같은 상세 정보를 포함합니다. 특정 동의항목의 동의 내역만 확인하려면 scopes 파라미터로 동의항목의 ID를 지정해 요청할 수 있으며, 성공 시 응답은 지정된 동의항목의 정보만 포함합니다.

이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
이름타입설명필수
scopesString[]사용자 동의 여부를 조회하려는 동의항목의 ID 목록
특정 동의항목에 대한 동의 내역만 조회하려는 경우 사용
쉼표(,)를 구분자로 여러 키를 하나의 문자열에 담아 전달
X
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
이름타입설명필수
target_idString동의 내역을 확인할 사용자 IDO
target_id_typeStringtarget_id 타입
외부 URL로 요청 시 user_id만 사용 가능
내부 URL로 요청 시 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
scopesString[]사용자 동의 여부를 조회하려는 동의항목의 ID 목록
특정 동의항목에 대한 동의 내역만 조회하려는 경우 사용
쉼표(,)를 구분자로 여러 키를 하나의 문자열에 담아 전달
X
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 요청 대상 사용자를 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
    • 서비스 앱 키: target_app_key, target_id, target_id_type
    • 서비스 앱 ID: target_app_id, target_id, target_id_type
    • 액세스 토큰: target_access_token
이름타입설명필수
target_app_keyString사용자의 동의 내역을 확인할 서비스 앱의 키O(Optional)
target_app_idInteger사용자의 동의 내역을 확인할 서비스 앱의 IDO(Optional)
target_access_tokenString동의 내역을 확인할 사용자의 액세스 토큰 값O(Optional)
target_idString동의 내역을 확인할 사용자 IDO
target_id_typeStringtarget_id 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
scopesString[]사용자 동의 여부를 조회하려는 동의항목의 ID 목록
특정 동의항목에 대한 동의 내역만 조회하려는 경우 사용
쉼표(,)를 구분자로 여러 키를 하나의 문자열에 담아 전달
X
이름타입설명필수
idLong회원번호O
scopesScope[]해당 앱의 동의항목(Scope) 목록O
이름타입설명필수
idString동의항목 IDO
display_nameString사용자 동의 화면에 출력되는 동의항목 이름 또는 설명O
typeString동의항목 타입, 아래 중 하나
  • PRIVACY: 개인정보 동의항목
  • SERVICE: 접근권한 동의항목
O
usingBoolean동의항목의 현재 사용 여부
사용자가 동의했으나 현재 앱에 설정되어 있지 않은 동의항목의 경우 false
O
delegatedBoolean카카오가 관리하지 않는 위임 동의항목인지 여부

제공 조건: 현재 사용 중인 동의항목이고, 위임 동의항목인 경우
X
agreedBoolean사용자 동의 여부
동의한 경우 true, 동의하지 않은 경우 false
O
revocableBoolean동의항목의 동의 철회 가능 여부

제공 조건: 사용자가 동의한 동의항목인 경우
X
  • 파라미터: 없음
curl -v -G GET "http://kapi.kakao.com/v2/internal/user/scopes" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"
  • 파라미터
    • 조회할 동의항목(scopes)
curl -v -G GET "http://kapi.kakao.com/v2/internal/user/scopes" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d 'scopes=["account_email","friends"]'
  • 파라미터
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
curl -v -G GET "http://kapi.kakao.com/v2/internal/user/scopes" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
-d "target_id=1376016924427232667" \
-d "target_id_type=user_id"
  • 파라미터
    • 서비스 앱 키(target_app_key)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
curl -v -G GET "http://kapi.kakao.com/v2/internal/user/scopes" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_app_key=${SERVICE_APP_KEY}" \
-d "target_id=1376016924427232667" \
-d "target_id_type=user_id"
{
"id": 1376016924429759243,
"scopes": [
{
"id": "profile",
"display_name": "Profile Info(nickname/profile image)",
"type": "PRIVACY",
"using": true, // 동의항목 사용 여부
"agreed": true, // 사용자 동의 여부
"revocable": false // 동의 철회 가능 여부
},
{
"id": "account_email",
"display_name": "Email",
"type": "PRIVACY",
"using": true, // 동의항목 사용 여부
"agreed": true, // 사용자 동의 여부
"revocable": true // 동의 철회 가능 여부
},
{
"id": "shipping_address",
"display_name": "Shipping information (receiver, shipping address, phone number)",
"type": "PRIVACY",
"using": true, // 동의항목 사용 여부
"agreed": false // 사용자 동의 여부
}
// ...
]
}
{
"id": 1376016924429759243,
"scopes": [
{
"id": "friends",
"display_name": "Friends List in Kakao Service(Including profile image, nickname, and favorites)",
"type": "PRIVACY",
"using": true,
"agreed": true,
"revocable": false
},
{
"id": "account_email",
"display_name": "Email",
"type": "PRIVACY",
"using": true,
"agreed": false
}
]
}
메서드URL인증 방식
POST카카오
http://kapi.kakao.com/v2/internal/user/revoke/scopes
공동체
https://kapi.kakao.com/v2/internal/user/revoke/scopes
외부
https://kapi.kakao.com/v2/user/revoke/scopes
액세스 토큰
서비스 앱 어드민 키
위임

사용자의 특정 동의항목에 대한 동의를 철회(Revoke)합니다. 동의항목 동의 내역 조회 API로 조회한 동의항목 정보 중 동의 철회 가능 여부(revocable) 값이 true인 동의항목만 철회 가능합니다. 동의 철회가 불가능한 동의항목을 대상으로 요청한 경우 에러 응답을 받습니다.

헤더에 원하는 인증 방식의 정보를 담아 POST로 요청하고, 성공 시 변경된 앱의 동의항목 정보 목록을 받습니다. 각 동의항목 정보는 동의항목 사용 설정 여부, 사용자 동의 여부, 철회 가능 여부와 같은 상세 정보를 포함합니다.

이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
이름타입설명필수
scopesString[]동의를 철회할 동의항목 ID 목록
동의항목 동의 내역 조회 API 응답의 동의 철회 가능 여부(revocable) 값이 true인 동의항목만 철회 가능
O
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
이름타입설명필수
target_idString동의를 철회할 사용자 IDO
target_id_typeStringtarget_id 타입
외부 URL로 요청 시 user_id만 사용 가능
내부 URL로 요청 시 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
scopesString[]동의를 철회할 동의항목 ID 목록
동의항목 동의 내역 조회 API 응답의 동의 철회 가능 여부(revocable) 값이 true인 동의항목만 철회 가능
O
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 요청 대상 사용자를 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
    • 서비스 앱 키: target_app_key, target_id, target_id_type
    • 서비스 앱 ID: target_app_id, target_id, target_id_type
    • 액세스 토큰: target_access_token
이름타입설명필수
target_app_keyString동의를 철회할 서비스 앱의 키O(Optional)
target_app_idInteger동의를 철회할 서비스 앱의 IDO(Optional)
target_access_tokenString동의를 철회할 사용자의 액세스 토큰 값O(Optional)
target_idString동의를 철회할 사용자 IDO(Optional)
target_id_typeStringtarget_id 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O(Optional)
scopesString[]동의를 철회할 동의항목 ID 목록
동의항목 동의 내역 조회 API 응답의 동의 철회 가능 여부(revocable) 값이 true인 동의항목만 철회 가능
O
  • 파라미터
    • 동의항목 목록(scopes)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/revoke/scopes" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
--data-urlencode 'scopes=["account_email"]'
  • 파라미터
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 동의항목 목록(scopes)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/revoke/scopes" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
--data-urlencode "target_id=1376016924427232667" \
--data-urlencode "target_id_type=user_id" \
--data-urlencode 'scopes=["account_birthdate","account_gender","friends"]'
  • 파라미터
    • 서비스 앱 ID(target_app_id)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 동의항목 목록(scopes)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/revoke/scopes" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
--data-urlencode "target_app_key=${SERVICE_APP_KEY}" \
--data-urlencode "target_id=1376016924427232667" \
--data-urlencode "target_id_type=user_id" \
--data-urlencode 'scopes=["account_birthdate","account_gender","friends"]'
{
"id": 1376016924429759243,
"scopes": [
{
"id": "profile",
"display_name": "Profile Info(nickname/profile image)",
"type": "PRIVACY",
"using": true,
"agreed": true,
"revocable": false
},
{
"id": "friends",
"display_name": "Friends List in Kakao Service(Including profile image, nickname, and favorites)",
"type": "PRIVACY",
"using": true,
"agreed": true,
"revocable": false
},
{
"id": "account_email",
"display_name": "Email",
"type": "PRIVACY",
"using": true,
"agreed": false //동의 철회에 성공해 동의 여부 값 false로 변경됨
},
{
"id": "talk_chats",
"display_name": "Read chat lists in Kakao Talk",
"type": "SERVICE",
"using": true,
"agreed": true,
"revocable": false
}
// ...
]
}
// HTTP/1.1 403 Forbidden
{
"msg": "[profile] is not revocable. check out if it's set as required on developers.kakao.com",
"code": -3
}
// HTTP/1.1 400 Bad Request
{
"msg": "There is no scopes to revoke. check out if given scope id([email]) is correct again.",
"code": -2
}

이 항목은 서비스 약관 관련 API의 사용 방법을 안내합니다.

메서드URL인증 방식
GET카카오
http://kapi.kakao.com/v2/internal/user/service_terms
공동체
https://kapi.kakao.com/v2/internal/user/service_terms
외부
https://kapi.kakao.com/v2/user/service_terms
액세스 토큰
서비스 앱 어드민 키
위임

카카오싱크 서비스에서 특정 사용자가 어떤 서비스 약관에 동의하고 로그인했는지 확인합니다.

개발 문서는 서비스 약관 동의 내역 조회를 참고합니다.

이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
이름타입설명필수
resultString조회할 서비스 약관 목록, 아래 중 하나
  • agreed_service_terms: 사용자가 동의한 서비스 약관 목록(기본값)
  • app_service_terms: 앱에 사용 설정된 서비스 약관 목록
X
tagsString조회할 서비스 약관 태그, result로 지정한 목록 내 서비스 약관으로 한정
여러 태그를 쉼표(,)로 구분한 하나의 문자열로 전달, 예제 참고
X
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
이름타입설명필수
target_idLong사용자 IDO
target_id_typeStringtarget_id 타입
외부 URL로 요청 시 user_id만 사용 가능
내부 URL로 요청 시 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
resultString조회할 서비스 약관 목록, 아래 중 하나
  • agreed_service_terms: 사용자가 동의한 서비스 약관 목록(기본값)
  • app_service_terms: 앱에 사용 설정된 서비스 약관 목록
X
tagsString조회할 서비스 약관 태그, result로 지정한 목록 내 서비스 약관으로 한정
여러 태그를 쉼표(,)로 구분한 하나의 문자열로 전달, 예제 참고
X
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 요청 대상 사용자를 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
    • 서비스 앱 키: target_app_key, target_id, target_id_type
    • 서비스 앱 ID: target_app_id, target_id, target_id_type
    • 액세스 토큰: target_access_token
이름타입설명필수
target_app_keyString사용자의 동의 내역을 확인할 서비스 앱의 키O(Optional)
target_app_idInteger사용자의 동의 내역을 확인할 서비스 앱의 IDO(Optional)
target_access_tokenString동의 내역을 확인할 사용자의 액세스 토큰 값O(Optional)
target_idString동의 내역을 확인할 사용자 IDO
target_id_typeStringtarget_id 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
resultString조회할 서비스 약관 목록, 아래 중 하나
  • agreed_service_terms: 사용자가 동의한 서비스 약관 목록(기본값)
  • app_service_terms: 앱에 사용 설정된 서비스 약관 목록
X
tagsString조회할 서비스 약관 태그, result로 지정한 목록 내 서비스 약관으로 한정
여러 태그를 쉼표(,)로 구분한 하나의 문자열로 전달, 예제 참고
X
이름타입설명필수
idLong회원번호O
service_termsServiceTerms[]서비스 약관 목록X
이름타입설명필수
tagString서비스 약관에 설정된 태그(Tag)O
requiredBoolean서비스 약관의 필수 동의 여부
  • true: 필수 동의
  • false: 선택 동의
O
agreedBoolean서비스 약관의 동의 상태
  • true: 동의
  • false: 미동의
O
revocableBoolean서비스 약관의 동의 철회 가능 여부
  • true: 동의 철회 가능
  • false: 동의 철회 불가, 사용자가 동의하지 않은 약관인 경우

중요: 동의 철회 가능 서비스 약관만 서비스 약관 동의 철회 요청 가능
O
agreed_atDatetime사용자가 해당 약관에 마지막으로 동의한 시간
(RFC3339 internet date/time format)
X
agreed_byString서비스 약관의 동의 경로
KAUTH: 카카오싱크 간편가입 동의 화면
KAPI: 서비스 약관에 동의 API
X
curl -v -G GET "http://kapi.kakao.com/v2/internal/user/service_terms" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"
curl -v -G GET "http://kapi.kakao.com/v2/internal/user/service_terms" \
-H 'Authorization: Bearer ${ACCESS_TOKEN}' \
-d "result=app_service_terms"
curl -v -G GET "http://kapi.kakao.com/v2/internal/user/service_terms" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
-d "target_id_type=user_id" \
-d "target_id=${USER_ID}" \
-d "tags=optional_no_consent,service_2020_0218"
  • 파라미터
    • 서비스 앱 키(target_app_key)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
curl -v -G GET "http://kapi.kakao.com/v2/internal/user/service_terms" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_app_key=${SERVICE_APP_KEY}" \
-d "target_id_type=user_id" \
-d "target_id=${USER_ID}" \
{
"id": 111111,
"service_terms": [
{
"tag": "optional_1",
"required": false,
"agreed": true,
"revocable": true,
"agreed_at": "2023-06-29T07:39:56Z",
"agreed_by": "KAUTH"
},
{
"tag": "optional_2",
"required": false,
"agreed": true,
"revocable": true,
"agreed_at": "2024-07-12T07:39:56Z",
"agreed_by": "KAPI"
}
// ...
]
}
{
"id": 111111,
"service_terms": [
{
"tag": "optional_20200616",
"required": false,
"agreed": true,
"revocable": true,
"agreed_at": "2023-06-29T07:39:56Z",
"agreed_by": "KAPI"
},
{
"tag": "optional_no_consent",
"required": false,
"agreed": false,
"revocable": true
},
{
"tag": "service_2020_0218",
"required": true,
"agreed": true,
"revocable": false,
"agreed_at": "2023-06-29T07:39:56Z",
"agreed_by": "KAUTH"
}
// ...
]
}
{
"id": 111111,
"service_terms": [
{
"tag": "optional_no_consent",
"required": false,
"agreed": false,
"revocable": true
},
{
"tag": "service_2020_0218",
"required": true,
"agreed": true,
"revocable": false,
"agreed_at": "2023-06-29T07:39:56Z",
"agreed_by": "KAUTH"
}
]
}
// HTTP/1.1 400 Bad Request
{
"msg": "There is no tags to get service terms. check out to configured this tags([test_tag]) in app(test_app).",
"code": -2
}
메서드URL인증 방식
POST카카오
http://kapi.kakao.com/v2/internal/user/revoke/service_terms
공동체
https://kapi.kakao.com/v2/internal/user/revoke/service_terms
외부
https://kapi.kakao.com/v2/user/revoke/service_terms
액세스 토큰
서비스 앱 어드민 키
위임

카카오싱크 서비스에서 특정 사용자가 동의한 서비스 약관의 동의를 철회합니다.

개발 문서는 서비스 약관 동의 철회를 참고합니다.

이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
이름타입설명필수
tagsString동의 철회할 서비스 약관 태그
여러 태그를 쉼표(,)로 구분한 하나의 문자열로 전달, 예제 참고

중요: 서비스 약관 동의 내역 조회 API 응답에서 동의 철회 가능 여부(revocable) 값이 true인 서비스 약관만 철회 가능
O
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
이름타입설명필수
target_id_typeStringtarget_id 타입
외부 URL로 요청 시 user_id만 사용 가능
내부 URL로 요청 시 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
target_idLong사용자 IDO
tagsString동의 철회할 서비스 약관 태그
여러 태그를 쉼표(,)로 구분한 하나의 문자열로 전달, 예제 참고

중요: 서비스 약관 동의 내역 조회 API 응답에서 동의 철회 가능 여부(revocable) 값이 true인 서비스 약관만 철회 가능
O
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 요청 대상 사용자를 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
    • 서비스 앱 키: target_app_key, target_id, target_id_type
    • 서비스 앱 ID: target_app_id, target_id, target_id_type
    • 액세스 토큰: target_access_token
이름타입설명필수
target_app_keyString동의를 철회할 서비스 앱의 키O(Optional)
target_app_idInteger동의를 철회할 서비스 앱의 IDO(Optional)
target_access_tokenString동의를 철회할 사용자의 액세스 토큰 값O(Optional)
target_idString동의를 철회할 사용자 IDO(Optional)
target_id_typeStringtarget_id 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O(Optional)
tagsString동의 철회할 서비스 약관 태그
여러 태그를 쉼표(,)로 구분한 하나의 문자열로 전달, 예제 참고

중요: 서비스 약관 동의 내역 조회 API 응답에서 동의 철회 가능 여부(revocable) 값이 true인 서비스 약관만 철회 가능
O
이름타입설명필수
idLong회원번호O
revoked_service_termsRevokedServiceTerms[]동의 철회에 성공한 서비스 약관 목록

중요: 동의 철회가 불가능한 사용자 미동의 서비스 약관은 포함되지 않음
X
이름타입설명필수
tagString동의 철회에 성공한 서비스 약관 태그(Tag)O
agreedBoolean동의 철회 후 서비스 약관의 동의 상태
  • true: 동의
  • false: 미동의
O
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/revoke/service_terms" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"
-d "tags=optional_20200616,optional_no_consent"
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/revoke/service_terms" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
-d "target_id_type=user_id" \
-d "target_id=${USER_ID}" \
-d "tags=optional_20200616,optional_no_consent"
  • 파라미터
    • 서비스 앱 ID(target_app_id)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 동의 철회할 서비스 약관 태그(tags)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/revoke/service_terms" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_app_key=${SERVICE_APP_KEY}" \
-d "target_id_type=user_id" \
-d "target_id=${USER_ID}" \
-d "tags=optional_20200616,optional_no_consent"
{
"id": 111111,
"revoked_service_terms": [
{
"tag": "optional_20200616",
"agreed": false
},
{
"tag": "optional_no_consent",
"agreed": false
}
]
}
// HTTP/1.1 400 Bad Request
{
"msg": "There is no tags to revoke. check out to configured this tags([test_tag]) in app(test_app).",
"code": -2
}
메서드URL인증 방식
POST카카오
http://kapi.kakao.com/v2/internal/user/upgrade/service_terms
공동체
https://kapi.kakao.com/v2/internal/user/upgrade/service_terms
외부
https://kapi.kakao.com/v2/user/upgrade/service_terms
액세스 토큰
서비스 앱 어드민 키
위임

카카오싱크 서비스에서 사용자가 특정 서비스 약관에 동의한 것으로 처리합니다.

개발 문서는 고급: 서비스 약관에 동의를 참고합니다.

이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
이름타입설명필수
tagsString동의 처리할 서비스 약관 태그
여러 태그를 쉼표(,)로 구분한 하나의 문자열로 전달, 예제 참고
O
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
이름타입설명필수
target_id_typeStringtarget_id 타입
외부 URL로 요청 시 user_id만 사용 가능
내부 URL로 요청 시 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
target_idLong사용자 IDO
tagsString동의 처리할 서비스 약관 태그
여러 태그를 쉼표(,)로 구분한 하나의 문자열로 전달, 예제 참고
O
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 요청 대상 사용자를 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
    • 서비스 앱 키: target_app_key, target_id, target_id_type
    • 서비스 앱 ID: target_app_id, target_id, target_id_type
    • 액세스 토큰: target_access_token
이름타입설명필수
target_app_keyString사용자의 동의 내역을 확인할 서비스 앱의 키O(Optional)
target_app_idInteger사용자의 동의 내역을 확인할 서비스 앱의 IDO(Optional)
target_access_tokenString동의 내역을 확인할 사용자의 액세스 토큰 값O(Optional)
target_idString동의 내역을 확인할 사용자 IDO
target_id_typeStringtarget_id 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
tagsString동의 처리할 서비스 약관 태그
여러 태그를 쉼표(,)로 구분한 하나의 문자열로 전달, 예제 참고
O
이름타입설명필수
idLong회원번호O
agreed_service_termsAgreedServiceTerms[]동의 처리에 성공한 서비스 약관 목록X
이름타입설명필수
tagString서비스 약관에 설정된 태그(Tag)O
agreedBoolean서비스 약관의 동의 상태
  • true: 동의
  • false: 미동의
O
agreed_atDatetime사용자가 해당 약관에 마지막으로 동의한 시간
(RFC3339 internet date/time format)
X
agreed_byString서비스 약관의 동의 경로
KAUTH: 카카오싱크 간편가입 동의 화면
KAPI: 서비스 약관에 동의 API
X
  • 파라미터
    • 동의 처리할 서비스 약관 목록(tags)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/upgrade/service_terms" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d "tags=term01,term02,term03"
  • 파라미터
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 동의 처리할 서비스 약관 목록(tags)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/upgrade/service_terms" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
-d "target_id=${USER_ID}" \
-d "target_id_type=user_id" \
-d "tags=term01,term02,term03"
  • 파라미터
    • 서비스 앱 키(target_app_key)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 카카오계정 ID(account_id)
    • 동의 처리할 서비스 약관 목록(tags)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/upgrade/service_terms" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_app_key=${SERVICE_APP_KEY}" \
-d "target_id=${ACCOUNT_ID}" \
-d "target_id_type=account_id" \
-d "tags=term01,term02,term03"
// HTTP/1.1 200 OK
{
"id": 1376016924429759243,
"agreed_service_terms": [
{
"tag": "term03",
"agreed": true,
"agreed_at": "2023-08-02T08:33:25Z",
"agreed_by": "KAPI"
},
{
"tag": "term01",
"agreed": true,
"agreed_at": "2023-08-02T08:33:25Z",
"agreed_by": "KAUTH"
},
{
"tag": "term02",
"agreed": true,
"agreed_at": "2023-08-02T08:33:25Z",
"agreed_by": "KAUTH"
}
]
}
// HTTP/1.1 200 OK
{
"id": 1376016924429759243,
"agreed_service_terms": [
{
"tag": "term02",
"agreed": true,
"agreed_at": "2023-08-02T08:34:56Z"
}
]
}

카카오 로그인의 OpenID Connect 서비스 제공자 설정을 확인합니다.

자세한 안내와 예제는 OIDC: 메타데이터 조회를 참고합니다.

ID 토큰 유효성 검증에 필요한 공개키 목록을 조회합니다.

자세한 안내와 예제는 OIDC: 공개키 목록 조회를 참고합니다.

ID 토큰 유효성 검증에 참고할 ID 토큰 정보를 조회합니다.

자세한 안내와 예제는 OIDC: ID 토큰 정보 조회를 참고합니다.

현재 로그인한 사용자의 정보를 불러옵니다.

자세한 안내와 예제는 OIDC: 사용자 정보 조회를 참고합니다.

메서드URL인증 방식
POST카카오
http://kapi.kakao.com/v2/internal/user/upgrade/scopes
공동체
https://kapi.kakao.com/v2/internal/user/upgrade/scopes
외부
https://kapi.kakao.com/v2/user/upgrade/scopes
액세스 토큰
서비스 앱 어드민 키
위임

요청한 동의항목(Scope)을 사용자가 동의한 동의항목으로 추가합니다. 사용자로부터 동의를 받는 주체가 공동체이고 명시적인 제3자 제공 동의 화면을 제공하지 않을 경우, 동의항목 동의 처리 API가 아닌 동의항목 추가 동의 요청 API를 사용할 것을 권장합니다.

헤더에 원하는 인증 방식의 정보를 담아 POST로 요청하고, 성공 시 변경된 앱의 동의항목 정보 목록을 받습니다. 각 동의항목 정보는 동의항목 사용 설정 여부, 사용자 동의 여부, 철회 가능 여부와 같은 상세 정보를 포함합니다.

  • 앱에 사용하도록 설정되어 있지 않은 동의항목에 대해 추가 요청한 경우, UnsupportedApiException(-3) 에러 응답을 받습니다.
  • 요청 시 전달한 동의항목과 응답의 동의항목을 비교해서 동의항목 추가 완료 여부를 확인해야 합니다. 사용자가 동의할 수 없는 동의항목의 추가 요청은 수행되지 않으며, 동의 내역 변화가 없으므로 동의항목 추가 요청 이전과 동일합니다. 아래와 같은 경우에 사용자가 동의할 수 없는 동의항목에 해당합니다.
    • scopes 파라미터에 값(Value)이 없음
    • 사용자가 수집 동의를 하지 않은 동의항목
    • 이 외 내부 기준에 따라 제3자 제공 동의 화면을 표시할 수 없는 경우
  • 만 14세 미만 사용자를 대상으로 요청할 경우, 보호자 동의 토큰(Token)을 전달해야 합니다. 만 14세 미만 사용자 대상 요청에 보호자 동의 토큰이 없는 경우 RequiredParentAgreementException(-409) 에러 응답을 받습니다.
이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
이름타입설명필수
scopesString[]추가할 동의항목 ID 목록O
guardian_tokenString14세 미만 사용자인 경우 필수
14세 미만 사용자의 동의항목을 추가하기 위해 필요한 보호자인증 토큰
X
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
이름타입설명필수
target_idString동의항목을 추가할 사용자 IDO
target_id_typeStringtarget_id 타입
외부 URL로 요청 시 user_id만 사용 가능
내부 URL로 요청 시 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
scopesString[]추가할 동의항목 ID 목록O
guardian_tokenString14세 미만 사용자인 경우 필수
14세 미만 사용자의 동의항목을 추가하기 위해 필요한 보호자인증 토큰
X
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 요청 대상 사용자를 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
    • 서비스 앱 키: target_app_key, target_id, target_id_type
    • 서비스 앱 ID: target_app_id, target_id, target_id_type
    • 액세스 토큰: target_access_token
이름타입설명필수
target_app_keyString사용자의 동의 내역을 확인할 서비스 앱의 키O(Optional)
target_app_idInteger사용자의 동의 내역을 확인할 서비스 앱의 IDO(Optional)
target_access_tokenString동의 내역을 추가할 사용자의 액세스 토큰 값O(Optional)
target_idString동의 내역을 확인할 사용자 IDO(Optional)
target_id_typeStringtarget_id 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O(Optional)
scopesString[]추가할 동의항목 ID 목록O
guardian_tokenString14세 미만 사용자인 경우 필수
14세 미만 사용자의 동의항목을 추가하기 위해 필요한 보호자인증 토큰
X
  • 파라미터
    • 동의항목 목록(scopes)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/upgrade/scopes" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
--data-urlencode 'scopes=["birthday","gender","friends"]'
  • 파라미터
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 동의항목 목록(scopes)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/upgrade/scopes" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
--data-urlencode "target_id=1376016924427232667" \
--data-urlencode "target_id_type=user_id" \
--data-urlencode 'scopes=["birthday","gender","friends"]'
  • 파라미터
    • 서비스 앱 키(target_app_key)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 동의항목 목록(scopes)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/upgrade/scopes" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
--data-urlencode "target_app_key=${SERVICE_APP_KEY}" \
--data-urlencode "target_id=1376016924427232667" \
--data-urlencode "target_id_type=user_id" \
--data-urlencode 'scopes=["birthday","gender","friends"]'
  • 파라미터
    • 서비스 앱 키(target_app_key)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 동의항목 목록(scopes)
    • 동의받은 경로(channel)
curl -v -X POST "http://kapi.kakao.com/v2/internal/user/upgrade/scopes" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
--data-urlencode "target_app_key=${SERVICE_APP_KEY}" \
--data-urlencode "target_id=1376016924427232667" \
--data-urlencode "target_id_type=user_id" \
--data-urlencode 'scopes=["birthday","gender","friends","shipping_address"]' \
-d 'channel=bizplugin'
{
"id": 1376016924429759243,
"scopes": [
{
"id": "profile",
"display_name": "Profile Info(nickname/profile image)",
"type": "PRIVACY",
"using": true,
"agreed": true,
"revocable": false
},
{
"id": "friends",
"display_name": "Friends List in Kakao Service(Including profile image, nickname, and favorites)",
"type": "PRIVACY",
"using": true,
"agreed": true,
"revocable": false
},
{
"id": "account_email",
"display_name": "Email",
"type": "PRIVACY",
"using": true,
"agreed": true, // 동의항목 추가 요청에 성공해 동의한 상태로 변경됨
"revocable": true
},
{
"id": "gender",
"display_name": "Gender",
"type": "PRIVACY",
"using": true,
"agreed": true,
"revocable": true
}
// ...
]
}
// HTTP/1.1 403 Forbidden
{
"msg": "[APP_NAME] App disabled [[shipping_address]] scopes on developers.kakao.com. Enable it first.",
"code": -3
}
// HTTP/1.1 403 Forbidden
{
"msg": "scope([shipping_address]) cannot be updated because it is set as 'Provision after collecting information through Kakao Account' but this information is not saved in Kakao Account of this user(1376016924429759243)",
"code": -3
}
// HTTP/1.1 400 Bad Request
{
"msg": "There is no scopes to upgrade. check out if given scope id([email]) is correct again.",
"code": -2
}
// HTTP/1.1 403 Forbidden
{
"msg": "scope([gender]) cannot be updated because this user(1376016924429759243) does not agree on Kakao Account terms for it.",
"code": -3
}
// HTTP/1.1 401 Unauthorized
{
"msg": "guardian consent is required.",
"code": -409
}
// HTTP/1.1 401 Unauthorized
{
"msg": "under the age limit.",
"code": -409
}
사용 협의 필요

사용처 제한 API는 지정된 사용처에만 제공하는 카카오 API입니다. 지정된 사용처 이외의 서비스에서 사용처 제한 API를 사용하려면 [서비스] API플랫폼 아지트에서 별도 협의가 필요합니다.

메서드URL인증 방식
GET카카오
http://kapi.kakao.com/v2/internal/user/age_auth
공동체
https://kapi.kakao.com/v2/internal/user/age_auth
외부
https://kapi.kakao.com/v2/user/age_auth
액세스 토큰
서비스 앱 어드민 키
위임

사용자의 연령인증 정보를 확인합니다. 인증 후 90일 초과 시점, 결제 전과 같이 연령인증 정보 확인이 필요한 경우에 연령인증 정보, 인증 방식, 나이 제한 만족 여부, 인증 날짜, CI 값 등 정보를 확인하기 위해 호출합니다.

기본 응답은 사용자의 연령인증 정보를 제공합니다. 기준 제한 연령(age_limit), 계산 기준(age_criteria)을 지정하면 요청 시점의 제한 연령 만족 여부를 추가적으로 확인할 수 있습니다.

이 기능은 연령인증을 숙지한 후 사용해야 합니다. 이 API로 CI 값을 확인하려면 동의항목 설정 권한이 필요하며, 아래 CI 사용 시 주의 사항을 준수해야 합니다.

  • CI는 서비스에서 필요한 경우에만 사용합니다.
  • 앱 관리 페이지의 [카카오 로그인] > [동의항목]에서 CI 동의항목을 사용하도록 설정해야 합니다.
  • 응답에 CI 정보를 포함하려면 요청 시 property_keys 파라미터에 "account_ci"를 전달해야 합니다.
  • 응답의 CI 정보는 아래와 같이 처리합니다.
    • ci != null: CI 값 요청 성공
    • ci == null && ci_needs_agreement=true: 사용자가 CI 동의항목에 동의하지 않은 경우, CI에 대한 동의항목 추가 동의 요청 수행
    • ci == null && ci_needs_agreement=false: 사용자가 CI 포함 본인인증을 받지 않은 경우, 연령인증 요청 후 CI에 대한 동의항목 추가 동의 요청 수행

요청 시 전달된 계산 기준(age_criteria) 값에 따라 제한 연령 만족 여부(bypass_age_limit) 값이 달라집니다. 아래 예시를 참고합니다.

  • 기준 제한 연령(age_limit): 19
  • 사용자 출생일: 2004년 12월 31일
  • 연령인증 정보 조회 요청일: 2023년 10월 1일
  • 계산 기준별 제한 연령 만족 여부(bypass_age_limit)
    • 연 나이(YEAR) 지정 시: 19세로 제한 연령 만족(true)
    • 만 나이(INTERNATIONAL) 지정 시: 만 18세로 제한 연령 만족하지 않음(false)
이름형식설명
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
이름타입설명필수
age_limitInteger응답의 제한 연령 만족 여부(bypass_age_limit)를 판단하는 기준 제한 연령
일반적으로 15 또는 19

중요: age_limit 미사용 시 응답의 bypass_age_limit 제공하지 않음
X
age_criteriaString응답의 제한 연령 만족 여부(bypass_age_limit) 계산 기준, 아래 중 하나
  • YEAR: 연 나이, 현재 연도에서 출생연도를 뺀 값
  • INTERNATIONAL: 만 나이, 0에서 시작해 생일마다 1살씩 증가하는 값

중요: age_limit 사용 시 필수
참고: 연 나이는 세는 나이와 기준이 다르며, 세는 나이는 연령 기준으로 지원하지 않음
X
property_keysString[]카카오계정 CI(account_ci) 값 대조가 필요한 경우 사용

참고: CI 값이 없는 경우 응답에 포함되지 않으며 ci_needs_agreement 값을 참고해 동의항목 추가 동의 요청 API를 호출해야 함
X
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
이름타입설명필수
target_idString연령인증 정보를 확인할 사용자 IDO
target_id_typeStringtarget_id 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
age_limitInteger응답의 제한 연령 만족 여부(bypass_age_limit)를 판단하는 기준 제한 연령
일반적으로 15 또는 19

중요: age_limit 미사용 시 응답의 bypass_age_limit 제공하지 않음
X
age_criteriaString응답의 제한 연령 만족 여부(bypass_age_limit) 계산 기준, 아래 중 하나
  • YEAR: 연 나이, 현재 연도에서 출생연도를 뺀 값
  • INTERNATIONAL: 만 나이, 0에서 시작해 생일마다 1살씩 증가하는 값

중요: age_limit 사용 시 필수
참고: 연 나이는 세는 나이와 기준이 다르며, 세는 나이는 연령 기준으로 지원하지 않음
X
property_keysString[]카카오계정 CI(account_ci) 값 대조가 필요한 경우 사용

참고: CI 값이 없는 경우 응답에 포함되지 않으며 ci_needs_agreement 값을 참고해 동의항목 추가 동의 요청 API를 호출해야 함
X
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 요청 대상 사용자를 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
    • 서비스 앱 키: target_app_key, target_id, target_id_type
    • 서비스 앱 ID: target_app_id, target_id, target_id_type
    • 액세스 토큰: target_access_token
이름타입설명필수
target_app_keyString사용자 연령인증 정보를 확인할 서비스 앱의 키O(Optional)
target_app_idLong사용자 연령인증 정보를 확인할 서비스 앱의 IDO(Optional)
target_access_tokenString연령인증 정보를 확인할 사용자의 액세스 토큰 값O(Optional)
target_idString연령인증 정보를 확인할 사용자 IDO(Optional)
target_id_typeStringtarget_id 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O(Optional)
age_limitInteger응답의 제한 연령 만족 여부(bypass_age_limit)를 판단하는 기준 제한 연령
일반적으로 15 또는 19

중요: age_limit 미사용 시 응답의 bypass_age_limit 제공하지 않음
X
age_criteriaString응답의 제한 연령 만족 여부(bypass_age_limit) 계산 기준, 아래 중 하나
  • YEAR: 연 나이, 현재 연도에서 출생연도를 뺀 값
  • INTERNATIONAL: 만 나이, 0에서 시작해 생일마다 1살씩 증가하는 값

중요: age_limit 사용 시 필수
참고: 연 나이는 세는 나이와 기준이 다르며, 세는 나이는 연령 기준으로 지원하지 않음
X
property_keysString[]카카오계정 CI(account_ci) 값 대조가 필요한 경우 사용

참고: CI 값이 없는 경우 응답에 포함되지 않으며 ci_needs_agreement 값을 참고해 동의항목 추가 동의 요청 API를 호출해야 함
X
이름타입설명필수
idLong연령인증 정보를 확인한 사용자의 IDO
auth_levelString사용자가 받은 연령인증 레벨, 아래 중 하나
  • AUTH_LEVEL1: 연령인증
  • AUTH_LEVEL2: 본인인증
X
auth_level_codeIntegerauth_level 비교 편의를 위한 코드(Code), 아래 중 하나
  • 1: AUTH_LEVEL1
  • 2: AUTH_LEVEL2
X
bypass_age_limitBoolean제한 연령 만족 여부
요청 시 전달된 age_criteria계산 기준 적용
  • true: 인증받은 연령이 제한 연령 이상인 경우
  • false: 인증받은 연령이 제한 연령 미만인 경우

참고: 앱에 설정된 제한 연령이 없거나 요청 시 age_limit 파라미터가 전달되지 않은 경우 응답에 포함되지 않음
X
authenticated_atString인증받은 시각(RFC3339 internet date/time 형식)X
ci_needs_agreementBoolean사용자 동의 시 CI 정보 제공 가능X
ciString연령인증 후 받은 CI 값

제공 조건: 사용자가 CI 동의항목에 동의한 뒤 CI 정보를 포함한 연령인증을 받은 경우
X
  • 사용자가 성인 콘텐츠 접근 시 제한 연령 만족 여부 확인 요청
  • 파라미터
    • 제한 연령(age_limit): 19
    • 계산 기준(age_criteria): 만 나이(INTERNATIONAL)
curl -v -G GET "https://kapi.kakao.com/v2/user/age_auth" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d "age_limit=19" \
-d "age_criteria=INTERNATIONAL"
  • CI 포함 연령인증 정보 조회 요청
  • 파라미터
    • 응답에 포함할 사용자 정보의 키(property_keys): CI(account_ci)
curl -v -G GET "https://kapi.kakao.com/v2/user/age_auth" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d 'property_keys=["account_ci"]'
{
"id": 1376016924427023359,
"auth_level": "AUTH_LEVEL2",
"auth_level_code": 2,
"bypass_age_limit": true,
"authenticated_at": "2015-12-04T21:23:26Z"
}
{
"id": 1376016924427023359,
"auth_level": "AUTH_LEVEL2",
"auth_level_code": 2,
"bypass_age_limit": false,
"authenticated_at": "2015-12-04T21:23:26Z"
}
{
"id": 1376016924427023359,
"auth_level": "AUTH_LEVEL2",
"auth_level_code": 2,
"authenticated_at": "2015-12-04T21:23:26Z"
}
{
"id": 1376016924427023359,
"auth_level": "AUTH_LEVEL1",
"auth_level_code": 1,
"bypass_age_limit": true,
"authenticated_at": "2015-12-04T21:23:26Z"
}
{
"id": 1376016924427023359
}
{
"id": 1376016924427023359,
"auth_level": "AUTH_LEVEL2",
"auth_level_code": 2,
"bypass_age_limit": true,
"authenticated_at": "2015-12-04T21:23:26Z",
"ci": "${CI}"
}
{
"id": 1376016924427023359,
"auth_level": "AUTH_LEVEL2",
"auth_level_code": 2,
"bypass_age_limit": false,
"authenticated_at": "2015-12-04T21:23:26Z",
"ci": "${CI}"
}
{
"id": 1376016924427023359,
"auth_level": "AUTH_LEVEL2",
"auth_level_code": 2,
"authenticated_at": "2015-12-04T21:23:26Z"
}
{
"id": 1376016924427023359,
"auth_level": "AUTH_LEVEL1",
"auth_level_code": 1,
"authenticated_at": "2015-12-04T21:23:26Z"
}
{
"id": 1376016924427023359
}
메서드URL인증 방식
GET외부
https://auth.kakao.com/ageauths/main.html
-

클라이언트에서 사용자에게 연령인증 또는 본인인증을 요청하는 페이지를 호출합니다. 연령인증 페이지는 카카오계정에서 제공하는 기능이며, 연령인증을 숙지한 후 사용해야 합니다.

이름타입설명필수
token_typeString오픈 플랫폼을 위한 분기 정보(api로 고정)O
access_tokenString카카오 로그인으로 발급받은 액세스 토큰O
return_urlString연령인증 후 이동할 URLO
auth_levelInteger연령인증 레벨, 아래 중 하나
  • 10: 연령인증
  • 20: 본인인증
앱에 연령인증 레벨이 설정돼 있다면 access_token으로 얻은 기본값 사용
X
age_limitInteger제한 연령, 일반적으로 15 또는 19
앱에 연령인증 레벨이 설정돼 있다면 access_token으로 얻은 기본값 사용
X
  • 본인인증기관에서 사용자 본인인증 후 결과를 받아 카카오 인증 서버에 저장하고, 클라이언트는 return_url로 이동합니다.
  • 사용자의 연령인증 정보는 연령인증 정보 조회 API를 사용해 받을 수 있습니다.
에러 코드설명
-440BAD_PARAMETERS
클라이언트 정보가 호환되지 않음
인증 기관으로부터 받은 데이터가 비어 있음
앱에도 연령인증 정보가 없고 실제 입력도 없는 경우
-450NOT_AUTHORIZED_AGE
연령인증 미완료로 연령인증이 필요한 상태
기본적으로는 연령인증 여부 확인 시 정상적인 상황
-451LOWER_AGE_LIMIT
현재 앱의 연령제한보다 사용자의 연령이 낮은 경우
-452ALREADY_AGE_AUTHORIZED
이미 연령인증을 완료한 경우, 2차 인증이 완료되어 있는 상황에서 1차 인증을 시도했을 경우
-453EXCEED_AGE_CHECK_LIMIT
연령인증 횟수 초과
-480AGE_AUTH_RESULT_MISMATCH
이전에 인증했던 정보와 불일치(생일)
기존 BIRTHDAY_MISMATCH
-481CI_RESULT_MISMATCH
CI 정보 불일치
-500ERROR
사용자 찾기 실패, 인증 기관으로부터 받은 생일이 불일치할 경우
예기치 못한 에러가 발생한 경우
  • 파라미터
    • 액세스 토큰(access_token)
    • 연령인증 레벨(auth_level): 연령인증(10)
    • 제한 연령(age_limit): 19
https://auth.kakao.com/ageauths/main.html?token_type=api&return_url=http://www.kakao.com&access_token=${ACCESS_TOKEN}&auth_level=10&age_limit=19

도움이 되었나요?