Skip to main content

Native SDK coverage

The Core, User, Social, Channel, Share, Navi, and Cert packages expose the public service APIs of the Kakao Android and iOS SDKs. Web uses the JavaScript SDK and REST APIs available to user access tokens. Browser limitations for app switching, local keys and sessions, and SDK URL builders are listed below.

Implementation coverage and verified success responses are separate. Success paths that require an approved app or an installed Kakao app are listed under Verification coverage.

SDK versions and audit scope​

Native defaults come from sdkVersions in packages/core/package.json. Overrides can change the behavior described here. Use getKakaoSDKInfo() to inspect the running version.

SDKVersionScope
Android2.25.1Common, Auth, User, Talk, Friend, Share, Template, Navi, Cert
iOS2.29.0Public SDK products for the same services
Partnership friend pickerAndroid 1.0.0, iOS revision 83917aaf996e5d4072e73b681507228fbd967d42Partnership friend selection options
JavaScript verification environment2.8.4The app installs its SDK script using Web setup

The audit covers public service methods, input options, and response fields in these SDKs. Internal methods, retired APIs, and callback/async overloads of the same operation are not duplicated as separate JS APIs. SDK client replacement and token-store replacement are not exposed. Push, Talk Calendar, administrator REST APIs, and the separate Kakao Maps SDK are outside this native SDK comparison. See Kakao's official support matrix for the wider API catalog.

Public APIs by feature​

Unless a platform is specified, the features below are implemented on both Android and iOS. The Web column describes browser behavior.

Core​

FeaturePublic APIs and optionsWeb
SDK initializationinitializeKakaoSDK, customScheme, loggingEnabled, android.sdkIdentifierInitializes with JavaScript and REST API keys. Native options do not apply.
Version and initialization stategetKakaoSDKInfoReturns version and isInitialized, without native configuration fields.
Android key hashgetKeyHashAndroidReturns undefined. This utility is Android only.

User​

FeaturePublic APIs and optionsWeb
Talk/account login and additional consentlogin: useKakaoAccountLogin, scopes, prompts, serviceTerms, nonce, loginHint, channelPublicIds, android.requestCodeRedirects to authorization. Requires web.redirectUri and subsequent authorization-code handling.
Login-method selectorloginWithKakao, UI and login optionsRejects with Package-UnsupportedPlatform.
Token refreshrefreshToken: stored token or an explicit token, iOS request-level loggingEnabledRejects with Package-UnsupportedPlatform.
Exchange an authorization code (iOS)issueAccessTokenWithCode: code, PKCE codeVerifier, redirectUriUses REST, returns the same token shape, and stores the access token.
Stored token, validity, and token informationhasToken, isLogined, getAccessTokenSupported. hasToken checks storage and does not guarantee token validity.
Logout and unlinklogout, unlinkSupported.
KakaoTalk login availabilityisKakaoTalkLoginAvailableAlways false. Browsers do not determine installation state.
User data and imagesme: secureResource, default-image and birthday metadata, UUIDSupported, subject to consent and app permissions.
Legal identity and group user tokenme: legalName, legalBirthDate, legalGender, agreement fields, groupUserTokenThe same fields are exposed. Partnership or group configuration is required.
Save user propertiesupdateProfileSupported for property keys registered in the console.
Manual connectionsignup, signup propertiesSupported for apps approved for manual connection.
Query and revoke scopesscopes, revokeScopesSupported.
Query and revoke service termsserviceTerms, revokeServiceTerms, result and tag filtersSupported.
Query shipping addressesshippingAddresses: addressId, fromUpdatedAt, pageSizeCalls the REST API with the user token.
Select a shipping addressselectShippingAddressUses the JavaScript SDK popup and returns the address ID.

Login options cannot be combined arbitrarily. See Login and Web login for the pinned SDK's additional-consent/login-hint restrictions and web precedence rules. The web-only issueAccessTokenWithCodeWeb and setAccessTokenWeb are unsupported on native platforms.

Social and Channel​

FeaturePublic APIs and optionsWeb
KakaoTalk profilegetTalkProfileSupported.
Friends listgetFriends: offset, limit, order, friendOrderSupported.
Standard friend pickerselectSingleFriend, selectMultipleFriends: search, self profile, favorites, selection counts, selected-friend display, appearance, orientation, indexUses the JavaScript SDK popup. mode, viewAppearance, orientation, and enableIndex do not apply.
Partnership friend pickerselectSinglePartnerFriend, selectMultiplePartnerFriends: registration, country and OS filters, selection restrictions, expanded profilesForwards supported options to the JavaScript SDK. Unconnected friends and other partnership features require approval.
Channel relationshipschannels, channelPublicIdsSupported.
Add a channel or start a chataddChannel, chatChannelSupported.
Channel URLsgetAddChannelUrl, openAddChannelUrl, getChatChannelUrl, openChatChannelUrlSupported. get returns the URL; open opens it.
Follow a channelfollowChannelUses the JavaScript SDK consent flow.

