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

kakao developers

관련사이트

사이드 메뉴

플랫폼 API

API 제공

전용 API

어드민 API

신규 어드민 API 제공

이 문서는 제공 종료된 구버전 어드민 API에 대해 안내합니다. 신규 어드민 API에 대한 자세한 내용은 신규 어드민 API 제공 안내에서 확인할 수 있습니다.

이 문서는 카카오디벨로퍼스 앱(애플리케이션)의 권한에 대한 어드민 API 사용 방법을 안내합니다.

  • :app_id 부분에 요청 대상 앱 ID를 입력해야 합니다.
메서드호스트리소스
POSTinternal-admin-kapi.kakao.com/app/:app_id/permission
* 모든 어드민 API는 사내망에서만 호출 가능, 인증 필요
이름설명
FIND_ALL앱이 소유한 모든 권한의 코드를 조회합니다.
HAS_APP_PERMISSIONS앱이 특정 권한들을 소유하고 있는지 확인합니다.
HAS_APP_PERMISSION앱이 특정 앱 설정 권한을 소유하고 있는지 확인합니다.
HAS_SERVICE_PERMISSION앱이 특정 서비스 권한을 소유하고 있는지 확인합니다.
HAS_API_PERMISSION앱이 특정 API 권한을 소유하고 있는지 확인합니다.
HAS_REVIEW_API_PERMISSION앱이 검수가 필요한 특정 API 사용 권한을 소유하고 있는지 확인합니다.
HAS_PERMISSIONS권한 코드로 앱이 특정 권한들을 소유하고 있는지 확인합니다.
HAS_PERMISSION권한 코드로 앱이 특정 권한을 소유하고 있는지 확인합니다.
ADD앱에 특정 권한을 부여합니다.
REMOVE앱이 소유한 특정 권한을 회수합니다.

앱이 소유한 모든 권한의 코드를 조회합니다. 권한 코드는 숫자 값이며 각각 하나의 권한에 해당합니다.

요청 처리 성공 시 응답은 앱이 소유한 권한의 코드 목록을 payload에 포함합니다. 각 서비스의 권한 코드 값은 어드민 API 사용 권한 부여 시 전달받은 권한 정보를 참고합니다.

  • 없음
  • 권한 코드의 배열
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \
-H "Content-Type: application/json; charset=utf-8" \
-H "ADMIN-API-META-RENDER: simple" \
-u "${GROUP_NAME}:${GROUP_TOKEN}" \
-H "ADMIN-API-USERID: ${USER_INFO}" \
-d $'{
"name": "FIND_ALL"
}'
// HTTP/2 200
[5, 7, 15, 16, 18, 29, 37, 38, 39, 40, 41, 52, 102, 103, 104, 151, 152]
// HTTP/2 200
[]

앱이 특정 권한들을 소유하고 있는지 확인합니다.

요청 시 소유 여부를 확인할 권한의 액션 타입의 배열을 action_type 파라미터로 전달해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.

요청 처리 성공 시 응답은 앱의 각 권한 소유 여부를 Map 형식으로 payload에 포함합니다.

이름타입설명필수
action_typeString[]액션 타입 목록O
  • action_type별 키, 권한 소유 여부를 나타내는 Boolean 값으로 구성된 Map 형식의 JSON
    • true: 해당 권한 소유
    • false: 해당 권한 없음
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \
-H "Content-Type: application/json; charset=utf-8" \
-H "ADMIN-API-META-RENDER: simple" \
-u "${GROUP_NAME}:${GROUP_TOKEN}" \
-H "ADMIN-API-USERID: ${USER_INFO}" \
-d $'{
"name": "HAS_APP_PERMISSIONS",
"payload": {
"action_type": ["INCREASED_DOMAIN_COUNT","KAKAO_VERIFIED"]
}
}'
// HTTP/2 200
{
"INCREASED_DOMAIN_COUNT": true,
"KAKAO_VERIFIED": false
}
// HTTP/2 400
{
"action_type[0]": {
"description": "Invalid Enum",
"message": "${MESSAGE}",
"args": []
}
}

앱이 특정 앱 설정 권한을 소유하고 있는지 확인합니다.

