

This document provides information about an Kakao Developers app.
An app is a Kakao Developers project in which service information is registered. By configuring the app, a service can use the APIs and various features provided by Kakao Developers.
On the app management page, you can check and modify the basic information of the service that will use the Kakao API registered when creating Kakao Developers app in [App] > [General] > [App basic information].
🅐 App icon: Service logo or app icon. File size must be under 250 KB; a size of 128×128 or less is recommended. 🅑 App name (required): Service name. 🅒 Company name (required): Business, corporation, or organization name operating your service. 🅓 Category (required): The category that best fits your service. 🅔 App primary domain: The primary domain of the service provided by the Kakao Developers app.
The basic information registered in the app is exposed to users, so it must be entered exactly as in the actual service. As shown in the image below, it is displayed on the Kakao Login consent screen, Manage Connected Services, and the source section at the bottom of Kakao Talk Messages.
Kakao Developers apps can have types as below depending on the permissions they have. An app can hold multiple permissions at the same time. For how to obtain each permission, see the details in each item.
Each service should have exactly one app. If you are already using Kakao Login or Kakao Talk Share, and thus have an existing app registered, continue using that existing app. Do not register a new one. If you lose access to the administrator account and cannot use the existing app, request an app owner change on DevTalk.
If your service is already using Kakao Login and you create a new app, users will have to sign up again for the new app. This can cause issues, such as duplicate membership data being registered for the same user.
A unique ID that identifies the app is assigned when an app is created. The app ID can be found on the app management page or in the app information section at the top of the tools page. When you make inquiries on DevTalk, share your app ID. Then, you can receive faster responses.
On the app management page, you can register the service's business information in [App] > [General] > [Business information] to switch to Biz app.
A Biz app is an app with registered business information, providing the following additional features.
In [App] > [General] > [Business Information], select [Register business information] and enter the Business registration number. Only the app Owner can switch to a Biz app. Individual developers without a business registration number should refer to Switch to a Biz app for an individual.
The Biz app is also available for individuals, celebrities, or governmental entities without a business registration number. If the app meets the guidelines below, it can be switched to a Biz app in [App] > [General] > [Business information] on the app management page.
A Biz app for individual developers cannot be connected to a Business Channel because it lacks business information. If you need to adopt Kakao Sync, you can still register business information in [App] > [Business Information] even after converting to a Biz app for individual developers.
You can only switch to a Biz app if you register a business registration number or complete phone number verification.
If you do not have a Korean business registration number or cannot verify your phone number overseas, send the following information to the administrator via a DevTalk message. After reviewing the information, the administrator switches your app to a Biz app.
The test app is provided for updating or adding a new feature to the service. The test app has built-in permissions to preview features before requesting a review. Belows are the main features that the test app provides
Consider the limitations below when using test apps.
Make sure that the test app is not applied to your actual operating service. Test apps are only features provided for testing purposes and have separate quota limits. Use for purposes other than testing will be penalized.
Below is the complete list of permissions provided for the default test app. To use additional permissions in the original app, you need to obtain the permissions separately by reviewing.
account_email): Requiredname): Optional, Requiredgender): Requiredage_range): Requiredbirthday): Requiredbirthyear): Optional, Requiredphone_number): Optional, Requiredshipping_address): Optional, RequiredTo create a test app, go to [App] > [General] > [Test App], and select 🅐 [Create a test app].
The test app provides a separate app key, independent settings, and permissions that differ from the original app.
Even if you are not the owner of the original app, the account that created the test app becomes the owner of the test app. The owner of the test app can select the 🅑 name of the test app created in the [Test App] section to navigate to the test app settings screen.
If the app is no longer needed or if you have been guided to delete your Kakao Developers app on another platform, you can delete it as follows.
When an app is deleted, its users can no longer use the features provided by Kakao Developers through APIs, and a deleted app cannot be restored.
An app cannot be deleted under the following conditions.
This section explains how to configure Kakao Developers app keys. App keys are provided as platform keys and Admin keys.
Platform keys (REST API key, JavaScript key, Native app key) and the Admin key are values that must be included to authenticate the service app information when calling Kakao APIs. Kakao Developers authenticates the service’s API requests using the app information associated with the app keys. For the details on each app key, see each section below.
After creating an app, the service must register its information for each app key. App keys can be managed in [App] > [Platform key] and [App] > [Admin key] on the app management page.
🅐 Add key: When selected, navigates to the [Add key] page for each app key. 🅑 Key information: Displays summary information of the registered key. Click it to go to the Key settings page. The copy button allows you to copy the key value. 🅒 Primary key badge. 🅓 Key management menu.
This section explains how to edit settings, set as primary key, clone key, and delete an app key using the key management menu.
This section explains how to create a clone key, which you can use when a key may have been exposed and needs to be replaced, or when you need a key that reuses the existing key settings as-is.
Creating a clone key does not automatically deactivate the original key. If you created a clone key to replace an existing key, you must manually delete the original key.
When Kakao Developers needs to use one of the service’s keys to provide a feature, it uses the primary key. Some APIs must be requested using the primary key.
When an app is created, one key of each type is registered as the primary key by default, and you can add keys and change which one is the primary key. See below for the list of features where Kakao Developers uses the primary key.
When calling an API that requires the default key with a regular key, the following error occurs.
"msg":"appKey(${APP_KEY}) is not default app key.",
"code":-401.
Changing the primary key may cause errors in running services. Check the impact in advance and take any necessary actions before changing the primary key.
If the registered platform key information does not match the actual service, the invalid android_key_hash or ios_bundle_id or web_site_url error occurs. Check the main registration fields for each platform below and register values that match the actual service.
If the app key registration information differs from the actual service, an invalid android_key_hash or ios_bundle_id or web_site_url error occurs. Check the key registration items for each platform below and register values that match the actual service.
If you request an API that must be called with the primary key using a general key instead, the below error occurs. When this error occurs, send the request again with the correct primary key value that you can check in [App] > [Platform key] or [App] > [Admin key].
"msg":"appKey(${APP_KEY}) is not default app key",
"code":-401
If you request an API that must be called with the Platform key using an Admin key, the below error occurs. When this error occurs, send the request again with the correct key value that you can check in [App] > [Platform key].
"msg":"appKeyType is ADMIN_KEY. but expected [NATIVE_APP_KEY, JAVASCRIPT_KEY, REST_API_KEY]",
"code":-401
This value must be included to authenticate the service app information when calling Kakao APIs via REST APIs. For the details on adding and managing keys and primary keys, see Platform key.
🅐 REST API key: Displays the REST API key value, and allows copying the value with the copy button. 🅑 Key name: Name used to identify the key. 🅒 Allowed IP address: Registers IP addresses allowed to make requests with the REST API key. 🅓 Redirect URI: Registers redirect URIs required when using Kakao Login or Business Authentication. 🅔 Client secret: Allows configuring whether to use the feature and managing codes. The feature is enabled by default when a key is created. 🅕 Additional information: Displays the activation status, creation date, and last modified date of the REST API key.
To enhance service security, the REST API key (including the key automatically created with the app) is added with the Client secret feature enabled, and the corresponding parameter must be included when issuing a token. If necessary, you may disable this feature by referring to its instructions.
Client secret is a mechanism where tokens for Kakao Login and Business Authentication can be issued only when a specific code issued by Kakao Developers is included in the request. See the configuration method below.
🅐 Code management menu: Generates, reissues, and deletes Client secret codes. 🅑 Code: Displays the issued Client secret code, and you can copy the value using the copy button. 🅒 Activate: Selects whether to enable the Client secret feature ([ON]: enabled, [OFF]: disabled).
When you delete or reissue a Client secret, the previous code cannot be restored. All token issuance requests using the previous Client secret will fail, so extra caution is required for running services.
This value must be included to authenticate the service app information when using the web doamin of Kakao SDK for JavaScript or Kakao SDK for Flutter. For the details on adding and managing keys and primary keys, see Platform key.
🅐 JavaScript key: Displays the key value and status, and allows copying the value with the copy button. 🅑 Key name: Name used to identify the key. 🅒 JavaScript SDK domain: Registers website domains allowed to use Kakao SDK for JavaScript. 🅓 Redirect URI: Registers redirect URIs used when requesting Kakao Login with a JavaScript key. 🅔 Additional information: Displays the activation status, creation date, and last modified date of the JavaScript key.
Register the website domains where Kakao SDK for JavaScript can be used with the JavaScript key. The JavaScript key can be used only on registered JavaScript SDK domains and requests from other domains are rejected. The following rules apply when registering domains.
http://, https://, and file:// formats.http or https, both protocols can be used.To register domains required for web links in Kakao Developers products, you can set them in [App] > [Product Link] > [Web domain] on the app management page.
This value must be included to authenticate the service app information when using the native platforms of Kakao SDK for Android, Kakao SDK for iOS, or Kakao SDK for Flutter. For the details on adding and managing keys and primary keys, see Platform key.
🅐 Native app key: Displays the key value and status, and allows copying the value with the copy button. 🅑 Key name: Name used to identify the key. 🅒 Android app package name. 🅓 Android store URL. 🅔 Android key hash. 🅕 iOS bundle ID. 🅖 iOS store URL. 🅗 Native app scheme (custom URL scheme) issued for the key. 🅘 Additional information: Displays the activation status, creation date, and last modified date of the Native app key.
This is the unique identifier of an Android app. It is a required value when registering Android app information, and Kakao SDK for Android can only be used by native apps whose package names are registered. The package name can be found in the package attribute of the AndroidManifest.xml file in the Android project (Example: com.kakao.developers).
This is the unique identifier of the Android app certificate (signing key) and is used by Kakao Developers to verify that the service app is a trusted target. It is a required value when registering Android app information, and Kakao SDK for Android can only be used by native apps whose key hashes are registered. For the details, see Key hash and register key hashes for each development environment.
This is the unique identifier of an iOS app. It is a required value when registering iOS app information, and Kakao SDK for iOS can only be used by native apps whose bundle IDs are registered. The bundle ID can be found in the Xcode settings of the iOS project under [Target] > [General] > [Identity] as the Bundle Identifier value.
Messages sent via Kakao Developers products can include links that launch the service app. If the service app is not installed on the user’s device when opening such a link, the user is redirected to the registered store URL. See the platform-specific rules for entering store URLs below.
The admin key is an authentication key with administrator privileges for a service app, and only the app owner can view and manage its value. It is used when requesting APIs that use the Admin key authentication method and access sensitive settings or resources among the Kakao APIs.
To prevent exposure, the Admin key must be used only on the server and must not be included in client-side source code. For the details on adding and managing keys and primary keys, see Platform key / Admin key.
🅐 Admin key: Displays the Admin key value and status, and allows copying the value with the copy button. 🅑 Key name: Name used to identify the key. 🅒 Available APIs: Specifies APIs that can be called with the Admin key. 🅓 Allowed IP address: Registers IP addresses allowed to make requests with the Admin key. 🅔 Additional information: Displays the activation status, creation date, and last modified date of the Admin key.
Specify the scope of APIs that can be called with an Admin key. The full list of APIs that can be specified is available in Admin key: API category.
By specifying available APIs, you can restrict unnecessary permissions in the production environment or separate specific features so that they are called only from a dedicated server. Set one of the three items below to configure the scope.
| Setting item | Allowed target | Usage example |
|---|---|---|
| [All APIs allowed] | Allows calling all Admin key: API category. | Use this for early development stages or internal environments. |
| [Only specific APIs allowed] | Allows calling only selected APIs among Admin key: API category. | Use this when you want to separate and control sensitive APIs. |
| [All APIs allowed except specific APIs] | Allows calling all Admin key: API category except the selected APIs. | Use this when only a few APIs require exceptions. |
If you call an API that is not designated as an Available API for the Admin key, the below error occurs. When this error occurs, designate the API to be called with the admin key in [App] > [Admin key] > [Available API] on the app management page, then send the request again.
"msg": "This api is not allowed by using app_key(${APP_KEY}).",
"code": -3
You can register Web domain and Native app scheme that are allowed for links included in Kakao Developers products provided via APIs, such as Kakao Talk Share, Kakao Talk Message, and Talk Calendar, in [App] > [Product Link] on the app management page. Links within Kakao Developers products are allowed only when the information is registered in [Product Link].
You can add domains that allow web link connections included in Kakao Developers products and select a default web domain. The service can assign one of the registered web domains to each product’s web link to allow link connections.
Domains required to use Kakao SDK for JavaScript can be registered in [App] > [Platform key] > [JavaScript key] > [JavaScript SDK domain] on the app management page.
🅐 Manage web domains 🅑 Select default domain 🅒 Web domain information: Displays key information of the registered web domains
This section explains how to register, edit, and delete web domains and the rules to follow.
https://www.example.com/mypage, it is registered as https://example.com.*) apply.This section explains how to configure web domains for web links in Kakao Developers products. For the details, see each product document.
The default web domain is applied as the initial value of the web domain that allows web links in Kakao Developers products. See the configuration method and examples below.
When you change the default web domain, the web link settings of each product that uses this domain are also changed. This may cause errors where links cannot connect, so you must check the impact and take necessary actions before making changes.
You can view custom URL scheme that allow app link connections included in Kakao Developers products and select a default native app scheme. The service can assign one of the registered native app schemes to each product’s app link to allow link connections.
🅐 Select default app scheme. 🅑 Native app scheme list: Displays registered native app schemes (custom URL scheme).
This section explains how to add, edit, and delete native app schemes.
This section explains how to configure native app schemes for app links in Kakao Developers products. For the details, see each product document.
The default native app scheme is applied as the initial value of the native app scheme that allows app links in Kakao Developers products. See the configuration method and examples below.
When you change the default native app scheme, the app link settings of each product that uses this scheme are also changed. This may cause errors where links cannot connect, so you must check the impact and take necessary actions before making changes.
Request a review to use additional features of the app. The list of additional features that can be applied for can be found in Request permission.
Request a review on the app management page at [App] > [Request additional features]. Before applying for additional features, complete Check eligibility. Refer to the instructions for each item below.
For information on checking the Kakao Talk Channel list and disconnecting, see Connected Kakao Talk Channel.
🅐 Check eligibility 🅑 Business information 🅒 Additional features
Checks the app and account's qualifications to request for app permissions.
Requests for business information verification for the app.
Requests a review for your app to use additional features. You can find the features you can request in the Request additional features list.
Displays the status of the permission review as below.
If you have any questions regarding the request for additional features, contact us through the [추가 기능 신청] (meaning 'Additional feature request') board or by message on DevTalk. For swift response, include your App ID when making an inquiry.
You can use Kakao Talk Channel connected to your Kakao Developers app for marketing purposes. For the method to connect the app and Kakao Talk Channel, see Connect Kakao Talk Channel to app.
🅐 Connected Kakao Talk Channel 🅑 Primary channel 🅒 Customer management API policy agreement
You can check and manage the list of Kakao Talk Channels connected to the app.
Click [Manage Kakao Talk Channel] to navigate to the Request additional features page. To connect the app and Kakao Talk Channel, click [Request] in the [Connect Kakao Talk Channel] column to request a connection. To disconnect, select [Disconnect] in the [Connection Management] section.
For how to connect a Kakao Talk Channel, see Connect Kakao Talk Channel to app.
You can check the list of Kakao Talk Channels connected to the app and select [Disconnect] if needed to disconnect them. Disconnected Kakao Talk Channels can be reconnected by selecting [Request] for [Connect Kakao Talk Channel] in [App] > [Request additional features] on the app management page.
If you are using Kakao Sync as a hosting service for your shopping mall, you cannot disconnect the channel with this feature. You need to refer to the hosting company instructions that supports the Kakao Sync Simple Settings popup, and change your hosting company's admin settings.
A primary channel is the Kakao Talk Channel that represents your service. When a primary channel is set, the consent item for adding the channel is displayed on the Kakao Login consent screen. To see how to set, see Primary channel.
You can agree to the required policies to use the Kakao Talk Channel customer management API. See the step-by-step guide below.
Register settings related to webhooks to receive notifications about user activities or account status changes that occur outside the service. For the details, see Webhook.
If webhook testing is required, select [Webhook test] for simple testing. For the details, see Webhook test.
On the app management page, go to [App] > [Webhook] > [Account status change webhook], then select [Register webhook] to configure the Account status change webhook. Enter the detailed information with reference to the descriptions below.
🅐 Activation status: Select [Enabled] to enable Account status change webhook. 🅑 Webhook URL: Set a webhook URL of your service that receives Account status change event information. The domain for the webhook supports HTTPS only. 🅒 Change Event: Select Change event types of each category. ⓐ Categories: Select a desired category. Provided only to the app with permission. ⓑ Types: Select desired change event types.
After entering the detailed information, select [Save] to display the registered webhook details. Select [Edit] to modify the registered information, or select [Delete] to remove it.
These settings alone do not activate the webhook feature. You must also implement a server that can process webhook requests. For more details, see Implementation steps.
On the app management page, select [App] > [Webhook] > [Unlink webhook], then select [Register webhook] to configure the Unlink webhook. Enter the detailed information with reference to the descriptions below.
Enter the domain address, method, and request path (Path) for processing webhooks in the [Webhook URL] field. Only HTTPS is supported for webhook URLs to protect user information, and only port 443 can be registered.
After entering the detailed information, select [Save] to display the registered webhook details. Select [Edit] to modify the registered information, or select [Delete] to remove it.
The webhook will not operate with only these settings. A receiving server capable of processing webhook requests must also be implemented. For the details, see Implementation steps.
If your server does not respond to webhook requests for a long period of time or if the error rate is high, the Kakao API server no longer delivers webhooks and change its status to [Deactivated]. Read email, web push notifications sent to your app team members. After resolving the issue, set the activation status back to [Active] to resume webhook delivery.
On the app management page, select [App] > [Webhook] > [Kakao Talk Share webhook], then select [Register webhook] to configure the Kakao Talk Share webhook. Enter the detailed information with reference to the description below.
Enter the domain address, method, and request path for processing webhooks in the [Method] and [Webhook URL] fields. Only HTTPS is supported for webhook URLs to protect user information, and only port 443 can be registered.
After entering the detailed information, select [Save] to display the registered webhook details. Select [Edit] to modify the registered information, or select [Delete] to remove it.
The webhook feature will not operate with only these settings. A receiving server capable of processing webhook requests must also be implemented. For the details, see Implementation procedure. In addition, the Kakao Talk Share webhook can only be received after Custom parameter configuration are completed.
The Kakao Talk Message API returns the message send result in the response, so a separate webhook feature is not required.
On the app management page, select [App] > [Webhook] > [Kakao Talk Channel webhook], then select [Register webhook] to configure the Kakao Talk Channel webhook. The Kakao Talk Channel webhook can be configured after connecting Kakao Talk Channel to the app.
Registering a [webhook URL] alone does not activate the webhook feature. A receiving server capable of processing webhook requests must also be implemented. For details, see Implementation procedure.
When a webhook is implemented, the webhook is sent to all business Kakao Talk Channels connected to the app. You can check the target Kakao Talk Channels in [App] > [Kakao Talk Channel] > [Connected Kakao Talk Channel] on the app management page.
A member is a person who manages the app. You can manage members in the [App] > [Member] section of the app management page. Only developer accounts registered as members can view or modify app information, and for a test app, only members can call Kakao APIs.
🅐 Add member
🅑 Member information and management
If the app Owner is unknown or missing, refer to FAQ.
For services in operation, this setting may affect the behavior of features that use the Kakao API. Use it only after fully understanding the details below.
This feature configures the Kakao API server to allow requests only from registered IP addresses as a safeguard against security incidents such as key leakage. When the feature is enabled, Kakao API requests can be made only from the registered IP addresses.
🅐 IP address input field. Use the [Add (+)] or [Delete (-)] buttons to add or remove entries.
Allowed IP addresses can be configured for REST API key and Admin key respectively. This setting is applied separately based on the key used for API requests.
If a Kakao API request is made from an unregistered IP address, the following error response is returned. To resolve the issue, add the IP address of the requesting service server or delete all registered IP addresses.
"msg": "ip mismatched! callerIp=XXX.XXX.XXX.XXX. check out registered ips.",
"code": -401
To use Kakao Login or Business Authentication, a redirect URI must be registered. The redirect URI is a key element of the authentication process based on OAuth 2.0, and redirection is allowed only to a pre-registered URI.
🅐 Redirect URI input field. Use the [Add (+)] and [Delete (-)] buttons to add or remove entries.
The platform key on which a redirect URI must be registered varies depending on the product and call method. Refer to the guidance below.
If the redirect URI is incorrect, a KOE006 error occurs during the authentication request. Check that the registered redirect URI exactly matches the redirect URI sent in the request.
A Biz app can register domains containing wildcard characters. The following rules apply when registering such domains.