Share​

The six default templates are feed, list, location, commerce, text, and calendar. Each has share, send-to-me, and send-to-friends functions. For example, feed uses shareFeedTemplate, sendFeedTemplateToMe, and sendFeedTemplateToFriends.

FeaturePublic APIs and optionsWeb
Default and custom template sharingDefault templates, shareCustomTemplate, template arguments, server callbacks, browser fallbackUses the JavaScript SDK.
URL scrap sharingshareScrapTemplate, default or custom templateSupported.
Send to self or friendsDefault templates, custom, scrapSupported. Requires login, message consent, and recipient permissions.
Detailed friend-message resultsincludeFailureInfo: trueReturns successful UUIDs and recipient errors in the same shape. The default is a successful UUID array.
Share target picker settingspickerSettingsForwarded to the JavaScript SDK. See verification coverage for native KakaoTalk UI effects.
Local image upload and remote image scrapinguploadImage, scrapImage, secureResourceSupported. Uploads from the supplied image URI.
Sharing URL buildersmakeDefaultTemplateUrl, makeCustomTemplateUrl, makeScrapTemplateUrlReject with Package-UnsupportedPlatform.
Template warning and argument diagnosticsgetShareTemplateDiagnosticsRejects with Package-UnsupportedPlatform.
KakaoTalk sharing availabilityisKakaoTalkSharingAvailableAlways false. This does not indicate whether web sharing works.

See Component types for button, image, social, commerce, item, and execution-parameter fields. Pass execution-parameter keys and values as unencoded strings. URL builders do not open apps or pages; diagnostics do not send messages.

FeaturePublic APIs and optionsWeb
Kakao Navi installationisKakaoNaviInstalledAlways false. Browsers do not determine installation state.
Navigation and destination sharingnavigateTo, shareTo: destination, stops, rpflag, route options, installation-page fallbackCalls the JavaScript SDK on mobile browsers and returns false on desktop.
Kakao Navi URL buildersgetNavigateUrl, getShareUrl, up to three stops and native route optionsReject with Package-UnsupportedPlatform.
Certification logincertLoginWithKakaoTalk, certLoginWithKakaoAccount, product-specific K2100/K2220 inputs and login optionsNative functions are unsupported. K2100 uses the authorizeForCertWeb redirect.
Exchange a certification code (iOS)issueCertTokenWithCode: authorization code, PKCE verifier, redirect URIRejects with Package-UnsupportedPlatform.
Public key and stored sessiongetPublicKey, getSessionInfo, isValidSession, deleteKeyPairReject with Package-UnsupportedPlatform.
Fetch server sessionsfetchSessionInfo, fetchSessionInfoByAppKeyReject with Package-UnsupportedPlatform.
KakaoTalk signing and reduced signingisKakaoTalkSignAvailable, signWithKakaoTalk, reducedSign, K2220/K3220Availability is false; signing functions reject with Package-UnsupportedPlatform.

Certification requires Kakao approval and server transactions. authorizeForCertWeb is web only; completing its redirect request does not complete authentication or signing. Calling it on native rejects with Package-UnsupportedPlatform.

Response contracts​

Timestamps use Unix seconds; validity durations use seconds. SDK keys and enums are mapped to the public TypeScript types. null or absent fields caused by missing consent or app permissions are not filled with invented success data.

Existing sharing and messaging success values can differ by platform. Do not infer delivery from these values; consult each function’s return type. Friend sends return successful UUIDs by default, or { successfulReceiverUuids, failureInfos } with detailed results enabled. Message receipt, completed app switching, and authentication after a web redirect require separate checks in each flow.

Asynchronous data queries and mutations propagate SDK/HTTP failures as Promise rejections. Status and launch functions such as isLogined, navigateTo, and shareTo can return false for token-query or SDK-launch failures. JavaScript input validation can throw synchronously before returning a Promise. Follow each API's guide for its return type and error handling.

Verification coverage​

The following records runtime verification performed through October 21, 2026. Check each PR separately for its latest commit’s RN 0.76 builds and RN 0.88 builds/E2E results. Builds and input/response checks do not verify success paths when app permissions or installation prerequisites are missing. Each PR's Confidence level describes the scope verified for that change.