요청 시 소유 여부를 확인할 권한의 액션 타입을 action_type 파라미터로 전달해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.

요청 처리 성공 시 응답은 앱의 해당 앱 설정 권한 소유 여부를 payload에 포함합니다.

이름타입설명필수
action_typeString앱 설정 권한의 액션 타입O
  • 해당 권한 소유 여부를 나타내는 Boolean
    • true: 해당 권한 소유
    • false: 해당 권한 없음
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \
-H "Content-Type: application/json; charset=utf-8" \
-H "ADMIN-API-META-RENDER: simple" \
-u "${GROUP_NAME}:${GROUP_TOKEN}" \
-H "ADMIN-API-USERID: ${USER_INFO}" \
-d $'{
"name": "HAS_APP_PERMISSION",
"payload": {
"action_type": "KAKAO_VERIFIED"
}
}'
// HTTP/2 200
false
// HTTP/2 400
{
"action_type": {
"description": "Invalid Enum",
"message": "${MESSAGE}",
"args": []
}
}

앱이 특정 서비스 권한을 소유하고 있는지 확인합니다.

앱은 특정 서비스와 관련된 기능을 사용하려면 해당 서비스 권한을 갖고 있어야 합니다. 이 액션으로 앱이 특정 서비스 권한을 소유하고 있는지 확인할 수 있습니다.

요청 시 권한 소유 여부를 확인할 서비스 타입을 service_type 파라미터로 전달해야 합니다.

요청 처리 성공 시 응답은 앱의 해당 서비스 권한 소유 여부를 payload에 포함합니다.

이름타입설명필수
service_typeString서비스 타입
서비스 타입의 종류는 ServiceType에서 확인 가능
O
  • 해당 권한 소유 여부를 나타내는 Boolean
    • true: 해당 권한 소유
    • false: 해당 권한 없음
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \
-H "Content-Type: application/json; charset=utf-8" \
-H "ADMIN-API-META-RENDER: simple" \
-u "${GROUP_NAME}:${GROUP_TOKEN}" \
-H "ADMIN-API-USERID: ${USER_INFO}" \
-d $'{
"name": "HAS_SERVICE_PERMISSION",
"payload": {
"service_type": "KAKAO_TALK"
}
}'
// HTTP/2 200
true
// HTTP/2 400
{
"service_type": {
"description": "Invalid Enum",
"message": "${MESSAGE}",
"args": []
}
}

앱이 특정 권한을 소유하고 있는지 확인합니다.

요청 시 소유 여부를 확인할 권한의 API의 종류를 api_type 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.

요청 처리 성공 시 응답은 앱의 해당 API 사용 권한 소유 여부를 payload에 포함합니다.

이름타입설명필수
api_typeStringAPI 타입O
action_typeString[]API 타입에 해당하는 API의 특정 동작이나 기능을 제어하는 추가 권한의 액션 타입 이름X
  • 해당 권한 소유 여부를 나타내는 Boolean
    • true: 해당 권한 소유
    • false: 해당 권한 없음
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \
-H "Content-Type: application/json; charset=utf-8" \
-H "ADMIN-API-META-RENDER: simple" \
-u "${GROUP_NAME}:${GROUP_TOKEN}" \
-H "ADMIN-API-USERID: ${USER_INFO}" \
-d $'{
"name": "HAS_API_PERMISSION",
"payload": {
"api_type": "MOMENT"
}
}'
// HTTP/2 200
false
// HTTP/2 400
{
"api_type": {
"description": "Invalid Enum",
"message": "${MESSAGE}",
"args": []
}
}
  • 검수가 필요한 API를 대상으로 요청할 경우, 이 액션으로는 조회 불가해 응답은 payloadfalse 값을 반환함
  • 검수가 필요한 API 사용 권한에 대한 권한 조회는 HAS_REVIEW_API_PERMISSION 액션으로 요청할 것
// HTTP/2 200
false

앱이 검수가 필요한 특정 API 사용 권한을 소유하고 있는지 확인합니다. 일부 API는 사용자 경험이나 개인정보 보호를 위해 유관 부서의 검수를 거쳐 권한을 부여합니다.

