사이드 메뉴
커뮤니케이션
API 제공
어드민 API
앱
REST API
이 문서는 앱 REST API 사용법을 안내합니다.
앱 상세 정보를 받습니다. 앱 상세 정보는 ID, 이름, 회사명, 타입과 같은 기본 정보와 함께 앱을 소유한 개발자 계정 정보나 카카오 로그인 관련 설정과 같은 세부 정보들을 포함합니다. 이 API는 앱의 각 동의항목 설정 여부와 필수 동의 설정 여부, 수집 후 제공 옵션 설정 여부도 제공합니다.
헤더에 플랫폼 앱 어드민 키를 담아 GET으로 요청합니다. 제공 받고자 하는 앱 정보에 따라 results 파라미터를 전달합니다.
요청 성공 시 응답은 앱 상세 정보가 담긴 JSON 객체입니다.
| 이름 | 설명 | 필수 |
|---|---|---|
| Authorization | Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}인증 방식, 플랫폼 앱 어드민 키로 인증 요청 서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능 서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요 | O |
- 요청 대상 서비스 앱을 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
- 서비스 앱 키:
target_app_key - 서비스 앱 ID:
target_app_id
- 서비스 앱 키:
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| target_app_key | String | 상세 정보를 조회할 서비스 앱의 키 | O(Optional) |
| target_app_id | String | 상세 정보를 조회할 서비스 앱의 IDtarget_app_id로 요청 대상 서비스 앱을 지정할 경우, 요청 대상 서비스 앱의 앱 키 및 앱 키 타입을 응답에 포함하려면 권한 필요 | O(Optional) |
| results | String | 앱의 기본정보 외에 가져오고 싶은 추가 정보를 지정하는 파라미터
아래 중 원하는 정보의 키를 하나의 문자열에 쉼표(,)로 구분해 전달:
| X |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| id | Integer | 앱 ID | O |
| name | String | 앱 이름 | O |
| company | String | 회사명 | O |
| type | String | 앱 타입, 아래 중 하나
| O |
| status | String | 앱 상태, 아래 중 하나
| O |
| category | String | 앱 카테고리 | O |
| app_keys | AppKey[] | 조회 대상인 앱의 앱 키 목록target_app_key로 요청 시, 해당 앱 키를 포함앱 키 제공을 위한 API 응답 권한 보유 시 target_app_key가 REST API 키가 아니라면 응답에 REST API 키 포함제공 조건: 조회 대상 앱의 앱 키 제공을 위한 API 응답 권한 보유, 위 제공 조건에 만족할 경우 해당 앱 키와 REST API 키를 포함하고 권한이 없는 경우 해당 앱 키만 응답 | X |
| app_business_info | AppBusinessInfo | 앱의 비즈니스 정보 제공 조건: 요청 시 results 파라미터에 app_business_info를 포함한 경우 | X |
| owner_developer | DeveloperInfo | 앱의 소유자(OWNER)인 개발자 정보 제공 조건: 요청 시 results 파라미터에 owner_developer를 포함한 경우 | X |
| icon_image_url | String | 앱 아이콘 이미지 URL(http 형식) 제공 조건: 요청 시 results 파라미터에 app_detail를 포함한 경우 | X |
| secure_icon_image_url | String | 앱 아이콘 이미지 URL(https 형식)제공 조건: 요청 시 results 파라미터에 app_detail를 포함한 경우 | X |
| user_management | String | 카카오 로그인 활성화 여부, 아래 중 하나
제공 조건: 요청 시 results 파라미터에 app_detail, kakao_sync, app_scopes, app_channel_scopes를 포함한 경우 | X |
| kakao_sync | String | 카카오싱크 간편가입 활성화 여부, 아래 중 하나
user_management 값이 OFF인 경우 제공하지 않음카카오싱크 검수를 통과하지 않아 간편가입 기능의 사용 권한이 없는 경우의 값은 OFF제공 조건: 요청 시 results 파라미터에 kakao_sync를 포함한 경우 | X |
| service_terms | ServiceTerm[] | 카카오싱크 간편가입을 사용하는 앱의 서비스 약관 정보 카카오싱크 검수를 통과해 약관이 등록된 경우 서비스 약관 정보 제공 카카오 로그인이 비활성화되어 있어 응답의 user_management 값이 OFF인 경우 제공하지 않음제공 조건: 요청 시 results 파라미터에 kakao_sync를 포함한 경우 | X |
| biz_plugin | BizPlugin | 회원가입 플러그인을 사용하는 경우 포함, t1, t2 URL제공 조건: 회원가입 플러그인 권한 보유, 요청 시 results 파라미터에 kakao_sync를 포함한 경우 | X |
| kakao_biz_service | Boolean | 비즈니스 성격(B2B)의 서비스인지 여부 제공 조건: 요청 시 results 파라미터에 kakao_biz_service를 포함한 경우 | X |
| ecp_type | String | ECP앱 여부 ECP앱이 아닌 경우 미제공 ECP_SIXSHOP: 식스샵ECP_MAKESHOP: 메이크샵ECP_NHN_COMMERCE : NHN 커머스ECP_CAFE24: 카페24ECP_IMWEB: 아임웹ECP_FIRSTMALL:퍼스트몰ECP_WISA: 위사제공 조건: 요청 시 results 파라미터에 ecp를 포함한 경우 | X |
| not_allowed_under14 | Boolean | 14세 미만 사용자 앱 제한 여부 14세 미만 사용자를 허용하지 않는 앱일 경우 true, 나이 제한이 없는 경우 false 제공 조건: 요청 시 results 파라미터에 not_allowed_under14를 포함한 경우 | X |
| app_scopes | AppScope[] | 앱에 설정된 동의항목 목록 제공 조건: 카카오 로그인이 활성화되어 있어 응답의 user_management 값이 ON인 경우, 요청 시 results 파라미터에 app_scopes를 포함한 경우 | X |
| app_channel_scopes | AppScope[] | 앱에 설정된 채널별 동의항목 목록 제공 조건: 카카오 로그인이 활성화되어 있어 응답의 user_management 값이 ON인 경우,요청 시 results 파라미터에 app_channel_scopes를 포함한 경우 | X |
| kakao_talk_channels | KakaoTalkChannel[] | 앱에 설정된 카카오톡채널 정보 제공 조건: 요청 시 results 파라미터에 kakao_talk_channels를 포함한 경우 | X |
| phase | String | 테스트 앱 여부, 아래 중 하나
| O |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| business_number | String | 앱에 등록된 사업자번호 | X |
| biz_app | Boolean | 비즈 앱 여부 | O |
| biz_plus_friends_app | Boolean | 연결된 카카오톡 채널이 있는지 여부 | O |
- 요청 시
results파라미터에app_key또는app_key_detail을 포함한 경우 제공하는 추가 정보입니다.
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| app_key | String | 조회 대상 앱의 앱 키 | O |
| app_key_type | String | app_key의 타입, 아래 중 하나
| O |
| is_target_app_key | Boolean | app_key 값이 요청 시 전달된 target_app_key 값인지 여부
| O |
| execution_url | ExecutionUrl[] | OS별 앱 실행 커스텀 URL 제공 조건: 요청 시 results 파라미터에 app_key_detail를 포함한 경우 | X |
| market_url | MarketUrl[] | OS별 앱 설치 커스텀 URL 제공 조건: 요청 시 results 파라미터에 app_key_detail를 포함한 경우 | X |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| id | Integer | 개발자 계정 ID | O |
| account_id | Integer | 개발자의 카카오계정 ID 제공 조건: 카카오계정 ID 응답 권한 보유 | X |
| registered_at | String | 개발자 계정 가입 시각(RFC3339 internet date/time 형식) | O |
| deactivated | Boolean | 개발자 계정이 휴면 계정 탈퇴 처리로 탈퇴된 경우, 서비스에 영향을 주기 않기 위해 탈퇴된 상태로 소유자(OWNER) 정보가 남으며, 이 경우에만 true 값으로 제공 | O |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| platform | String | 플랫폼 정보, 아래 중 하나
| O |
| pkgnames | String[] | platform이 android인 경우, 앱에 설정된 안드로이드 패키지 이름(Package name) 목록 | X |
| urls | String[] | platform이 iOS나 iPad인 경우, 앱에 설정된 커스텀 URL 스킴platform이 web인 경우, 앱에 설정된 웹 도메인 목록 | X |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| platform | String | 플랫폼 정보, 아래 중 하나
| O |
| urls | String[] | 앱 설치 URL 목록 | X |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| tag | String | 약관 태그(tag) 서비스 약관 선택해 동의 요청에 사용 | O |
| title_ko | String | 한글 제목 | O |
| title_en | String | 영문 제목 | O |
| title_ja | String | 일본어 제목 | X |
| title_zh | String | 중국어(간체) 제목 | X |
| title_zhtw | String | 중국어(번체) 제목 | X |
| url | String | 상세 URL | X |
| required | Boolean | 해당 약관이 필수 동의해야 하는 항목인지 여부 필수인 경우 true, 선택인 경우 false | O |
| order | Integer | 약관이 보여지는 순서 | O |
| created_at | Datetime | 약관 생성 시각(RFC3339 internet date/time 형식) | O |
| updated_at | Datetime | 약관 수정 시각(RFC3339 internet date/time 형식) | O |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| third_terms_info_uri | String | t1, 공통플러그인용, 서비스 제공자(Third party)의 약관을 가져오는 URL제공 조건: 공통플러그인 권한 보유 | X |
| third_terms_agreement_uri | String | t2, 공통플러그인용, 서비스 제공자(Third party)의 약관에 동의하는 URL제공 조건: 공통플러그인 권한 보유 | X |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| id | String | 동의항목 ID | O |
| display | String | 동의항목 이름, KA 헤더의 언어(language)에 따라 한글 또는 영어로 제공 | O |
| scope_type | String | 동의항목 타입, 아래 중 하나
| O |
| required | Boolean | 필수 동의항목으로 설정되었는지 여부 해당 동의항목을 사용하도록 설정하지 않은 경우 false | O |
| collecting | Boolean | 수집 후 제공 설정 여부 해당 동의항목을 사용하도록 설정하지 않았고, 수집 후 제공을 설정하지 않았다면 false | O |
| using | Boolean | 사용 중인 동의항목인지 여부 해당 동의항목을 필수 동의 또는 선택 동의로 설정한 경우 true, 사용안함으로 설정한 경우 false | O |
| has_permission | Boolean | 동의항목을 설정할 수 있는 권한 소유 여부 해당 동의항목을 설정할 수 있는 권한이 있는 경우 true, 권한이 없는 경우 false | O |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| public_id | String | 카카오톡 채널의 인코딩된(Encoded) 공개 프로필 ID 참고: 카카오톡 채널 프로필 ID 확인 방법 | O |
| talk_id | Long | 카카오톡 채널의 카카오톡 회원번호 제공 조건: 플랫폼 앱이 인하우스 앱인 경우 | X |
| name | String | 카카오톡 채널 이름 | O |
| uuid | String | 카카오톡 채널의 카카오톡 검색용 ID | O |
요청: 위임 방식
- 파라미터
- 서비스 앱 키(
target_app_key) - 요청할 앱 정보(
results): 앱의 상세 정보(app_detail)
- 서비스 앱 키(
curl -v -G GET "http://kapi.kakao.com/v3/internal/app" \-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \-d "target_app_key=${SERVICE_APP_KEY}" \-d "results=app_detail"
요청: 위임 방식
- 파라미터
- 서비스 앱 ID(
target_app_id) - 요청할 앱 정보(
results): 앱 키(app_key)와 ECP 앱 여부(ecp)
- 서비스 앱 ID(
curl -v -G GET "http://kapi.kakao.com/v3/internal/app" \-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \-d "target_app_id=161495" \-d "results=app_key,ecp"
요청: 위임 방식
- 파라미터
- 서비스 앱 ID(
target_app_id) - 요청할 앱 정보(
results): 앱에 설정된 카카오톡 채널 정보(kakao_talk_channels)
- 서비스 앱 ID(
curl -v -G GET "http://kapi.kakao.com/v3/internal/app" \-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \-d "target_app_id=161495" \-d "results=kakao_talk_channels"
응답: app_detail 요청 시
// HTTP/1.1 200 OK{"id": 207967,"name": "sample app","company": "api platform","type": "DEFAULT","status": "ACTIVE","category": "Book_Reference","icon_image_url": "http://k.kakaocdn.net/14/dn/ZSf5KJXvyi/ZvvEU1EbnVEJaN8XUiuNC1/o.jpg","secure_icon_image_url": "https://k.kakaocdn.net/14/dn/ZSf5KJXvyi/ZvvEU1EbnVEJaN8XUiuNC1/o.jpg","user_management": "on"}
응답: owner_developer,app_business_info 요청 시
// HTTP/1.1 200 OK{"id": 207967,"name": "sample app","company": "api platform","type": "DEFAULT","status": "ACTIVE","category": "Book_Reference","owner_developer": {"id": 132734,"registered_at": "2021-05-17T05:25:11Z","deactivated": false,"company": "api platform"},"app_business_info": {"biz_app": true,"biz_plus_friends_app": true}}
응답: app_key,not_allowed_under14 요청 시
// HTTP/1.1 200 OK{"id": 1059910,"name": "SixShopECP_emulation","company": "식스샵","type": "DEFAULT","status": "ACTIVE","category": "Book_Reference","app_key_type": "REST_API_KEY", // 요청 시 전달된 앱 키"app_key": "${APP_KEY}", // 요청 시 전달된 앱 키 타입"ecp_type": "ECP_SIXSHOP","not_allowed_under14": false}
응답: target_app_key로 app_key 요청, 응답 권한 보유 시
- 요청 시
target_app_key에 JavaScript 키를 전달해 조회 대상인 앱 지정, 응답의JAVASCRIPT_KEY는is_target_app_key_type값true로 반환 - 조회 대상 앱의 앱 키 제공을 위한 권한을 보유하고 있어, 요청 시 전달한 JavaScript 키와 함께 REST API 키 정보 추가 제공
// HTTP/1.1 200 OK{"id": 1090123,"name": "Sample","company": "SampleCompany","type": "KAKAO","status": "ACTIVE","category": "Book_Reference","app_keys": [{"app_key": "${APP_KEY}", // 요청 시 전달된 앱 키"app_key_type": "JAVASCRIPT_KEY", // 요청 시 전달된 앱 키 타입"is_target_app_key_type": true // 요청 시 전달된 앱 키인지 여부},{"app_key": "${APP_KEY}", // 응답 권한 보유 시 REST API 키 제공"app_key_type": "REST_API_KEY", // 응답 권한 필요 시 REST API 키 제공"is_target_app_key_type": false // 요청 시 전달된 앱 키인지 여부}]}
응답: target_app_key로 app_key 요청, 응답 권한 미보유 시
- 요청 시
target_app_key에 JavaScript 키를 전달해 조회 대상인 앱 지정 - 조회 대상 앱의 앱 키 제공을 위한 권한 미보유, 요청 시 전달한 JavaScript 키만 응답에 포함
// HTTP/1.1 200 OK{"id": 1090123,"name": "Sample","company": "SampleCompany","type": "KAKAO","status": "ACTIVE","category": "Book_Reference","app_key_type": "JAVASCRIPT_KEY", // 요청 시 전달된 앱 키 타입"app_key": "${APP_KEY}" // 요청 시 전달된 앱 키}
응답: target_app_id로 app_key 요청, 응답 권한 보유 시
- 요청 시
target_app_id로 조회 대상인 앱 지정 - 조회 대상 앱의 앱 키 제공을 위한 권한을 보유하고 있어, 응답에 REST API 키 정보 포함
// HTTP/1.1 200 OK{"id": 1090123,"name": "Sample","company": "SampleCompany","type": "KAKAO","status": "ACTIVE","category": "Book_Reference","app_key_type": "REST_API_KEY", // 응답 권한 보유 시 REST API 키 제공"app_key": "${APP_KEY}", // 응답 권한 보유 시 REST API 키 제공"app_keys": [{"app_key": "${APP_KEY}", // 응답 권한 보유 시 REST API 키 제공"app_key_type": "REST_API_KEY", // 응답 권한 보유 시 REST API 키 제공"is_target_app_key_type": false // 응답 권한 보유 시 REST API 키 제공}]}
응답: target_app_id로 app_key 요청, 응답 권한 미보유 시
- 요청 시
target_app_id로 조회 대상인 앱 지정 - 조회 대상 앱의 앱 키 제공을 위한 권한 미보유, 응답에 앱 키 포함하지 않음
// HTTP/1.1 200 OK{"id": 1090123,"name": "Sample","company": "SampleCompany","type": "KAKAO","status": "ACTIVE","category": "Book_Reference"}
응답: app_scopes,app_channel_scopes 요청 시
// HTTP/1.1 200 OK{"id": 207967,"name": "sample app","company": "api platform","type": "DEFAULT","status": "ACTIVE","category": "Book_Reference","user_management": "on","app_scopes": [{"id": "profile","display": "Profile Info(nickname/profile image)","scope_type": "PRIVACY","required": true,"collecting": false,"using": true,"has_permission": true},{"id": "account_email","display": "Email","scope_type": "PRIVACY","collecting": false,"using": false,"has_permission": true}],"app_channel_scopes": [{"id": "account_email","display": "카카오계정(이메일)","scope_type": "PRIVACY","required": true,"using": true,"collecting": false,"channel": "bizplugin"}]}
응답: kakao_talk_channels 요청 시
// HTTP/1.1 200 OK{"id": 203837,"name": "sample","company": "Kakao Corp.","type": "SAMPLE","status": "ACTIVE","category": "Book_Reference","kakao_talk_channels": [{"public_id": "_EyL","name": "Developers Sample","uuid": "@dev_sample","talk_id": 212228 // 플랫폼 앱이 인하우스 앱인 경우에만 제공}// ...]}
응답: 실패, target_app_id 또는 target_app_key가 없을 경우
// HTTP/1.1 401 Unauthorized{"code": -401,"msg": "no authentication key!"}
응답: 실패, target_app_key가 올바르지 않을 경우
// HTTP/1.1 401 Unauthorized{"code": -401,"msg": "wrong appKey(052c06a5e9fa027f847946e81e4af84d2) format"}
| 메서드 | URL | 인증 방식 |
|---|---|---|
GET | 카카오http://kapi.kakao.com/v1/internal/app/plugin공동체 https://kapi.kakao.com/v1/internal/app/plugin | 위임 |
앱에 설정된 공통플러그인(싱크플러그인, 위치플러그인) 관련 정보를 확인합니다. 이 API는 위임 방식만 지원하며, 요청을 보내는 플랫폼 앱에 API 사용 권한이 필요합니다.
헤더에 플랫폼 앱 어드민 키를 담아 GET으로 요청합니다. target_app_id 파라미터로 조회 대상 서비스 앱을 지정해야 합니다. 성공 시 응답은 해당 앱에 설정된 플러그인과 관련된 정보를 포함합니다. 싱크플러그인을 사용하는 앱일 경우, 싱크플러그인으로 카카오 로그인에 사용되는 redirect_uri 값을 제공합니다. 위치플러그인을 사용하는 앱일 경우, 위치정보제공목적으로 설정된 문구를 제공합니다.
| 이름 | 설명 | 필수 |
|---|---|---|
| Authorization | Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}인증 방식, 플랫폼 앱 어드민 키로 인증 요청 서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능 서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요 | O |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| target_app_id | Integer | 설정된 플러그인을 확인할 서비스 앱 ID | O |
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| app_keys | Map<String,String> | target_app_id에 해당하는 앱의 어드민 키(Admin key)를 제외한 앱 키 목록 | O |
| redirect_uri | String | 싱크플러그인을 사용하는 경우 제공하는 정보 카카오 로그인과 카카오싱크 간편가입 설정이 활성화되어 있고, 카카오싱크 서비스 약관이 등록되어 있는 경우 제공 싱크플러그인으로 카카오 로그인 시 사용되는 redirect_uri 값으로 싱크플러그인 사용 앱에 대해 별도 설정된 값 | X |
| purpose_of_location_provision | String | 위치플러그인을 사용하는 경우 제공하는 정보 위치정보제공목적으로 설정된 문구 | X |
요청: 위임 방식
- 파라미터
- 서비스 앱 ID(
target_app_id)
- 서비스 앱 ID(
curl -v -G GET "http://kapi.kakao.com/v1/internal/app/plugin" \-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \-d "target_app_id=1"
응답
{"app_keys": {"JAVASCRIPT_KEY": "${SERVICE_APP_JAVASCRIPT_KEY}","REST_API_KEY": "${SERVICE_APP_REST_API_KEY}","NATIVE_APP_KEY": "${SERVICE_APP_NATIVE_APP_KEY}"},"redirect_uri": "http://dev.kakao.com/oauth","purpose_of_location_provision": "위치플러그인테스트"}
카카오싱크 간편 설정을 사용하는 쇼핑몰의 카카오디벨로퍼스 앱 정보를 조회하는 API입니다. 자세한 안내와 예제는 앱 정보 조회 API를 참고합니다.