Earlier authenticated checks also used Android 2.25.0 and JavaScript 2.7.1. The SDK update and subsequent PRs record the checks performed after version updates. Not every authenticated success flow below was rerun with Android 2.25.1 and JavaScript 2.8.4.

FeatureVerifiedRemaining success paths or conditions
Module integrationAndroid/iOS Release builds and 8/8 smoke tests per platform. Channel, Social, and Share also build with only Core + the selected module installed.Feature approval and authentication are separate prerequisites.
SDK initialization and informationNative settings, Android identifier KA header application/restoration and iOS ignoring it, actual web SDK version and initialized stateAuthentication callback with a registered custom multi-app scheme
Login selector and refreshAccount selector login and stored-token refresh on Android/iOS; signed-out errors and cancellation on both platformsInstalled-KakaoTalk switching and callbacks
Android login request codeSigned 32-bit integer bounds, out-of-range rejection, account-login fallback, and cancellationForwarding with KakaoTalk installed. The pinned SDK uses this value only in diagnostic logs.
Login hintAndroid 2.25.1, iOS 2.29.0, and web 2.8.4: fixture ID prefill, login after entering the test account, token storage, and server validity checks passed. iOS screenshot, Android screenshot.The returned web callback URL was passed through a temporary masked input before code exchange. Automatic callback-server delivery remains unverified.
Explicit-token refreshAndroid 2.25.1 / iOS 2.29.0: refresh, storage, and validity passed after exchanging valid same-app tokens with an empty SDK store. Invalid tokens returned InvalidGrant; web returned its unsupported errorUnrotated refresh expiry differed by up to approximately 0.09s in these checks.
iOS refresh request loggingDebug app: true logs the request and response body; false hides both. Both return InvalidGrant, and global SDK logging remains falseThe SDK still logs a response: - placeholder.
Authorization code exchangeiOS 2.29.0 and web 2.8.4: valid regular codes with PKCE issued tokens, stored them, and passed server validity checks. Invalid regular/certification codes, unsupported-platform errors, and 24 contract checks also passedSuccessful certification-code exchange requires an app approved for Kakao certification.
Properties, terms, address selectionProperty writes and empty-value restoration; readback on the previously verified branch, optional-term consent/revocation with readback, and address ID return on all three platformsManually closing the web popup can leave the SDK Promise pending.
Address queriesAndroid 2.25.1, iOS 2.29.0, and web 2.8.4: two-address first pages and empty final pages requested with the actual modification timestamp. Authenticated web ID lookup matched one address.Checked with two stored addresses. Traversal through multiple intermediate pages remains unverified.
User profileImage selection, default-image and unavailable-field responses on all three platforms; input mappingPopulated birthday metadata, UUID, legal identity, group token, and real enum/consent responses
Manual connection and login channelsRegistered-user errors, channel configuration errors, input/response mappingSuccessful signup in an approved manual-connection app, partnership/group data, and connected-channel consent
SocialStandard picker selection on all three platforms and authenticated Android/web queriesLarge-list index/pagination, authenticated iOS responses, partnership filters/profile selection
ChannelChannel URLs; filtered and unfiltered queries returned Permission on iOS 2.29.0Successful connected-channel payloads and filtered queries
ImagesUpload/scrap on all three platforms, native size boundaries, and Android document URI denial followed by a successful upload with a read grantThe calling app needs read permission for Android content:// URIs.
Scrap messagesKakao accepted 12 requests across three platforms, self/friend recipients, and default/custom templatesFinal chat rendering, detailed friend-message results, and recipient partial failures
Sharing URLs and diagnosticsNative templates/arguments/special characters, actual iOS warning responses, web unsupported errorsAndroid diagnostics success needs KakaoTalk installed. Valid calendar IDs, populated argumentMsg, and KakaoTalk picker UI effects are also unverified.
Kakao NaviNative route options/stops in URLs, unavailable-app results, mobile/desktop web branchesActual delivery and navigation in an installed Kakao Navi app
CertificationNative local keys/sessions/deletion, error/cancel paths, web unsupported and authorization errorsToken issuance, valid sessions, and completed signatures with an approved app and server transaction

On Android 2.25.1, a document URI uploaded successfully after receiving a temporary read grant, returning a 74-byte, 2×2 PNG. The file downloaded from the returned HTTPS URL matched the input image byte for byte.

Login, token refresh, and shipping-query evidence is recorded in the PRs for selector login, explicit-token refresh, shipping queries, and SDK updates.

Evidence and limitations for other features are recorded in the PRs for image uploads, properties, scrap messages, partnership pickers, certification, sharing URLs, and template diagnostics.