요청 시 소유 여부를 확인할 권한의 API의 종류를 api_type 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.

요청 처리 성공 시 응답은 앱의 해당 권한 소유 여부를 payload에 포함합니다.

검수가 필요한 API 사용 권한의 경우, 연관 권한이 존재할 수 있습니다. 이 액션의 with_origin_type 파라미터로 연관 권한 소유 여부를 확인할 수 있습니다.

검수 여부앱의 권한제공 기능
검수 전연관 권한만 제공팀원 대상으로만 메시지 발송 가능
검수 후검수가 필요한 API 사용 권한 제공팀원을 포함한 전체 앱 사용자에게 메시지 발송 가능

이와 같이 여러 권한으로 기능을 순차 제공할 수 있습니다. 이 밖에도 제휴 성격에 따라 여러 권한으로 서비스를 제한해야 할 수 있습니다. 따라서 앱에 검수가 필요한 API 사용 권한이 없더라도 연관 권한은 부여돼 있는지 확인하는 경우가 있습니다. 이때 with_origin_type 파라미터를 사용합니다.

앱의 권한 소유 여부와 with_origin_type 파라미터 사용에 따른 요청 결과는 아래와 같습니다.

검수가 필요한
API 사용 권한 소유 여부
연관 권한
소유 여부
with_origin_type
파라미터 값
응답의 payload
OOtruetrue
OOfalsetrue
OXtruefalse
OXfalsetrue
XOtruetrue
XOfalsefalse
// 조회 대상 API 타입에 연관 권한이 존재하고
// 앱이 연관 권한을 보유하고 있지 않은 경우
// "with_origin_type": true 요청의 응답
// HTTP/2 200
{
"name":"HAS_REVIEW_API_PERMISSION",
"payload":true
}
// "with_origin_type": false 요청의 응답
// HTTP/2 200
{
"name":"HAS_REVIEW_API_PERMISSION",
"payload":false
}
이름타입설명필수
api_typeStringAPI 타입O
with_origin_typeBoolean앱이 연관 권한을 소유하고 있는지 확인할 때 사용
  • true: 검수가 필요한 API 사용 권한만 소유 여부 확인
  • false: 연관 API 사용 권한과 함께 소유 여부 확인

참고: 연관 권한 조회
X
  • 해당 권한 소유 여부를 나타내는 Boolean
    • true: 해당 권한 소유
    • false: 해당 권한 없음
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \
-H "Content-Type: application/json; charset=utf-8" \
-H "ADMIN-API-META-RENDER: simple" \
-u "${GROUP_NAME}:${GROUP_TOKEN}" \
-H "ADMIN-API-USERID: ${USER_INFO}" \
-d $'{
"name": "HAS_REVIEW_API_PERMISSION",
"payload": {
"api_type": "TALK_MESSAGE_SEND",
"with_origin_type": true
}
}'
// HTTP/2 200
true
  • 검수가 필요한 API가 아닌 API의 권한에 대해 요청한 경우, 조회 불가로 응답은 payloadfalse 값을 반환함
  • 검수가 필요한 API 사용 권한이 아닌 경우 HAS_API_PERMISSION 액션으로 요청할 것
// HTTP/2 200
false

권한 코드로 앱이 특정 권한들을 소유하고 있는지 확인합니다. 이 액션을 사용하면 레벨 타입을 불문하고 코드로 특정 권한들을 지정해 앱의 권한 소유 여부를 확인할 수 있습니다.

요청 시 소유 여부를 확인할 권한 코드의 배열을 code 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.

요청 처리 성공 시 응답은 앱의 해당 권한 소유 여부를 payload에 포함합니다.

이름타입설명필수
codeInteger[]특정 권한을 가리키는 코드의 목록
(최소: 1)
O
  • code별 키, 권한 소유 여부를 나타내는 Boolean 값으로 구성된 Map 형식의 JSON
    • true: 해당 권한 소유
    • false: 해당 권한 없음
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \
-H "Content-Type: application/json; charset=utf-8" \
-H "ADMIN-API-META-RENDER: simple" \
-u "${GROUP_NAME}:${GROUP_TOKEN}" \
-H "ADMIN-API-USERID: ${USER_INFO}" \
-d $'{
"name": "HAS_PERMISSIONS",
"payload": {
"code": [5,7,15,16,17]
}
}'
// HTTP/2 200
{
"5": true,
"17": false,
"7": true,
"16": true,
"15": true
}

권한 코드로 앱이 특정 권한을 소유하고 있는지 확인합니다. 이 액션을 사용하면 레벨 타입을 불문하고 코드로 특정 권한을 지정해 앱의 권한 소유 여부를 확인할 수 있습니다.

요청 시 소유 여부를 확인할 권한 코드를 code 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.

요청 처리 성공 시 응답은 앱의 해당 권한 소유 여부를 payload에 포함합니다.

이름타입설명필수
codeInteger특정 권한을 가리키는 코드
(최소: 1)
O
  • 해당 권한 소유 여부를 나타내는 Boolean
    • true: 해당 권한 소유
    • false: 해당 권한 없음
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \
-H "Content-Type: application/json; charset=utf-8" \
-H "ADMIN-API-META-RENDER: simple" \
-u "${GROUP_NAME}:${GROUP_TOKEN}" \
-H "ADMIN-API-USERID: ${USER_INFO}" \
-d $'{
"name": "HAS_PERMISSION",
"payload": {
"code": 5
}
}'
// HTTP/2 200
true

앱에 특정 권한을 부여합니다.

앱은 앱 타입에 따라 특정 권한을 기본적으로 제공받을 수 있습니다. 앱 타입에 기본적으로 제공하지 않는 추가 권한은 별도 부여 받아야 합니다.

카카오 API 플랫폼 연동 시, 추가 권한은 앱의 특정 API 또는 기능 사용을 제한하거나 허용하는 데 사용합니다. 예를 들어, 제휴 계약을 체결한 제휴사에만 추가 권한을 부여해 특정 API나 데이터를 제공받을 수 있도록 할 수 있습니다. (참고: API 제공자를 위한 API 플랫폼 연동 안내)

이 액션은 API 제공자가 API플랫폼을 거치지 않고 직접 제휴처에 권한을 부여할 수 있도록 제공하는 것으로, 각 API 제공자의 서비스에 대한 추가 권한만 부여 가능합니다.

요청 시 앱에 추가할 권한 코드를 code 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.

요청 처리 성공 시 응답은 앱이 소유한 권한의 코드 목록 payload에 포함합니다.

이름타입설명필수
codeInteger권한 코드
(최소: 1)
O
  • 추가 권한 부여 후, 앱이 소유한 권한의 코드 목록
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \
-H "Content-Type: application/json; charset=utf-8" \
-H "ADMIN-API-META-RENDER: simple" \
-u "${GROUP_NAME}:${GROUP_TOKEN}" \
-H "ADMIN-API-USERID: ${USER_INFO}" \
-d $'{
"name": "ADD",
"payload": {
"code": 150
}
}'
// HTTP/2 200
[150]

앱이 소유한 특정 권한을 회수합니다. 추가 권한 부여와 마찬가지로, 각 API 제공자의 서비스에 대한 추가 권한만 회수 가능합니다.

요청 시 앱에서 제거할 권한 코드를 code 파라미터로 지정해야 합니다. 어드민 API 권한 부여 시 전달받은 값을 사용합니다.

요청 처리 성공 시 응답은 앱이 소유한 권한의 코드 목록 payload에 포함합니다.

이름타입설명필수
codeInteger권한 코드
(최소: 1)
O
  • 권한 회수 후, 앱이 소유한 권한의 코드 목록
curl -v POST "https://internal-admin-kapi.kakao.com/app/:app_id/permission" \
-H "Content-Type: application/json; charset=utf-8" \
-H "ADMIN-API-META-RENDER: simple" \
-u "${GROUP_NAME}:${GROUP_TOKEN}" \
-H "ADMIN-API-USERID: ${USER_INFO}" \
-d $'{
"name": "REMOVE",
"payload": {
"code": 150
}
}'
// HTTP/2 200
[]

도움이 되었나요?