Apple Search Ads

Collect and view Apple Search Ads attribution in RevenueCat using AdServices

👍

The Apple Search Ads (AdServices) integration is available on the Pro plan, Enterprise plan, and legacy Grow plan.

📘

Looking for the legacy iAd docs instead of AdServices? Click here

With our Apple Search Ads integration you can:

  • Continue to follow your campaign's install base for months to understand the long-tail revenue generated from subscriptions, even without an app open.
  • Filter and segment RevenueCat charts by Apple Search Ads campaigns or ad groups.

Collecting Apple Search Ads data is a two part process: first, you must collect the user's attribution token and send it to RevenueCat, then RevenueCat will request attribution data from Apple directly within a 24 hour period.

Once attribution data is collected from Apple, it will be available via Charts and other integrations.

1. Configure Integration

❗️

Basic vs Advanced

Apple Search Ads offer two products, Search Ads Basic and Search Ads Advanced. The RevenueCat Apple Search Ads integrations supports both Basic and Advanced. However, Advanced will require more configuration than Basic.

Basic

  • Navigate to your project in the RevenueCat dashboard and choose 'Apple Ads Services' from the Integrations menu.
  • Click on Add Apple Search Ads integration to add the integration.

Advanced

  • Navigate to your project in the RevenueCat dashboard and choose 'Apple Ads Services' from the Integrations menu.
  • Click on Add Apple Search Ads integration to add the integration.
  • Go to Account Settings > API in your Search Ads dashboard, and paste your public key in the Client Credentials section in settings of your API User.

🚧

Saving your public key may require Safari

Apple Search Ads may reject the public key with an 'invalid' error message if you're using a browser other than Safari. If you get this error, try switching to Safari to save the key.

📘

Apple Search Ads API User

RevenueCat uses the Campaign Management API to access the campaign data from Apple Search Ads. This API requires access through a separate Apple ID that with one of the following roles: API Account Manager, API Account Read Only, or Limited Access API Read & Write or API Read Only.

More info about creating these users can be found here.

Please make sure you do not use an incognito window when creating a new Apple ID for the API user as we have seen it cause difficulties for other developers.

2012
  • Then, copy the provided clientId, teamId and keyId from the Search Ads page to your RevenueCat Dashboard.
  • Click the 'Save' button in the top right corner.
1876

2. Send attribution token to RevenueCat

📘

Compatibility

Using AdServices to collect Apple Search Ads data requires iOS 14.3+, and is not supported on earlier versions of iOS. If you need to continue collecting Apple Search Ads data for older versions of iOS, follow our legacy Apple Search Ads instructions.

Apple Search Ads provides two different types of attribution data, one a Standard view and one a Detailed view. Attribution fields vary between the two types of data, which may affect downstream integrations, and will require a different client-side implementation.

StandardDetailed
App Tracking Consent RequiredNoYes
attribution
campaignId
conversionType
clickDate
adGroupId
countryOrRegion
keywordId
adId

📘

Note that this is the same data that is sent to other downstream integrations that receive Apple Search Ads data (like SplitMetrics Acquire). If you need fields that are unavailable in the Standard data, use Detailed instead.

Standard

The standard attribution data collection does not require user consent and can be enabled by calling Purchases.shared.attribution.enableAdServicesAttributionTokenCollection() after calling configure:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { Purchases.configure(withAPIKey: "public_sdk_key", appUserID: "my_app_user_id") Purchases.shared.attribution.enableAdServicesAttributionTokenCollection() return true }
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { RCPurchases *purchases = [RCPurchases configureWithAPIKey:@"public_sdk_key" appUserID:@"my_app_user_id"]; [purchases.attribution enableAdServicesAttributionTokenCollection]; }
Future<void> initPlatformState() async { await Purchases.setDebugLogsEnabled(true); if (Platform.isAndroid) { await Purchases.setup("public_google_sdk_key"); } else if (Platform.isIOS) { await Purchases.setup("public_ios_sdk_key"); // OR: if building for Amazon, be sure to follow the installation instructions then: await Purchases.setup("public_amazon_sdk_key", useAmazon: true); } await Purchases.enableAdServicesAttributionTokenCollection(); }
export default class App extends React.Component { componentDidMount() { Purchases.setDebugLogsEnabled(true); if (Platform.OS === 'ios') { await Purchases.setup("public_ios_sdk_key"); } else if (Platform.OS === 'android') { await Purchases.setup("public_google_sdk_key"); // OR: if building for Amazon, be sure to follow the installation instructions then: await Purchases.setup({ apiKey: "public_amazon_sdk_key", useAmazon: true }); } await Purchases.enableAdServicesAttributionTokenCollection(); } }
function onDeviceReady() { Purchases.setDebugLogsEnabled(true); if (window.cordova.platformId === 'ios') { Purchases.setup("public_ios_sdk_key"); } else if (window.cordova.platformId === 'android') { Purchases.setup("public_google_sdk_key"); } Purchases.enableAdServicesAttributionTokenCollection(); }

That's it! The Purchases SDK will collect the attribution token and send it to RevenueCat in the background.

Detailed

To collect Detailed attribution data, you'll need to first request consent from your users by using the App Tracking Transparency framework.

If the user rejects tracking, the Standard attribution data can still be collected.

To request consent from a user, implement the requestTrackingAuthorization method before enabling automatic collection:

import AdServices ... func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { Purchases.configure(withAPIKey: "public_sdk_key", appUserID: "my_app_user_id") if ATTrackingManager.trackingAuthorizationStatus != .notDetermined { // The user has previously seen a tracking request, so enable automatic collection // before configuring in order to to collect whichever token is available Purchases.shared.attribution.enableAdServicesAttributionTokenCollection() } return true } // Later in your app's lifecycle, ask consent for tracking if ATTrackingManager.trackingAuthorizationStatus == .notDetermined { ATTrackingManager.requestTrackingAuthorization { _ in Purchases.shared.attribution.enableAdServicesAttributionTokenCollection() } }

After automatic collection is enabled, Purchases will sync the attribution token with the RevenueCat backend. Please note that if you enable automatic collection before requesting authorization, the attribution token will only be valid for Standard and not Detailed attribution data.

3. View attribution data in RevenueCat

After the Purchases SDK has collected attribution for some users, you'll be able to segment and view charts for those conversions.

Choose conversion level

In the 'Select Segment' dropdown choose Apple search ads group or Apple search ads campaign from the Segment section.

672

View charts

Apple Search Ad attribution is available as segments and filters in the following charts:

  • Active Subscriptions
  • Churn
  • Refund Rate
  • Annual Recurring Revenue (ARR)
  • Monthly Recurring Revenue (MRR)
  • Revenue
  • Active Trials
1414

Filter chart to compare individual campaigns or ad groups

Select and deselect rows to compare individual campaigns or ad sets

223

📘

The value of Unspecified is used to group transactions that are attributed to an Apple Search Ads ad, but do not have a specified Campaign Name or Ad Group Name. This is almost always because the ad has been delivered through an Apple Search Ads Basic account, where campaign names and ad group names are not specified.

📘

The value of Organic is used to group transactions that are not attributed to an Apple Search Ads campaign. This means it was an organic install or users with limit ad tracking enabled.

🚧

Allow up to 7 days to gather attribution data

If your campaigns are new or you recently set up the Apple Search Ads integration, allow some time for RevenueCat to collect attribution and purchase data.


Did this page help you?
\n\n","html_footer":"","html_body":"","html_promo":"","javascript_hub2":"// Redirect hack so we don't accidentally leak the underlying readme url\nvar wl = window.location;\nif (wl.hostname == \"docs-origin.revenuecat.com\" && ! wl.pathname.startsWith('/suggested-edits/') && ! wl.pathname.startsWith('/edit/') && wl.search.indexOf('auth_token') < 0 && document.cookie.indexOf('docs_redirect=off') < 0) {\n window.location.replace(\"https://www.revenuecat.com\" + wl.pathname + wl.search);\n}","javascript":"","stylesheet_hub2":"/*.markdown-body h2 { font-weight:700; }*/\n\nhtml:not(.useReactApp) nav#hub-sidebar>ul>li>a.active,\nhtml:not(.useReactApp) nav#hub-sidebar ul>li.subnav-expanded>a {\n color: white !important;\n}\n\n.table {\n border-collapse: collapse;\n}\n\n.td {\n border: 1px solid #eee !important;\n}\n\n.content-body code {\n display: inline;\n word-break: normal;\n}\n\n.updated-at {\n display: none;\n}\n\n/* (Sharif) Removed because it was hiding the Suggest Edits button. /*\n/* (Original) Hide \"Ask a question\" button on Discussion forum */\n/*\n#content-head a {\n display: none;\n}\n*/\n\n/* Give images just a *little* more of a margin */\nimg {\n margin-top: 24px;\n margin-bottom: 24px;\n}\n\n/* Fixes the subpage text color when the background is red */\na.subpage.active .link-title {\n color: white !important;\n}\n\n/* Give glossary items a RC theme */\n.glossary-item.highlight {\n color: #4449c3;\n border-bottom: 1px dashed #4449c3;\n}\n\n/* Change color of top boarder */\n.theme-line header#hub-header #header-top {\n border-bottom-color: #FFFFFF;\n}\n\n/* Style for doc header */\nh1 {\n color: #292929 !important;\n font-weight: 800;\n font-size: 28px;\n font-family: 'Open Sans', sans-serif !important;\n}\n\n/* Fixing header font sizes and weights, as well as spacing */\n.heading-1 .heading-text {\n margin-top: 8px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 22px;\n font-weight: 800;\n}\n\n.heading-2 .heading-text {\n margin-top: 8px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 18px;\n font-weight: 600;\n}\n\n.heading-3 .heading-text {\n margin-top: 20px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 16px;\n font-weight: 600;\n}\n\n.heading-4 .heading-text {\n margin-top: 10px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 16px;\n font-weight: 600;\n}\n\n.heading-5 .heading-text {\n margin-top: 20px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 14px;\n font-weight: 600;\n}\n\n.heading-6 .heading-text {\n margin-top: 20px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Adjusting paragraph styles */\np {\n display: block;\n margin-bottom: 0px;\n margin-top: 0;\n font-size: 15px;\n font-family: 'Open Sans', sans-serif !important;\n color: #292929;\n}\n\n/* Fixing bullet point style to match paragraph */\n.field-description li,\n.markdown-body li {\n font-size: 15px !important;\n color: #292929;\n font-family: 'Open Sans', sans-serif !important;\n}\n\n/* ReadMe is redesigning their docs and some default \nsettings will override the link typography under \"Theme Editor\".\nThis code snippet will override link colors if our project gets\nthe new redesign.\n.field-description a, .markdown-body a {\ncolor: #df434b !important;\n}\n*/\n\n/* For buttons under \"See it in action\" */\n.button-text {\n padding: 0px 22px 0px 0px;\n border-width: 0px;\n background-color: transparent;\n background-image: url(\"https://assets-global.website-files.com/60706bf8c762975d9275ea4c/6070a422148280456aaf1c39_Group%2051.svg\");\n background-position: 100% 50%;\n background-size: auto;\n background-repeat: no-repeat;\n transition: all 400ms ease;\n text-decoration: none;\n color: #df434b;\n line-height: 16px;\n font-weight: 700;\n margin-right: 15px;\n border: 3px solid transparent;\n}\n\n/* Hovering will move button up */\n.button-text:hover {\n position: relative;\n bottom: 3px;\n}\n\n/* Buttons for links ('text here ->') */\n.button-text-links {\n padding: 0px 22px 0px 0px;\n border-width: 0px;\n background-color: transparent;\n background-image: url(\"https://assets-global.website-files.com/60706bf8c762975d9275ea4c/6070a422148280456aaf1c39_Group%2051.svg\");\n background-position: 100% 50%;\n background-size: auto;\n background-repeat: no-repeat;\n transition: all 400ms ease;\n text-decoration: none;\n color: #df434b;\n line-height: 16px;\n font-weight: 700;\n margin-right: 15px;\n border: 3px solid transparent;\n}\n\n/* Hovering will push arrow to the right */\n.button-text-links:hover {\n padding-right: 30px;\n position: relative;\n}\n\n.field-description li,\n.markdown-body li {\n font-size: 13px;\n color: #292929;\n font-family: 'Open Sans', sans-serif !important;\n}\n\n/* redesign updates 11/24/2021 */\n\nhtml.useReactApp .rm-Header {\n --header-logo-height: 40px;\n --Header-border-width: 0px;\n --Header-background: #f6f7f8;\n --Header-button-hover: #f6f7f8;\n}\n\nhtml.useReactApp .rm-Sidebar {\n --Sidebar-link-color: #ffffff;\n --Sidebar-link-background: #4449c3;\n\n /* Sometimes the statuspage alert covered sections of the\n \tsidebar, so this just adds some extra padding\n */\n padding-bottom: 120px;\n\n}\n\nhtml.useReactApp .rm-Header .rm-Logo img {\n margin-bottom: 24px;\n}\n\nhtml.useReactApp .rm-Header-top {\n background: #ffffff;\n}\n\nhtml.useReactApp .rm-Guides #updated-at,\nhtml.useReactApp #updated-at {\n padding-top: 60px;\n}\n\n/* there's some kind of bug in the new ReadMe where in the Search List, \nthe first element's background jitters even when you're selecting a different \nelement and this is my attempt to make it less noticeable */\n\nhtml.useReactApp .rm-Header .SearchResults-list>a:active,\nhtml.useReactApp .rm-Header .SearchResults-list>a:focus {\n background-color: inherit;\n color: inherit;\n}\n\n/* below trying to remove the obnoxious focus, active effects. can be removed\nif this is not desired */\n\nhtml.useReactApp .rm-Header-top .rm-Logo:active,\nhtml.useReactApp .rm-Header-top .rm-Logo:focus,\nhtml.useReactApp .rm-Header-top-link.Button:active,\nhtml.useReactApp .rm-Header-top-link.Button:focus,\nhtml.useReactApp .rm-Header-bottom-link.Button:active,\nhtml.useReactApp .rm-Header-bottom-link.Button:focus {\n box-shadow: none;\n background: transparent;\n border-color: transparent;\n}\n\nhtml.useReactApp .rm-Header-top-link.Button:hover,\nhtml.useReactApp .rm-Header-bottom-link.Button:hover {\n background: rgba(0, 0, 0, 0.15);\n box-shadow: none;\n border-color: transparent;\n}\n\n/* mobile menu links */\nhtml.useReactApp .rm-Flyout a:hover,\nhtml.useReactApp .rm-Flyout a:active,\nhtml.useReactApp .rm-Flyout a:focus {\n box-shadow: none;\n border-color: transparent;\n}\n\n/* mobile menu dropdown */\nhtml.useReactApp .rm-Header-top .icon-menu:hover,\nhtml.useReactApp .rm-Header-top .icon-menu:active,\nhtml.useReactApp .rm-Header-top .icon-menu:focus,\nhtml.useReactApp .rm-Flyout .Select_md:hover,\nhtml.useReactApp .rm-Flyout .Select_md:active,\nhtml.useReactApp .rm-Flyout .Select_md:focus {\n box-shadow: none;\n border-color: transparent;\n}\n\nhtml.useReactApp .Button_graphite_text:not(:disabled):active,\nhtml.useReactApp .Button_graphite_text:not(:disabled):focus {\n box-shadow: none;\n border-color: transparent;\n}\n\nhtml.useReactApp .App .rm-Guides .heading:focus-within,\nhtml.useReactApp .App .rm-ReferenceMain .heading:focus-within,\nhtml.useReactApp .App .rm-Changelog .heading:focus-within {\n outline: 0px;\n}\n\nspan.img img {\n margin-top: 0px;\n margin-bottom: 0px;\n}\n\n/* START - redesign updates 12/9/2022 Ryan Kotzebue */\nhr.landing-divider-small {\n margin: 30px 0;\n border-width: 0 !important;\n}\n\na.cta {\n background: #4449c3;\n border: 1px solid rgb(104, 117, 217);\n color: white;\n font-size: 16px;\n border-radius: 6px;\n padding: 12px 12px;\n text-decoration: none !important;\n transform 400ms ease 0s;\n}\n\na.cta:hover {\n background: rgb(87, 108, 219);\n border: 1px solid rgb(81, 94, 189);\n}\n\n\nul.ctas {\n grid-auto-rows: 1fr;\n display: grid;\n list-style: none;\n gap: 30px;\n margin: 0;\n padding: 0;\n}\n\nsection.two-column ul.ctas {\n grid-template-columns: repeat(2, 1fr);\n}\n\nsection.three-column ul.ctas {\n grid-template-columns: repeat(3, 1fr);\n}\n\nul.ctas li {\n margin: 0;\n padding: 0;\n display: flex;\n border: 1px solid rgb(240, 241, 255);\n background: rgb(240, 241, 255);\n border-radius: 5px;\n transition: background 200ms ease 0s, color 200ms ease 0s, box-shadow 200ms ease 0s, border 200ms\n}\n\nul.ctas li a {\n padding: 10px;\n text-decoration: none !important;\n color: #3d3d3d;\n transform: 400ms ease 0s;\n}\n\nul.ctas li:hover {\n background: rgb(209, 214, 255);\n border: 1px solid rgb(209, 214, 255);\n}\n\nul.ctas li a div.name {\n font-size: var(--markdown-title-size, 1.25em);\n font-weight: var(--markdown-title-weight, 600);\n color: #4449c3;\n}\n\[email protected] only screen and (max-width:1029px) {\n\n section.two-column ul.ctas,\n section.three-column ul.ctas {\n grid-template-columns: repeat(1, 1fr) !important;\n }\n\n}\n\n/* END - redesign updates 12/9/2022 */\n\n/* Dark Mode fixes */\n[data-color-mode=\"dark\"] .field-description a[href],\n[data-color-mode=\"dark\"] .field-description a:not([href=\"\"]),\n[data-color-mode=\"dark\"] .markdown-body a[href],\n[data-color-mode=\"dark\"] .markdown-body a:not([href=\"\"]) {\n color: #F2545B !important;\n}\n\n\n[data-color-mode=\"dark\"] .rm-Header {\n --Header-background: transparent!important;\n}\n\n[data-color-mode=\"dark\"] .rm-Header-top {\n background: transparent!important;\n}\n\n[data-color-mode=\"dark\"] .rm-Header-bottom {\n background: transparent!important;\n}\n\n[data-color-mode=\"dark\"] a {\n color: rgba(255, 255, 255, 0.95)!important;\n}\n\n[data-color-mode=\"dark\"] p {\n color: rgba(255, 255, 255, 0.75)!important;\n}\n\n[data-color-mode=\"dark\"] .heading-1 .heading-text,\n[data-color-mode=\"dark\"] .heading-2 .heading-text,\n[data-color-mode=\"dark\"] .heading-3 .heading-text,\n[data-color-mode=\"dark\"] .heading-4 .heading-text,\n[data-color-mode=\"dark\"] .heading-5 .heading-text,\n[data-color-mode=\"dark\"] .heading-6 .heading-text {\n color: white!important;\n}\n\n[data-color-mode=\"dark\"] h1 {\n color: white!important;\n}\n\n[data-color-mode=\"dark\"] ul li {\n color: rgba(255, 255, 255, 0.75)!important;\n}\n\n[data-color-mode=\"dark\"] .content-body img:not(.lightbox-img) {\n opacity: 0.75;\n}\n\n[data-color-mode=\"dark\"] body {\n\t-moz-osx-font-smoothing: grayscale;\n\tfont-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\", \"Roboto\", \"Oxygen-Sans\", \"Ubuntu\",\"Cantarell\",\"Helvetica Neue\", \"sans-serif\";\n}\n\n[data-color-mode=\"dark\"] .rm-Header-top-link.Button:hover,\n[data-color-mode=\"dark\"] .rm-Header-bottom-link.Button:hover {\n background: rgba(255, 255, 255, 0.15)!important;\n}\n\n[data-color-mode=\"dark\"] .field-description li,\n[data-color-mode=\"dark\"] .markdown-body li {\n color: rgba(255, 255, 255, 0.75)!important;\n}\n\n\n/* End Dark Mode */","stylesheet":"","favicon":["https://files.readme.io/93e6e4e-small-fav.png","fav.png",32,32,"#f47076","https://files.readme.io/0472abe-fav.png"],"logo_white_use":false,"logo_white":[],"logo":["https://files.readme.io/d763f0d-small-logo_red_7_1.png","logo_red (7) 1.png",376,80,"#f1545b","https://files.readme.io/576e3dd-logo_red_7_1.png"],"promos":[{"extras":{"type":"buttons","buttonPrimary":"get-started","buttonSecondary":"reference"},"title":"Build With RevenueCat","text":"Build a customized mobile subscription business with RevenueCat. We do the heavy lifting of normalizing subscribers from any source and maintain a single source of truth for subscription status, so you can get back to building your app.\n\nRevenueCat is a powerful, secure, reliable, and free to use in-app purchase server with global support. All you need to get started is an API key.","_id":"5ae768fde9566300035d794f"}],"body":{"style":"none"},"header":{"img_pos":"tl","img_size":"auto","img":[],"style":"solid"},"typography":{"tk_body":"","tk_headline":"","tk_key":"","typekit":false,"body":"Open+Sans:400:sans-serif","headline":"Open+Sans:400:sans-serif"},"colors":{"body_highlight":"#df434b","header_text":"","main_alt":"","main":"#4449c3","highlight":"","custom_login_link_color":""},"main_body":{"type":"links"},"categoriesAsDropdown":false,"hide_logo":false,"sticky":false,"landing":true,"overlay":"triangles","notheme":false,"theme":"line","link_logo_to_url":true,"referenceLayout":"row","childrenAsPills":false,"splitReferenceDocs":false,"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"subheaderStyle":"links","showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":false,"colorScheme":"auto"},"child":{"_id":"5ae768fde9566300035d794e","appearance":{"nextStepsLabel":"","hideTableOfContents":false,"showVersion":false,"html_hidelinks":false,"global_landing_page":{"redirect":"","html":""},"html_footer_meta":"","html_head":"\n\n","html_footer":"","html_body":"","html_promo":"","javascript_hub2":"// Redirect hack so we don't accidentally leak the underlying readme url\nvar wl = window.location;\nif (wl.hostname == \"docs-origin.revenuecat.com\" && ! wl.pathname.startsWith('/suggested-edits/') && ! wl.pathname.startsWith('/edit/') && wl.search.indexOf('auth_token') < 0 && document.cookie.indexOf('docs_redirect=off') < 0) {\n window.location.replace(\"https://www.revenuecat.com\" + wl.pathname + wl.search);\n}","javascript":"","stylesheet_hub2":"/*.markdown-body h2 { font-weight:700; }*/\n\nhtml:not(.useReactApp) nav#hub-sidebar>ul>li>a.active,\nhtml:not(.useReactApp) nav#hub-sidebar ul>li.subnav-expanded>a {\n color: white !important;\n}\n\n.table {\n border-collapse: collapse;\n}\n\n.td {\n border: 1px solid #eee !important;\n}\n\n.content-body code {\n display: inline;\n word-break: normal;\n}\n\n.updated-at {\n display: none;\n}\n\n/* (Sharif) Removed because it was hiding the Suggest Edits button. /*\n/* (Original) Hide \"Ask a question\" button on Discussion forum */\n/*\n#content-head a {\n display: none;\n}\n*/\n\n/* Give images just a *little* more of a margin */\nimg {\n margin-top: 24px;\n margin-bottom: 24px;\n}\n\n/* Fixes the subpage text color when the background is red */\na.subpage.active .link-title {\n color: white !important;\n}\n\n/* Give glossary items a RC theme */\n.glossary-item.highlight {\n color: #4449c3;\n border-bottom: 1px dashed #4449c3;\n}\n\n/* Change color of top boarder */\n.theme-line header#hub-header #header-top {\n border-bottom-color: #FFFFFF;\n}\n\n/* Style for doc header */\nh1 {\n color: #292929 !important;\n font-weight: 800;\n font-size: 28px;\n font-family: 'Open Sans', sans-serif !important;\n}\n\n/* Fixing header font sizes and weights, as well as spacing */\n.heading-1 .heading-text {\n margin-top: 8px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 22px;\n font-weight: 800;\n}\n\n.heading-2 .heading-text {\n margin-top: 8px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 18px;\n font-weight: 600;\n}\n\n.heading-3 .heading-text {\n margin-top: 20px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 16px;\n font-weight: 600;\n}\n\n.heading-4 .heading-text {\n margin-top: 10px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 16px;\n font-weight: 600;\n}\n\n.heading-5 .heading-text {\n margin-top: 20px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 14px;\n font-weight: 600;\n}\n\n.heading-6 .heading-text {\n margin-top: 20px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Adjusting paragraph styles */\np {\n display: block;\n margin-bottom: 0px;\n margin-top: 0;\n font-size: 15px;\n font-family: 'Open Sans', sans-serif !important;\n color: #292929;\n}\n\n/* Fixing bullet point style to match paragraph */\n.field-description li,\n.markdown-body li {\n font-size: 15px !important;\n color: #292929;\n font-family: 'Open Sans', sans-serif !important;\n}\n\n/* ReadMe is redesigning their docs and some default \nsettings will override the link typography under \"Theme Editor\".\nThis code snippet will override link colors if our project gets\nthe new redesign.\n.field-description a, .markdown-body a {\ncolor: #df434b !important;\n}\n*/\n\n/* For buttons under \"See it in action\" */\n.button-text {\n padding: 0px 22px 0px 0px;\n border-width: 0px;\n background-color: transparent;\n background-image: url(\"https://assets-global.website-files.com/60706bf8c762975d9275ea4c/6070a422148280456aaf1c39_Group%2051.svg\");\n background-position: 100% 50%;\n background-size: auto;\n background-repeat: no-repeat;\n transition: all 400ms ease;\n text-decoration: none;\n color: #df434b;\n line-height: 16px;\n font-weight: 700;\n margin-right: 15px;\n border: 3px solid transparent;\n}\n\n/* Hovering will move button up */\n.button-text:hover {\n position: relative;\n bottom: 3px;\n}\n\n/* Buttons for links ('text here ->') */\n.button-text-links {\n padding: 0px 22px 0px 0px;\n border-width: 0px;\n background-color: transparent;\n background-image: url(\"https://assets-global.website-files.com/60706bf8c762975d9275ea4c/6070a422148280456aaf1c39_Group%2051.svg\");\n background-position: 100% 50%;\n background-size: auto;\n background-repeat: no-repeat;\n transition: all 400ms ease;\n text-decoration: none;\n color: #df434b;\n line-height: 16px;\n font-weight: 700;\n margin-right: 15px;\n border: 3px solid transparent;\n}\n\n/* Hovering will push arrow to the right */\n.button-text-links:hover {\n padding-right: 30px;\n position: relative;\n}\n\n.field-description li,\n.markdown-body li {\n font-size: 13px;\n color: #292929;\n font-family: 'Open Sans', sans-serif !important;\n}\n\n/* redesign updates 11/24/2021 */\n\nhtml.useReactApp .rm-Header {\n --header-logo-height: 40px;\n --Header-border-width: 0px;\n --Header-background: #f6f7f8;\n --Header-button-hover: #f6f7f8;\n}\n\nhtml.useReactApp .rm-Sidebar {\n --Sidebar-link-color: #ffffff;\n --Sidebar-link-background: #4449c3;\n\n /* Sometimes the statuspage alert covered sections of the\n \tsidebar, so this just adds some extra padding\n */\n padding-bottom: 120px;\n\n}\n\nhtml.useReactApp .rm-Header .rm-Logo img {\n margin-bottom: 24px;\n}\n\nhtml.useReactApp .rm-Header-top {\n background: #ffffff;\n}\n\nhtml.useReactApp .rm-Guides #updated-at,\nhtml.useReactApp #updated-at {\n padding-top: 60px;\n}\n\n/* there's some kind of bug in the new ReadMe where in the Search List, \nthe first element's background jitters even when you're selecting a different \nelement and this is my attempt to make it less noticeable */\n\nhtml.useReactApp .rm-Header .SearchResults-list>a:active,\nhtml.useReactApp .rm-Header .SearchResults-list>a:focus {\n background-color: inherit;\n color: inherit;\n}\n\n/* below trying to remove the obnoxious focus, active effects. can be removed\nif this is not desired */\n\nhtml.useReactApp .rm-Header-top .rm-Logo:active,\nhtml.useReactApp .rm-Header-top .rm-Logo:focus,\nhtml.useReactApp .rm-Header-top-link.Button:active,\nhtml.useReactApp .rm-Header-top-link.Button:focus,\nhtml.useReactApp .rm-Header-bottom-link.Button:active,\nhtml.useReactApp .rm-Header-bottom-link.Button:focus {\n box-shadow: none;\n background: transparent;\n border-color: transparent;\n}\n\nhtml.useReactApp .rm-Header-top-link.Button:hover,\nhtml.useReactApp .rm-Header-bottom-link.Button:hover {\n background: rgba(0, 0, 0, 0.15);\n box-shadow: none;\n border-color: transparent;\n}\n\n/* mobile menu links */\nhtml.useReactApp .rm-Flyout a:hover,\nhtml.useReactApp .rm-Flyout a:active,\nhtml.useReactApp .rm-Flyout a:focus {\n box-shadow: none;\n border-color: transparent;\n}\n\n/* mobile menu dropdown */\nhtml.useReactApp .rm-Header-top .icon-menu:hover,\nhtml.useReactApp .rm-Header-top .icon-menu:active,\nhtml.useReactApp .rm-Header-top .icon-menu:focus,\nhtml.useReactApp .rm-Flyout .Select_md:hover,\nhtml.useReactApp .rm-Flyout .Select_md:active,\nhtml.useReactApp .rm-Flyout .Select_md:focus {\n box-shadow: none;\n border-color: transparent;\n}\n\nhtml.useReactApp .Button_graphite_text:not(:disabled):active,\nhtml.useReactApp .Button_graphite_text:not(:disabled):focus {\n box-shadow: none;\n border-color: transparent;\n}\n\nhtml.useReactApp .App .rm-Guides .heading:focus-within,\nhtml.useReactApp .App .rm-ReferenceMain .heading:focus-within,\nhtml.useReactApp .App .rm-Changelog .heading:focus-within {\n outline: 0px;\n}\n\nspan.img img {\n margin-top: 0px;\n margin-bottom: 0px;\n}\n\n/* START - redesign updates 12/9/2022 Ryan Kotzebue */\nhr.landing-divider-small {\n margin: 30px 0;\n border-width: 0 !important;\n}\n\na.cta {\n background: #4449c3;\n border: 1px solid rgb(104, 117, 217);\n color: white;\n font-size: 16px;\n border-radius: 6px;\n padding: 12px 12px;\n text-decoration: none !important;\n transform 400ms ease 0s;\n}\n\na.cta:hover {\n background: rgb(87, 108, 219);\n border: 1px solid rgb(81, 94, 189);\n}\n\n\nul.ctas {\n grid-auto-rows: 1fr;\n display: grid;\n list-style: none;\n gap: 30px;\n margin: 0;\n padding: 0;\n}\n\nsection.two-column ul.ctas {\n grid-template-columns: repeat(2, 1fr);\n}\n\nsection.three-column ul.ctas {\n grid-template-columns: repeat(3, 1fr);\n}\n\nul.ctas li {\n margin: 0;\n padding: 0;\n display: flex;\n border: 1px solid rgb(240, 241, 255);\n background: rgb(240, 241, 255);\n border-radius: 5px;\n transition: background 200ms ease 0s, color 200ms ease 0s, box-shadow 200ms ease 0s, border 200ms\n}\n\nul.ctas li a {\n padding: 10px;\n text-decoration: none !important;\n color: #3d3d3d;\n transform: 400ms ease 0s;\n}\n\nul.ctas li:hover {\n background: rgb(209, 214, 255);\n border: 1px solid rgb(209, 214, 255);\n}\n\nul.ctas li a div.name {\n font-size: var(--markdown-title-size, 1.25em);\n font-weight: var(--markdown-title-weight, 600);\n color: #4449c3;\n}\n\[email protected] only screen and (max-width:1029px) {\n\n section.two-column ul.ctas,\n section.three-column ul.ctas {\n grid-template-columns: repeat(1, 1fr) !important;\n }\n\n}\n\n/* END - redesign updates 12/9/2022 */\n\n/* Dark Mode fixes */\n[data-color-mode=\"dark\"] .field-description a[href],\n[data-color-mode=\"dark\"] .field-description a:not([href=\"\"]),\n[data-color-mode=\"dark\"] .markdown-body a[href],\n[data-color-mode=\"dark\"] .markdown-body a:not([href=\"\"]) {\n color: #F2545B !important;\n}\n\n\n[data-color-mode=\"dark\"] .rm-Header {\n --Header-background: transparent!important;\n}\n\n[data-color-mode=\"dark\"] .rm-Header-top {\n background: transparent!important;\n}\n\n[data-color-mode=\"dark\"] .rm-Header-bottom {\n background: transparent!important;\n}\n\n[data-color-mode=\"dark\"] a {\n color: rgba(255, 255, 255, 0.95)!important;\n}\n\n[data-color-mode=\"dark\"] p {\n color: rgba(255, 255, 255, 0.75)!important;\n}\n\n[data-color-mode=\"dark\"] .heading-1 .heading-text,\n[data-color-mode=\"dark\"] .heading-2 .heading-text,\n[data-color-mode=\"dark\"] .heading-3 .heading-text,\n[data-color-mode=\"dark\"] .heading-4 .heading-text,\n[data-color-mode=\"dark\"] .heading-5 .heading-text,\n[data-color-mode=\"dark\"] .heading-6 .heading-text {\n color: white!important;\n}\n\n[data-color-mode=\"dark\"] h1 {\n color: white!important;\n}\n\n[data-color-mode=\"dark\"] ul li {\n color: rgba(255, 255, 255, 0.75)!important;\n}\n\n[data-color-mode=\"dark\"] .content-body img:not(.lightbox-img) {\n opacity: 0.75;\n}\n\n[data-color-mode=\"dark\"] body {\n\t-moz-osx-font-smoothing: grayscale;\n\tfont-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\", \"Roboto\", \"Oxygen-Sans\", \"Ubuntu\",\"Cantarell\",\"Helvetica Neue\", \"sans-serif\";\n}\n\n[data-color-mode=\"dark\"] .rm-Header-top-link.Button:hover,\n[data-color-mode=\"dark\"] .rm-Header-bottom-link.Button:hover {\n background: rgba(255, 255, 255, 0.15)!important;\n}\n\n[data-color-mode=\"dark\"] .field-description li,\n[data-color-mode=\"dark\"] .markdown-body li {\n color: rgba(255, 255, 255, 0.75)!important;\n}\n\n\n/* End Dark Mode */","stylesheet":"","favicon":["https://files.readme.io/93e6e4e-small-fav.png","fav.png",32,32,"#f47076","https://files.readme.io/0472abe-fav.png"],"logo_white_use":false,"logo_white":[],"logo":["https://files.readme.io/d763f0d-small-logo_red_7_1.png","logo_red (7) 1.png",376,80,"#f1545b","https://files.readme.io/576e3dd-logo_red_7_1.png"],"promos":[{"extras":{"type":"buttons","buttonPrimary":"get-started","buttonSecondary":"reference"},"title":"Build With RevenueCat","text":"Build a customized mobile subscription business with RevenueCat. We do the heavy lifting of normalizing subscribers from any source and maintain a single source of truth for subscription status, so you can get back to building your app.\n\nRevenueCat is a powerful, secure, reliable, and free to use in-app purchase server with global support. All you need to get started is an API key.","_id":"5ae768fde9566300035d794f"}],"body":{"style":"none"},"header":{"img_pos":"tl","img_size":"auto","img":[],"style":"solid"},"typography":{"tk_body":"","tk_headline":"","tk_key":"","typekit":false,"body":"Open+Sans:400:sans-serif","headline":"Open+Sans:400:sans-serif"},"colors":{"body_highlight":"#df434b","header_text":"","main_alt":"","main":"#4449c3","highlight":"","custom_login_link_color":""},"main_body":{"type":"links"},"categoriesAsDropdown":false,"hide_logo":false,"sticky":false,"landing":true,"overlay":"triangles","notheme":false,"theme":"line","link_logo_to_url":true,"referenceLayout":"row","childrenAsPills":false,"splitReferenceDocs":false,"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"subheaderStyle":"dropdown","showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":false,"colorScheme":"auto"},"custom_domain":"","childrenProjects":[],"description":"In-app subscriptions made easy","error404":"","first_page":"docs","flags":{"metrics":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"newApiExplorer":true,"stripe":false,"hideGoogleAnalytics":false,"cookieAuthentication":false,"allowXFrame":false,"speedyRender":false,"correctnewlines":false,"swagger":false,"oauth":false,"migrationSwaggerRun":false,"migrationRun":false,"hub2":true,"enterprise":true,"allow_hub2":false,"translation":true,"alwaysShowDocPublishStatus":false,"newEditor":true,"newMarkdown":false,"newMarkdownBetaProgram":true,"newMarkdownLooseMode":false,"oldMarkdown":false,"newSearch":true,"rdmdCompatibilityMode":false,"tutorials":true,"staging":false,"allowApiExplorerJsonEditor":false,"useReactApp":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"graphql":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":true,"metricsV2":true,"newEditorDash":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":false},"fullBaseUrl":"https://revenuecat.readme.io/","glossaryTerms":[{"_id":"5fe100812fd7b7003288ad37","term":"Apple Platforms","definition":"includes iOS, iPadOS, macOS, tvOS, and watchOS apps published on Apple's App Store via App Store Connect."},{"_id":"5fe100c63e8ae70025f2f4ce","term":"Google Platforms","definition":"includes any Kotlin, Java, or hybrid Android apps published on Google's Play Store."},{"_id":"61e6e6c31f4e8b0582cf1661","term":"Purchases SDK","definition":"RevenueCat's SDK for interacting with RevenueCat's API. We provide SDK's for iOS, Android, Flutter, React Native, Cordova, and Unity."},{"_id":"624db78b905874001b4ef190","term":"CustomerInfo","definition":"Also known as PurchaserInfo. \n\nContains all of the purchase and subscription data available about the user."}],"graphqlSchema":"","healthCheck":{"provider":"statusPage","settings":{"page":"d7wjfp7kgjkd","status":false,"url":""}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"internal":"","landing_bottom":[{"type":"text","alignment":"left","title":"Do More With RevenueCat","text":"Use RevenueCat to build and run nearly every aspect of your mobile subscription business.\n\n:fa-cogs: Fetch products, make purchases, and check subscription status with our open-source, native SDKs \n:fa-shopping-cart: Host and configure products remotely from our dashboard \n:fa-line-chart: Analyze key metrics on the health of your mobile subscription business in one place \n:fa-user: See user-level transaction histories, lifetime value, and grant promotional subscriptions . \n:fa-exchange: Get notified of realtime events through webhooks and integrations directly into your existing systems"},{"type":"text","alignment":"left","title":"Start Building With RevenueCat"},{"type":"docs","alignment":"left","pageType":"Documentation"}],"metrics":{"thumbsEnabled":true,"enabled":false,"monthlyLimit":0,"planLimit":20000000,"realtime":{"dashEnabled":false,"hubEnabled":false}},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"changelog":false,"discuss":false,"suggested_edits":true,"logs":false,"custompages":false,"tutorials":false,"graphql":false},"name":"RevenueCat","nav_names":{"discuss":"","reference":"REST API","docs":"Documentation","changelog":"","tutorials":""},"oauth_url":"","plan":"enterprise","planOverride":"enterprise","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":false,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":false,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":false,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":false,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"percentScore":62.5,"totalScore":160},"reCaptchaSiteKey":"6LdtW_UZAAAAADi9uAa6WbJsMZD1zc0r0LKHTxJP","stable":{"_id":"61e6d1c8dc6456005396886c","version":"4.0","version_clean":"4.0.0","codename":"iOS 4.x, Android 5.x, Amazon Support","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["61e6d1c8dc645600539687c7","61e6d1c8dc645600539687c8","61e6d1c8dc645600539687c9","61e6d1c8dc645600539687ca","61e6d1c8dc645600539687cb","61e6d1c8dc645600539687cc","61e6d1c8dc645600539687cd","61e6d1c8dc645600539687ce","61e6d1c8dc645600539687cf","61e6d1c8dc645600539687d0","61e6d1c8dc645600539687d1","6296a0f4e21cc500a7f5df1f","62b2014ffd726300996f8aca","62b23dcd24a8c1001479d1ac","62b35551d55362051e1c5316","62d9671bff2a2d0061dce3e5","62d967408cd9e7006a49f56a","62d96758c44ed105698767e8","62d967a30e65dd095900c7d2","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","62e3ec7168457e069b3e8676","632c1aaadc170100336dc48b","634873f308753d004c821577","6376b426081e400003bac6ad"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"619e8e1a86178b0080bf0e98","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"},"subdomain":"revenuecat","subpath":"","topnav":{"edited":true,"right":[{"type":"url","text":"Sign up","url":"https://app.revenuecat.com/signup"},{"type":"url","url":"https://app.revenuecat.com/login","text":"Log in"}],"left":[{"type":"docs"},{"type":"reference"},{"type":"url","text":"Samples","url":"https://www.revenuecat.com/docs/sample-apps"},{"type":"url","text":"SDK Reference","url":"https://www.revenuecat.com/docs/reference"},{"type":"url","text":"Blog","url":"https://www.revenuecat.com/blog"},{"type":"url","text":"Get Help","url":"https://revenuecat.com/support"}],"bottom":[]},"translate":{"languages":[],"provider":"transifex","key_public":"","key_secret":"","org_name":"","project_name":"","show_widget":false},"url":"https://www.revenuecat.com/","versions":[{"_id":"5bfb015b11c8eb003466632e","project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5b1d9adbd3da190003327667","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5bfb015b11c8eb0034666315","5af1c9a461419c00037b8760","5bfb015b11c8eb0034666316","5af1da772aba1d000381cc03","5bfb015b11c8eb0034666317","5bfb015b11c8eb0034666318","5bfb015b11c8eb0034666319","5bfc797c481ff200234541fb","6376b426081e400003bac6ab"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"1.1.0","version":"1.1"},{"_id":"5c1044f3179efe00504b607c","project":"5ae768fde9566300035d794e","__v":8,"forked_from":"5bfb015b11c8eb003466632e","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5c1044f3179efe00504b6062","5af1c9a461419c00037b8760","5c1044f3179efe00504b6063","5af1da772aba1d000381cc03","5c1044f3179efe00504b6064","5c1044f3179efe00504b6065","5c1044f3179efe00504b6066","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5c10590b128a900038072bd0","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5c1168af1a911e0061902ccd","5c1299b36a3e7a019f96f380","5c4243b123ab1b000e460c83","5c4b47b283d620004988ef8f","6376b426081e400003bac6a9"],"is_deprecated":true,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"1.2.0","version":"1.2"},{"_id":"5c50bb7b21cd6400512fd55f","project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5c2eac22bad1380144ad0297","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5c50bb7b21cd6400512fd52d","5af1c9a461419c00037b8760","5c50bb7b21cd6400512fd52e","5af1da772aba1d000381cc03","5c50bb7b21cd6400512fd52f","5c1044f3179efe00504b6065","5c50bb7b21cd6400512fd530","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5c50bb7b21cd6400512fd531","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5c50bb7b21cd6400512fd532","5c50bb7b21cd6400512fd533","5c50bb7b21cd6400512fd534","5c50bb7b21cd6400512fd535","5c50bb7b21cd6400512fd536","5c53a6e8d090a9000e8bc945","6376b426081e400003bac6b0"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"2.0.0","version":"2.0"},{"_id":"5c91244a4e7eb9014355265f","project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5c50bb7b21cd6400512fd55f","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5c91244a4e7eb90143552625","5af1c9a461419c00037b8760","5c91244a4e7eb90143552626","5af1da772aba1d000381cc03","5c91244a4e7eb90143552627","5c1044f3179efe00504b6065","5c91244a4e7eb90143552628","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5c91244a4e7eb90143552629","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5c91244a4e7eb9014355262a","5c91244a4e7eb9014355262b","5c91244a4e7eb9014355262c","5c91244a4e7eb9014355262d","5c91244a4e7eb9014355262e","5c91244a4e7eb9014355262f","5cba312ea1039400198f3f5b","6376b426081e400003bac6a7"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"2.1.0","version":"2.1"},{"_id":"5cd9e7cd912ece0039e98f45","project":"5ae768fde9566300035d794e","__v":2,"forked_from":"5c91244a4e7eb9014355265f","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5cd9e7cd912ece0039e98f03","5af1c9a461419c00037b8760","5cd9e7cd912ece0039e98f04","5af1da772aba1d000381cc03","5cd9e7cd912ece0039e98f05","5c1044f3179efe00504b6065","5cd9e7cd912ece0039e98f06","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5cd9e7cd912ece0039e98f07","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5cd9e7cd912ece0039e98f08","5cd9e7cd912ece0039e98f09","5cd9e7cd912ece0039e98f0a","5cd9e7cd912ece0039e98f0b","5cd9e7cd912ece0039e98f0c","5cd9e7cd912ece0039e98f0d","5cd9e7cd912ece0039e98f0e","5ce6e1f286e9e300246c69c2","5d4cedf6403d100064742bf7","6376b426081e400003bac6ae"],"is_deprecated":true,"is_hidden":false,"is_beta":false,"is_stable":false,"codename":"","version_clean":"2.3.0","version":"2.3"},{"_id":"5d8a7036c05fe6004c0bda01","project":"5ae768fde9566300035d794e","__v":4,"forked_from":"5cd9e7cd912ece0039e98f45","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5d8a7036c05fe6004c0bd9b4","5af1c9a461419c00037b8760","5d8a7036c05fe6004c0bd9b5","5af1da772aba1d000381cc03","5d8a7036c05fe6004c0bd9b6","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5d8a7036c05fe6004c0bd9b8","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5d8a7036c05fe6004c0bd9b9","5d8a7036c05fe6004c0bd9ba","5d8a7036c05fe6004c0bd9bb","5d8a7036c05fe6004c0bd9bc","5d8a7036c05fe6004c0bd9bd","5d8a7036c05fe6004c0bd9be","5d8a7036c05fe6004c0bd9bf","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6ac"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"3.0.0","version":"3.0"},{"_id":"5f601d207f086b0012c9087e","version":"3.1","version_clean":"3.1.0","codename":"iOS <3.12.0, Android <4.3.0, Legacy Aliasing","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":true,"categories":["5f601d207f086b0012c90806","5af1c9a461419c00037b8760","5f601d207f086b0012c90807","5af1da772aba1d000381cc03","5f601d207f086b0012c90808","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5f601d207f086b0012c90809","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5f601d207f086b0012c9080a","5f601d207f086b0012c9080b","5f601d207f086b0012c9080c","5f601d207f086b0012c9080d","5f601d207f086b0012c9080e","5f601d207f086b0012c9080f","5f601d207f086b0012c90810","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6aa"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5d8a7036c05fe6004c0bda01","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"60898dcfe14b91000f19a45c","version":"3.2","version_clean":"3.2.0","codename":"Identity Changes","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["60898dcee14b91000f19a3cb","5af1c9a461419c00037b8760","60898dcee14b91000f19a3cc","5af1da772aba1d000381cc03","60898dcee14b91000f19a3cd","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","60898dcee14b91000f19a3ce","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","60898dcee14b91000f19a3cf","60898dcee14b91000f19a3d0","60898dcee14b91000f19a3d1","60898dcee14b91000f19a3d2","60898dcee14b91000f19a3d3","60898dcee14b91000f19a3d4","60898dcee14b91000f19a3d5","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6b1"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5f601d207f086b0012c9087e","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"619da119e65711004f6516d0","version":"3.2.1","version_clean":"3.2.1","codename":"API Reference Link fixes","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["619da119e65711004f651633","5af1c9a461419c00037b8760","619da119e65711004f651634","5af1da772aba1d000381cc03","619da119e65711004f651635","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","619da119e65711004f651636","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","619da119e65711004f651637","619da119e65711004f651638","619da119e65711004f651639","619da119e65711004f65163a","619da119e65711004f65163b","619da119e65711004f65163c","619da119e65711004f65163d","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6a8"],"project":"5ae768fde9566300035d794e","__v":0,"forked_from":"60898dcfe14b91000f19a45c","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"619e8e1a86178b0080bf0e98","version":"3.3","version_clean":"3.3.0","codename":"iOS >=3.12.0, Android >=4.3.0, Log In Changes","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["619e8e1a86178b0080bf0dfc","5af1c9a461419c00037b8760","619e8e1a86178b0080bf0dfd","5af1da772aba1d000381cc03","619e8e1a86178b0080bf0dfe","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","619e8e1a86178b0080bf0dff","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","619e8e1a86178b0080bf0e00","619e8e1a86178b0080bf0e01","619e8e1a86178b0080bf0e02","619e8e1a86178b0080bf0e03","619e8e1a86178b0080bf0e04","619e8e1a86178b0080bf0e05","619e8e1a86178b0080bf0e06","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6af"],"project":"5ae768fde9566300035d794e","__v":3,"forked_from":"619da119e65711004f6516d0","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"61e6d1c8dc6456005396886c","version":"4.0","version_clean":"4.0.0","codename":"iOS 4.x, Android 5.x, Amazon Support","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["61e6d1c8dc645600539687c7","61e6d1c8dc645600539687c8","61e6d1c8dc645600539687c9","61e6d1c8dc645600539687ca","61e6d1c8dc645600539687cb","61e6d1c8dc645600539687cc","61e6d1c8dc645600539687cd","61e6d1c8dc645600539687ce","61e6d1c8dc645600539687cf","61e6d1c8dc645600539687d0","61e6d1c8dc645600539687d1","6296a0f4e21cc500a7f5df1f","62b2014ffd726300996f8aca","62b23dcd24a8c1001479d1ac","62b35551d55362051e1c5316","62d9671bff2a2d0061dce3e5","62d967408cd9e7006a49f56a","62d96758c44ed105698767e8","62d967a30e65dd095900c7d2","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","62e3ec7168457e069b3e8676","632c1aaadc170100336dc48b","634873f308753d004c821577","6376b426081e400003bac6ad"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"619e8e1a86178b0080bf0e98","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"},{"_id":"63b71b01ab066b0061bf9545","version":"4.0.1","version_clean":"4.0.1","codename":"refactor-get-started","is_stable":false,"is_beta":true,"is_hidden":true,"is_deprecated":false,"categories":["63b71b01ab066b0061bf945e","63b71b01ab066b0061bf945f","63b71b01ab066b0061bf9460","63b71b01ab066b0061bf9461","63b71b01ab066b0061bf9462","61e6d1c8dc645600539687cc","63b71b01ab066b0061bf9463","63b71b01ab066b0061bf9464","63b71b01ab066b0061bf9465","63b71b01ab066b0061bf9466","61e6d1c8dc645600539687d1","63b71b01ab066b0061bf9469","63b71b01ab066b0061bf946a","63b71b01ab066b0061bf946b","63b71b01ab066b0061bf946c","63b71b01ab066b0061bf946d","63b71b01ab066b0061bf946e","63b71b01ab066b0061bf946f","63b71b01ab066b0061bf9470","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","63b71b01ab066b0061bf9471","632c1aaadc170100336dc48b","63b71b01ab066b0061bf9472","6376b426081e400003bac6ad","63b71b01ab066b0061bf9636"],"project":"5ae768fde9566300035d794e","__v":0,"forked_from":"61e6d1c8dc6456005396886c","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"6421b235414b45007a0bd295","version":"5.0","version_clean":"5.0.0","codename":"Android 6.x, new Google Subscription Model","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["6421b235414b45007a0bd1a4","6421b235414b45007a0bd1a5","6421b235414b45007a0bd1a6","6421b235414b45007a0bd1a7","6421b235414b45007a0bd1a8","61e6d1c8dc645600539687cc","6421b235414b45007a0bd1a9","6421b235414b45007a0bd1aa","6421b235414b45007a0bd1ab","6421b235414b45007a0bd1ac","61e6d1c8dc645600539687d1","6421b235414b45007a0bd1af","6421b235414b45007a0bd1b0","6421b235414b45007a0bd1b1","6421b235414b45007a0bd1b2","6421b235414b45007a0bd1b3","6421b235414b45007a0bd1b4","6421b235414b45007a0bd1b5","6421b235414b45007a0bd1b6","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","6421b235414b45007a0bd1b7","632c1aaadc170100336dc48b","6421b235414b45007a0bd1b8","6376b426081e400003bac6ad","6421b235414b45007a0bd297"],"project":"5ae768fde9566300035d794e","__v":0,"forked_from":"61e6d1c8dc6456005396886c","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"}],"variableDefaults":[{"source":"security","_id":"63c7b2b10cdff400910d22ad","name":"Authorization","type":"apiKey","default":"REVENUECAT_API_KEY","apiSetting":"61e6d1c8dc645600539687c6"}],"webhookEnabled":false},"custom_domain":"docs-origin.revenuecat.com","childrenProjects":[],"description":"In-app subscriptions made easy","error404":"","first_page":"docs","flags":{"allowApiExplorerJsonEditor":false,"allowDarkMode":true,"alwaysShowDocPublishStatus":false,"allowXFrame":false,"correctnewlines":false,"dashReact":true,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"enterprise":true,"graphql":false,"migrationRun":false,"migrationSwaggerRun":false,"myDevelopers":false,"newEditor":true,"newEditorDash":true,"newMarkdownBetaProgram":true,"newSearch":true,"oauth":false,"oldMarkdown":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":true,"speedyRender":false,"staging":false,"star":false,"superHub":false,"swagger":false,"translation":true,"useReactApp":true,"useReactGLP":true,"metrics":false,"newApiExplorer":true,"stripe":false,"hideGoogleAnalytics":false,"cookieAuthentication":false,"hub2":true,"allow_hub2":false,"newMarkdown":false,"newMarkdownLooseMode":false,"tutorials":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"allowReferenceUpgrade":true,"metricsV2":true,"enableRealtimeExperiences":false,"forceDarkMode":false,"personalizedDocs":false},"fullBaseUrl":"https://docs-origin.revenuecat.com/","glossaryTerms":[{"_id":"5fe100812fd7b7003288ad37","term":"Apple Platforms","definition":"includes iOS, iPadOS, macOS, tvOS, and watchOS apps published on Apple's App Store via App Store Connect."},{"_id":"5fe100c63e8ae70025f2f4ce","term":"Google Platforms","definition":"includes any Kotlin, Java, or hybrid Android apps published on Google's Play Store."},{"_id":"61e6e6c31f4e8b0582cf1661","term":"Purchases SDK","definition":"RevenueCat's SDK for interacting with RevenueCat's API. We provide SDK's for iOS, Android, Flutter, React Native, Cordova, and Unity."},{"_id":"624db78b905874001b4ef190","term":"CustomerInfo","definition":"Also known as PurchaserInfo. \n\nContains all of the purchase and subscription data available about the user."}],"graphqlSchema":"","healthCheck":{"provider":"statusPage","settings":{"page":"d7wjfp7kgjkd","status":false,"url":""}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"internal":"","landing_bottom":[{"type":"text","alignment":"left","title":"Do More With RevenueCat","text":"Use RevenueCat to build and run nearly every aspect of your mobile subscription business.\n\n:fa-cogs: Fetch products, make purchases, and check subscription status with our open-source, native SDKs \n:fa-shopping-cart: Host and configure products remotely from our dashboard \n:fa-line-chart: Analyze key metrics on the health of your mobile subscription business in one place \n:fa-user: See user-level transaction histories, lifetime value, and grant promotional subscriptions . \n:fa-exchange: Get notified of realtime events through webhooks and integrations directly into your existing systems"},{"type":"text","alignment":"left","title":"Start Building With RevenueCat"},{"type":"docs","alignment":"left","pageType":"Documentation"}],"metrics":{"thumbsEnabled":true,"enabled":false,"monthlyLimit":0,"planLimit":20000000,"realtime":{"dashEnabled":false,"hubEnabled":false}},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"changelog":false,"discuss":false,"suggested_edits":true,"logs":false,"custompages":false,"tutorials":false,"graphql":false},"name":"RevenueCat","nav_names":{"discuss":"","reference":"REST API","docs":"Documentation","changelog":"","tutorials":""},"oauth_url":"","plan":"enterprise","planOverride":"business","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":false,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":false,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":false,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":false,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"percentScore":62.5,"totalScore":160},"reCaptchaSiteKey":"6LdtW_UZAAAAADi9uAa6WbJsMZD1zc0r0LKHTxJP","siblings":[{"_id":"5ae768fde9566300035d794e","owner":"5ae76695b5488e0003ad27d5","nav_names":{"discuss":"","reference":"REST API","docs":"Documentation","changelog":"","tutorials":""},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"changelog":false,"discuss":false,"suggested_edits":true,"logs":false,"custompages":false,"tutorials":false,"graphql":false},"internal":"","is_active":true,"description":"In-app subscriptions made easy","subdomain":"revenuecat","name":"RevenueCat","stable":"61e6d1c8dc6456005396886c","subpath":""}],"stable":{"_id":"61e6d1c8dc6456005396886c","version":"4.0","version_clean":"4.0.0","codename":"iOS 4.x, Android 5.x, Amazon Support","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["61e6d1c8dc645600539687c7","61e6d1c8dc645600539687c8","61e6d1c8dc645600539687c9","61e6d1c8dc645600539687ca","61e6d1c8dc645600539687cb","61e6d1c8dc645600539687cc","61e6d1c8dc645600539687cd","61e6d1c8dc645600539687ce","61e6d1c8dc645600539687cf","61e6d1c8dc645600539687d0","61e6d1c8dc645600539687d1","6296a0f4e21cc500a7f5df1f","62b2014ffd726300996f8aca","62b23dcd24a8c1001479d1ac","62b35551d55362051e1c5316","62d9671bff2a2d0061dce3e5","62d967408cd9e7006a49f56a","62d96758c44ed105698767e8","62d967a30e65dd095900c7d2","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","62e3ec7168457e069b3e8676","632c1aaadc170100336dc48b","634873f308753d004c821577","6376b426081e400003bac6ad"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"619e8e1a86178b0080bf0e98","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"},"subdomain":"revenuecat","subpath":"","topnav":{"edited":true,"right":[{"type":"url","text":"Sign up","url":"https://app.revenuecat.com/signup"},{"type":"url","url":"https://app.revenuecat.com/login","text":"Log in"}],"left":[{"type":"docs","text":"Documentation"},{"type":"reference","text":"REST API"},{"type":"url","text":"Samples","url":"https://www.revenuecat.com/docs/sample-apps"},{"type":"url","text":"SDK Reference","url":"https://www.revenuecat.com/docs/reference"},{"type":"url","text":"Blog","url":"https://www.revenuecat.com/blog"},{"type":"url","text":"Get Help","url":"https://revenuecat.com/support"}],"bottom":[]},"translate":{"languages":[],"provider":"transifex","key_public":"","key_secret":"","org_name":"","project_name":"","show_widget":false},"url":"https://www.revenuecat.com/","versions":[{"_id":"5bfb015b11c8eb003466632e","project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5b1d9adbd3da190003327667","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5bfb015b11c8eb0034666315","5af1c9a461419c00037b8760","5bfb015b11c8eb0034666316","5af1da772aba1d000381cc03","5bfb015b11c8eb0034666317","5bfb015b11c8eb0034666318","5bfb015b11c8eb0034666319","5bfc797c481ff200234541fb","6376b426081e400003bac6ab"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"1.1.0","version":"1.1"},{"_id":"5c1044f3179efe00504b607c","project":"5ae768fde9566300035d794e","__v":8,"forked_from":"5bfb015b11c8eb003466632e","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5c1044f3179efe00504b6062","5af1c9a461419c00037b8760","5c1044f3179efe00504b6063","5af1da772aba1d000381cc03","5c1044f3179efe00504b6064","5c1044f3179efe00504b6065","5c1044f3179efe00504b6066","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5c10590b128a900038072bd0","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5c1168af1a911e0061902ccd","5c1299b36a3e7a019f96f380","5c4243b123ab1b000e460c83","5c4b47b283d620004988ef8f","6376b426081e400003bac6a9"],"is_deprecated":true,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"1.2.0","version":"1.2"},{"_id":"5c50bb7b21cd6400512fd55f","project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5c2eac22bad1380144ad0297","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5c50bb7b21cd6400512fd52d","5af1c9a461419c00037b8760","5c50bb7b21cd6400512fd52e","5af1da772aba1d000381cc03","5c50bb7b21cd6400512fd52f","5c1044f3179efe00504b6065","5c50bb7b21cd6400512fd530","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5c50bb7b21cd6400512fd531","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5c50bb7b21cd6400512fd532","5c50bb7b21cd6400512fd533","5c50bb7b21cd6400512fd534","5c50bb7b21cd6400512fd535","5c50bb7b21cd6400512fd536","5c53a6e8d090a9000e8bc945","6376b426081e400003bac6b0"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"2.0.0","version":"2.0"},{"_id":"5c91244a4e7eb9014355265f","project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5c50bb7b21cd6400512fd55f","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5c91244a4e7eb90143552625","5af1c9a461419c00037b8760","5c91244a4e7eb90143552626","5af1da772aba1d000381cc03","5c91244a4e7eb90143552627","5c1044f3179efe00504b6065","5c91244a4e7eb90143552628","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5c91244a4e7eb90143552629","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5c91244a4e7eb9014355262a","5c91244a4e7eb9014355262b","5c91244a4e7eb9014355262c","5c91244a4e7eb9014355262d","5c91244a4e7eb9014355262e","5c91244a4e7eb9014355262f","5cba312ea1039400198f3f5b","6376b426081e400003bac6a7"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"2.1.0","version":"2.1"},{"_id":"5cd9e7cd912ece0039e98f45","project":"5ae768fde9566300035d794e","__v":2,"forked_from":"5c91244a4e7eb9014355265f","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5cd9e7cd912ece0039e98f03","5af1c9a461419c00037b8760","5cd9e7cd912ece0039e98f04","5af1da772aba1d000381cc03","5cd9e7cd912ece0039e98f05","5c1044f3179efe00504b6065","5cd9e7cd912ece0039e98f06","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5cd9e7cd912ece0039e98f07","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5cd9e7cd912ece0039e98f08","5cd9e7cd912ece0039e98f09","5cd9e7cd912ece0039e98f0a","5cd9e7cd912ece0039e98f0b","5cd9e7cd912ece0039e98f0c","5cd9e7cd912ece0039e98f0d","5cd9e7cd912ece0039e98f0e","5ce6e1f286e9e300246c69c2","5d4cedf6403d100064742bf7","6376b426081e400003bac6ae"],"is_deprecated":true,"is_hidden":false,"is_beta":false,"is_stable":false,"codename":"","version_clean":"2.3.0","version":"2.3"},{"_id":"5d8a7036c05fe6004c0bda01","project":"5ae768fde9566300035d794e","__v":4,"forked_from":"5cd9e7cd912ece0039e98f45","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5d8a7036c05fe6004c0bd9b4","5af1c9a461419c00037b8760","5d8a7036c05fe6004c0bd9b5","5af1da772aba1d000381cc03","5d8a7036c05fe6004c0bd9b6","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5d8a7036c05fe6004c0bd9b8","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5d8a7036c05fe6004c0bd9b9","5d8a7036c05fe6004c0bd9ba","5d8a7036c05fe6004c0bd9bb","5d8a7036c05fe6004c0bd9bc","5d8a7036c05fe6004c0bd9bd","5d8a7036c05fe6004c0bd9be","5d8a7036c05fe6004c0bd9bf","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6ac"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"3.0.0","version":"3.0"},{"_id":"5f601d207f086b0012c9087e","version":"3.1","version_clean":"3.1.0","codename":"iOS <3.12.0, Android <4.3.0, Legacy Aliasing","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":true,"categories":["5f601d207f086b0012c90806","5af1c9a461419c00037b8760","5f601d207f086b0012c90807","5af1da772aba1d000381cc03","5f601d207f086b0012c90808","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5f601d207f086b0012c90809","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5f601d207f086b0012c9080a","5f601d207f086b0012c9080b","5f601d207f086b0012c9080c","5f601d207f086b0012c9080d","5f601d207f086b0012c9080e","5f601d207f086b0012c9080f","5f601d207f086b0012c90810","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6aa"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5d8a7036c05fe6004c0bda01","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"60898dcfe14b91000f19a45c","version":"3.2","version_clean":"3.2.0","codename":"Identity Changes","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["60898dcee14b91000f19a3cb","5af1c9a461419c00037b8760","60898dcee14b91000f19a3cc","5af1da772aba1d000381cc03","60898dcee14b91000f19a3cd","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","60898dcee14b91000f19a3ce","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","60898dcee14b91000f19a3cf","60898dcee14b91000f19a3d0","60898dcee14b91000f19a3d1","60898dcee14b91000f19a3d2","60898dcee14b91000f19a3d3","60898dcee14b91000f19a3d4","60898dcee14b91000f19a3d5","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6b1"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5f601d207f086b0012c9087e","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"619da119e65711004f6516d0","version":"3.2.1","version_clean":"3.2.1","codename":"API Reference Link fixes","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["619da119e65711004f651633","5af1c9a461419c00037b8760","619da119e65711004f651634","5af1da772aba1d000381cc03","619da119e65711004f651635","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","619da119e65711004f651636","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","619da119e65711004f651637","619da119e65711004f651638","619da119e65711004f651639","619da119e65711004f65163a","619da119e65711004f65163b","619da119e65711004f65163c","619da119e65711004f65163d","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6a8"],"project":"5ae768fde9566300035d794e","__v":0,"forked_from":"60898dcfe14b91000f19a45c","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"619e8e1a86178b0080bf0e98","version":"3.3","version_clean":"3.3.0","codename":"iOS >=3.12.0, Android >=4.3.0, Log In Changes","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["619e8e1a86178b0080bf0dfc","5af1c9a461419c00037b8760","619e8e1a86178b0080bf0dfd","5af1da772aba1d000381cc03","619e8e1a86178b0080bf0dfe","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","619e8e1a86178b0080bf0dff","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","619e8e1a86178b0080bf0e00","619e8e1a86178b0080bf0e01","619e8e1a86178b0080bf0e02","619e8e1a86178b0080bf0e03","619e8e1a86178b0080bf0e04","619e8e1a86178b0080bf0e05","619e8e1a86178b0080bf0e06","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6af"],"project":"5ae768fde9566300035d794e","__v":3,"forked_from":"619da119e65711004f6516d0","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"61e6d1c8dc6456005396886c","version":"4.0","version_clean":"4.0.0","codename":"iOS 4.x, Android 5.x, Amazon Support","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["61e6d1c8dc645600539687c7","61e6d1c8dc645600539687c8","61e6d1c8dc645600539687c9","61e6d1c8dc645600539687ca","61e6d1c8dc645600539687cb","61e6d1c8dc645600539687cc","61e6d1c8dc645600539687cd","61e6d1c8dc645600539687ce","61e6d1c8dc645600539687cf","61e6d1c8dc645600539687d0","61e6d1c8dc645600539687d1","6296a0f4e21cc500a7f5df1f","62b2014ffd726300996f8aca","62b23dcd24a8c1001479d1ac","62b35551d55362051e1c5316","62d9671bff2a2d0061dce3e5","62d967408cd9e7006a49f56a","62d96758c44ed105698767e8","62d967a30e65dd095900c7d2","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","62e3ec7168457e069b3e8676","632c1aaadc170100336dc48b","634873f308753d004c821577","6376b426081e400003bac6ad"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"619e8e1a86178b0080bf0e98","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"},{"_id":"63b71b01ab066b0061bf9545","version":"4.0.1","version_clean":"4.0.1","codename":"refactor-get-started","is_stable":false,"is_beta":true,"is_hidden":true,"is_deprecated":false,"categories":["63b71b01ab066b0061bf945e","63b71b01ab066b0061bf945f","63b71b01ab066b0061bf9460","63b71b01ab066b0061bf9461","63b71b01ab066b0061bf9462","61e6d1c8dc645600539687cc","63b71b01ab066b0061bf9463","63b71b01ab066b0061bf9464","63b71b01ab066b0061bf9465","63b71b01ab066b0061bf9466","61e6d1c8dc645600539687d1","63b71b01ab066b0061bf9469","63b71b01ab066b0061bf946a","63b71b01ab066b0061bf946b","63b71b01ab066b0061bf946c","63b71b01ab066b0061bf946d","63b71b01ab066b0061bf946e","63b71b01ab066b0061bf946f","63b71b01ab066b0061bf9470","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","63b71b01ab066b0061bf9471","632c1aaadc170100336dc48b","63b71b01ab066b0061bf9472","6376b426081e400003bac6ad","63b71b01ab066b0061bf9636"],"project":"5ae768fde9566300035d794e","__v":0,"forked_from":"61e6d1c8dc6456005396886c","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"6421b235414b45007a0bd295","version":"5.0","version_clean":"5.0.0","codename":"Android 6.x, new Google Subscription Model","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["6421b235414b45007a0bd1a4","6421b235414b45007a0bd1a5","6421b235414b45007a0bd1a6","6421b235414b45007a0bd1a7","6421b235414b45007a0bd1a8","61e6d1c8dc645600539687cc","6421b235414b45007a0bd1a9","6421b235414b45007a0bd1aa","6421b235414b45007a0bd1ab","6421b235414b45007a0bd1ac","61e6d1c8dc645600539687d1","6421b235414b45007a0bd1af","6421b235414b45007a0bd1b0","6421b235414b45007a0bd1b1","6421b235414b45007a0bd1b2","6421b235414b45007a0bd1b3","6421b235414b45007a0bd1b4","6421b235414b45007a0bd1b5","6421b235414b45007a0bd1b6","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","6421b235414b45007a0bd1b7","632c1aaadc170100336dc48b","6421b235414b45007a0bd1b8","6376b426081e400003bac6ad","6421b235414b45007a0bd297"],"project":"5ae768fde9566300035d794e","__v":0,"forked_from":"61e6d1c8dc6456005396886c","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"}],"variableDefaults":[{"source":"security","_id":"63c7b2b10cdff400910d22ad","name":"Authorization","type":"apiKey","default":"REVENUECAT_API_KEY","apiSetting":"61e6d1c8dc645600539687c6"}],"webhookEnabled":false,"parent":{"_id":"640b8371593b400034c6109c","appearance":{"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"main_body":{"type":"links"},"colors":{"highlight":"","main":"","main_alt":"","header_text":"","body_highlight":"","custom_login_link_color":""},"typography":{"headline":"Open+Sans:400:sans-serif","body":"Open+Sans:400:sans-serif","typekit":false,"tk_key":"","tk_headline":"","tk_body":""},"header":{"style":"solid","img":[],"img_size":"auto","img_pos":"tl"},"body":{"style":"none"},"global_landing_page":{"html":"","redirect":"/docs/welcome"},"referenceSimpleMode":true,"referenceLayout":"row","link_logo_to_url":false,"theme":"line","colorScheme":"light","overlay":"triangles","landing":true,"sticky":false,"hide_logo":false,"childrenAsPills":false,"subheaderStyle":"links","splitReferenceDocs":false,"showMetricsInReference":true,"logo":["https://files.readme.io/369886b-small-readme-logo.png","readme.png",60,60,"#018EF5"],"loginLogo":[],"logo_white":[],"logo_white_use":false,"logo_large":false,"favicon":[],"stylesheet":"","stylesheet_hub2":"","stylesheet_hub3":"","javascript":"","javascript_hub2":"","html_promo":"","html_body":"","html_footer":"","html_head":"","html_footer_meta":"","html_hidelinks":false,"showVersion":true,"hideTableOfContents":false,"nextStepsLabel":"","promos":[]},"child":{"_id":"5ae768fde9566300035d794e","appearance":{"nextStepsLabel":"","hideTableOfContents":false,"showVersion":false,"html_hidelinks":false,"global_landing_page":{"redirect":"","html":""},"html_footer_meta":"","html_head":"\n\n","html_footer":"","html_body":"","html_promo":"","javascript_hub2":"// Redirect hack so we don't accidentally leak the underlying readme url\nvar wl = window.location;\nif (wl.hostname == \"docs-origin.revenuecat.com\" && ! wl.pathname.startsWith('/suggested-edits/') && ! wl.pathname.startsWith('/edit/') && wl.search.indexOf('auth_token') < 0 && document.cookie.indexOf('docs_redirect=off') < 0) {\n window.location.replace(\"https://www.revenuecat.com\" + wl.pathname + wl.search);\n}","javascript":"","stylesheet_hub2":"/*.markdown-body h2 { font-weight:700; }*/\n\nhtml:not(.useReactApp) nav#hub-sidebar>ul>li>a.active,\nhtml:not(.useReactApp) nav#hub-sidebar ul>li.subnav-expanded>a {\n color: white !important;\n}\n\n.table {\n border-collapse: collapse;\n}\n\n.td {\n border: 1px solid #eee !important;\n}\n\n.content-body code {\n display: inline;\n word-break: normal;\n}\n\n.updated-at {\n display: none;\n}\n\n/* (Sharif) Removed because it was hiding the Suggest Edits button. /*\n/* (Original) Hide \"Ask a question\" button on Discussion forum */\n/*\n#content-head a {\n display: none;\n}\n*/\n\n/* Give images just a *little* more of a margin */\nimg {\n margin-top: 24px;\n margin-bottom: 24px;\n}\n\n/* Fixes the subpage text color when the background is red */\na.subpage.active .link-title {\n color: white !important;\n}\n\n/* Give glossary items a RC theme */\n.glossary-item.highlight {\n color: #4449c3;\n border-bottom: 1px dashed #4449c3;\n}\n\n/* Change color of top boarder */\n.theme-line header#hub-header #header-top {\n border-bottom-color: #FFFFFF;\n}\n\n/* Style for doc header */\nh1 {\n color: #292929 !important;\n font-weight: 800;\n font-size: 28px;\n font-family: 'Open Sans', sans-serif !important;\n}\n\n/* Fixing header font sizes and weights, as well as spacing */\n.heading-1 .heading-text {\n margin-top: 8px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 22px;\n font-weight: 800;\n}\n\n.heading-2 .heading-text {\n margin-top: 8px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 18px;\n font-weight: 600;\n}\n\n.heading-3 .heading-text {\n margin-top: 20px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 16px;\n font-weight: 600;\n}\n\n.heading-4 .heading-text {\n margin-top: 10px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 16px;\n font-weight: 600;\n}\n\n.heading-5 .heading-text {\n margin-top: 20px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 14px;\n font-weight: 600;\n}\n\n.heading-6 .heading-text {\n margin-top: 20px;\n margin-bottom: 0px;\n color: #292929;\n font-size: 12px;\n font-weight: 600;\n}\n\n/* Adjusting paragraph styles */\np {\n display: block;\n margin-bottom: 0px;\n margin-top: 0;\n font-size: 15px;\n font-family: 'Open Sans', sans-serif !important;\n color: #292929;\n}\n\n/* Fixing bullet point style to match paragraph */\n.field-description li,\n.markdown-body li {\n font-size: 15px !important;\n color: #292929;\n font-family: 'Open Sans', sans-serif !important;\n}\n\n/* ReadMe is redesigning their docs and some default \nsettings will override the link typography under \"Theme Editor\".\nThis code snippet will override link colors if our project gets\nthe new redesign.\n.field-description a, .markdown-body a {\ncolor: #df434b !important;\n}\n*/\n\n/* For buttons under \"See it in action\" */\n.button-text {\n padding: 0px 22px 0px 0px;\n border-width: 0px;\n background-color: transparent;\n background-image: url(\"https://assets-global.website-files.com/60706bf8c762975d9275ea4c/6070a422148280456aaf1c39_Group%2051.svg\");\n background-position: 100% 50%;\n background-size: auto;\n background-repeat: no-repeat;\n transition: all 400ms ease;\n text-decoration: none;\n color: #df434b;\n line-height: 16px;\n font-weight: 700;\n margin-right: 15px;\n border: 3px solid transparent;\n}\n\n/* Hovering will move button up */\n.button-text:hover {\n position: relative;\n bottom: 3px;\n}\n\n/* Buttons for links ('text here ->') */\n.button-text-links {\n padding: 0px 22px 0px 0px;\n border-width: 0px;\n background-color: transparent;\n background-image: url(\"https://assets-global.website-files.com/60706bf8c762975d9275ea4c/6070a422148280456aaf1c39_Group%2051.svg\");\n background-position: 100% 50%;\n background-size: auto;\n background-repeat: no-repeat;\n transition: all 400ms ease;\n text-decoration: none;\n color: #df434b;\n line-height: 16px;\n font-weight: 700;\n margin-right: 15px;\n border: 3px solid transparent;\n}\n\n/* Hovering will push arrow to the right */\n.button-text-links:hover {\n padding-right: 30px;\n position: relative;\n}\n\n.field-description li,\n.markdown-body li {\n font-size: 13px;\n color: #292929;\n font-family: 'Open Sans', sans-serif !important;\n}\n\n/* redesign updates 11/24/2021 */\n\nhtml.useReactApp .rm-Header {\n --header-logo-height: 40px;\n --Header-border-width: 0px;\n --Header-background: #f6f7f8;\n --Header-button-hover: #f6f7f8;\n}\n\nhtml.useReactApp .rm-Sidebar {\n --Sidebar-link-color: #ffffff;\n --Sidebar-link-background: #4449c3;\n\n /* Sometimes the statuspage alert covered sections of the\n \tsidebar, so this just adds some extra padding\n */\n padding-bottom: 120px;\n\n}\n\nhtml.useReactApp .rm-Header .rm-Logo img {\n margin-bottom: 24px;\n}\n\nhtml.useReactApp .rm-Header-top {\n background: #ffffff;\n}\n\nhtml.useReactApp .rm-Guides #updated-at,\nhtml.useReactApp #updated-at {\n padding-top: 60px;\n}\n\n/* there's some kind of bug in the new ReadMe where in the Search List, \nthe first element's background jitters even when you're selecting a different \nelement and this is my attempt to make it less noticeable */\n\nhtml.useReactApp .rm-Header .SearchResults-list>a:active,\nhtml.useReactApp .rm-Header .SearchResults-list>a:focus {\n background-color: inherit;\n color: inherit;\n}\n\n/* below trying to remove the obnoxious focus, active effects. can be removed\nif this is not desired */\n\nhtml.useReactApp .rm-Header-top .rm-Logo:active,\nhtml.useReactApp .rm-Header-top .rm-Logo:focus,\nhtml.useReactApp .rm-Header-top-link.Button:active,\nhtml.useReactApp .rm-Header-top-link.Button:focus,\nhtml.useReactApp .rm-Header-bottom-link.Button:active,\nhtml.useReactApp .rm-Header-bottom-link.Button:focus {\n box-shadow: none;\n background: transparent;\n border-color: transparent;\n}\n\nhtml.useReactApp .rm-Header-top-link.Button:hover,\nhtml.useReactApp .rm-Header-bottom-link.Button:hover {\n background: rgba(0, 0, 0, 0.15);\n box-shadow: none;\n border-color: transparent;\n}\n\n/* mobile menu links */\nhtml.useReactApp .rm-Flyout a:hover,\nhtml.useReactApp .rm-Flyout a:active,\nhtml.useReactApp .rm-Flyout a:focus {\n box-shadow: none;\n border-color: transparent;\n}\n\n/* mobile menu dropdown */\nhtml.useReactApp .rm-Header-top .icon-menu:hover,\nhtml.useReactApp .rm-Header-top .icon-menu:active,\nhtml.useReactApp .rm-Header-top .icon-menu:focus,\nhtml.useReactApp .rm-Flyout .Select_md:hover,\nhtml.useReactApp .rm-Flyout .Select_md:active,\nhtml.useReactApp .rm-Flyout .Select_md:focus {\n box-shadow: none;\n border-color: transparent;\n}\n\nhtml.useReactApp .Button_graphite_text:not(:disabled):active,\nhtml.useReactApp .Button_graphite_text:not(:disabled):focus {\n box-shadow: none;\n border-color: transparent;\n}\n\nhtml.useReactApp .App .rm-Guides .heading:focus-within,\nhtml.useReactApp .App .rm-ReferenceMain .heading:focus-within,\nhtml.useReactApp .App .rm-Changelog .heading:focus-within {\n outline: 0px;\n}\n\nspan.img img {\n margin-top: 0px;\n margin-bottom: 0px;\n}\n\n/* START - redesign updates 12/9/2022 Ryan Kotzebue */\nhr.landing-divider-small {\n margin: 30px 0;\n border-width: 0 !important;\n}\n\na.cta {\n background: #4449c3;\n border: 1px solid rgb(104, 117, 217);\n color: white;\n font-size: 16px;\n border-radius: 6px;\n padding: 12px 12px;\n text-decoration: none !important;\n transform 400ms ease 0s;\n}\n\na.cta:hover {\n background: rgb(87, 108, 219);\n border: 1px solid rgb(81, 94, 189);\n}\n\n\nul.ctas {\n grid-auto-rows: 1fr;\n display: grid;\n list-style: none;\n gap: 30px;\n margin: 0;\n padding: 0;\n}\n\nsection.two-column ul.ctas {\n grid-template-columns: repeat(2, 1fr);\n}\n\nsection.three-column ul.ctas {\n grid-template-columns: repeat(3, 1fr);\n}\n\nul.ctas li {\n margin: 0;\n padding: 0;\n display: flex;\n border: 1px solid rgb(240, 241, 255);\n background: rgb(240, 241, 255);\n border-radius: 5px;\n transition: background 200ms ease 0s, color 200ms ease 0s, box-shadow 200ms ease 0s, border 200ms\n}\n\nul.ctas li a {\n padding: 10px;\n text-decoration: none !important;\n color: #3d3d3d;\n transform: 400ms ease 0s;\n}\n\nul.ctas li:hover {\n background: rgb(209, 214, 255);\n border: 1px solid rgb(209, 214, 255);\n}\n\nul.ctas li a div.name {\n font-size: var(--markdown-title-size, 1.25em);\n font-weight: var(--markdown-title-weight, 600);\n color: #4449c3;\n}\n\[email protected] only screen and (max-width:1029px) {\n\n section.two-column ul.ctas,\n section.three-column ul.ctas {\n grid-template-columns: repeat(1, 1fr) !important;\n }\n\n}\n\n/* END - redesign updates 12/9/2022 */\n\n/* Dark Mode fixes */\n[data-color-mode=\"dark\"] .field-description a[href],\n[data-color-mode=\"dark\"] .field-description a:not([href=\"\"]),\n[data-color-mode=\"dark\"] .markdown-body a[href],\n[data-color-mode=\"dark\"] .markdown-body a:not([href=\"\"]) {\n color: #F2545B !important;\n}\n\n\n[data-color-mode=\"dark\"] .rm-Header {\n --Header-background: transparent!important;\n}\n\n[data-color-mode=\"dark\"] .rm-Header-top {\n background: transparent!important;\n}\n\n[data-color-mode=\"dark\"] .rm-Header-bottom {\n background: transparent!important;\n}\n\n[data-color-mode=\"dark\"] a {\n color: rgba(255, 255, 255, 0.95)!important;\n}\n\n[data-color-mode=\"dark\"] p {\n color: rgba(255, 255, 255, 0.75)!important;\n}\n\n[data-color-mode=\"dark\"] .heading-1 .heading-text,\n[data-color-mode=\"dark\"] .heading-2 .heading-text,\n[data-color-mode=\"dark\"] .heading-3 .heading-text,\n[data-color-mode=\"dark\"] .heading-4 .heading-text,\n[data-color-mode=\"dark\"] .heading-5 .heading-text,\n[data-color-mode=\"dark\"] .heading-6 .heading-text {\n color: white!important;\n}\n\n[data-color-mode=\"dark\"] h1 {\n color: white!important;\n}\n\n[data-color-mode=\"dark\"] ul li {\n color: rgba(255, 255, 255, 0.75)!important;\n}\n\n[data-color-mode=\"dark\"] .content-body img:not(.lightbox-img) {\n opacity: 0.75;\n}\n\n[data-color-mode=\"dark\"] body {\n\t-moz-osx-font-smoothing: grayscale;\n\tfont-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\", \"Roboto\", \"Oxygen-Sans\", \"Ubuntu\",\"Cantarell\",\"Helvetica Neue\", \"sans-serif\";\n}\n\n[data-color-mode=\"dark\"] .rm-Header-top-link.Button:hover,\n[data-color-mode=\"dark\"] .rm-Header-bottom-link.Button:hover {\n background: rgba(255, 255, 255, 0.15)!important;\n}\n\n[data-color-mode=\"dark\"] .field-description li,\n[data-color-mode=\"dark\"] .markdown-body li {\n color: rgba(255, 255, 255, 0.75)!important;\n}\n\n\n/* End Dark Mode */","stylesheet":"","favicon":["https://files.readme.io/93e6e4e-small-fav.png","fav.png",32,32,"#f47076","https://files.readme.io/0472abe-fav.png"],"logo_white_use":false,"logo_white":[],"logo":["https://files.readme.io/d763f0d-small-logo_red_7_1.png","logo_red (7) 1.png",376,80,"#f1545b","https://files.readme.io/576e3dd-logo_red_7_1.png"],"promos":[{"extras":{"type":"buttons","buttonPrimary":"get-started","buttonSecondary":"reference"},"title":"Build With RevenueCat","text":"Build a customized mobile subscription business with RevenueCat. We do the heavy lifting of normalizing subscribers from any source and maintain a single source of truth for subscription status, so you can get back to building your app.\n\nRevenueCat is a powerful, secure, reliable, and free to use in-app purchase server with global support. All you need to get started is an API key.","_id":"5ae768fde9566300035d794f"}],"body":{"style":"none"},"header":{"img_pos":"tl","img_size":"auto","img":[],"style":"solid"},"typography":{"tk_body":"","tk_headline":"","tk_key":"","typekit":false,"body":"Open+Sans:400:sans-serif","headline":"Open+Sans:400:sans-serif"},"colors":{"body_highlight":"#df434b","header_text":"","main_alt":"","main":"#4449c3","highlight":"","custom_login_link_color":""},"main_body":{"type":"links"},"categoriesAsDropdown":false,"hide_logo":false,"sticky":false,"landing":true,"overlay":"triangles","notheme":false,"theme":"line","link_logo_to_url":true,"referenceLayout":"row","childrenAsPills":false,"splitReferenceDocs":false,"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"subheaderStyle":"dropdown","showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":false,"colorScheme":"auto"},"custom_domain":"","childrenProjects":[],"description":"In-app subscriptions made easy","error404":"","first_page":"docs","flags":{"metrics":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"newApiExplorer":true,"stripe":false,"hideGoogleAnalytics":false,"cookieAuthentication":false,"allowXFrame":false,"speedyRender":false,"correctnewlines":false,"swagger":false,"oauth":false,"migrationSwaggerRun":false,"migrationRun":false,"hub2":true,"enterprise":true,"allow_hub2":false,"translation":true,"alwaysShowDocPublishStatus":false,"newEditor":true,"newMarkdown":false,"newMarkdownBetaProgram":true,"newMarkdownLooseMode":false,"oldMarkdown":false,"newSearch":true,"rdmdCompatibilityMode":false,"tutorials":true,"staging":false,"allowApiExplorerJsonEditor":false,"useReactApp":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"graphql":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":true,"metricsV2":true,"newEditorDash":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":false},"fullBaseUrl":"https://revenuecat.readme.io/","glossaryTerms":[{"_id":"5fe100812fd7b7003288ad37","term":"Apple Platforms","definition":"includes iOS, iPadOS, macOS, tvOS, and watchOS apps published on Apple's App Store via App Store Connect."},{"_id":"5fe100c63e8ae70025f2f4ce","term":"Google Platforms","definition":"includes any Kotlin, Java, or hybrid Android apps published on Google's Play Store."},{"_id":"61e6e6c31f4e8b0582cf1661","term":"Purchases SDK","definition":"RevenueCat's SDK for interacting with RevenueCat's API. We provide SDK's for iOS, Android, Flutter, React Native, Cordova, and Unity."},{"_id":"624db78b905874001b4ef190","term":"CustomerInfo","definition":"Also known as PurchaserInfo. \n\nContains all of the purchase and subscription data available about the user."}],"graphqlSchema":"","healthCheck":{"provider":"statusPage","settings":{"page":"d7wjfp7kgjkd","status":false,"url":""}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"internal":"","landing_bottom":[{"type":"text","alignment":"left","title":"Do More With RevenueCat","text":"Use RevenueCat to build and run nearly every aspect of your mobile subscription business.\n\n:fa-cogs: Fetch products, make purchases, and check subscription status with our open-source, native SDKs \n:fa-shopping-cart: Host and configure products remotely from our dashboard \n:fa-line-chart: Analyze key metrics on the health of your mobile subscription business in one place \n:fa-user: See user-level transaction histories, lifetime value, and grant promotional subscriptions . \n:fa-exchange: Get notified of realtime events through webhooks and integrations directly into your existing systems"},{"type":"text","alignment":"left","title":"Start Building With RevenueCat"},{"type":"docs","alignment":"left","pageType":"Documentation"}],"metrics":{"thumbsEnabled":true,"enabled":false,"monthlyLimit":0,"planLimit":20000000,"realtime":{"dashEnabled":false,"hubEnabled":false}},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"changelog":false,"discuss":false,"suggested_edits":true,"logs":false,"custompages":false,"tutorials":false,"graphql":false},"name":"RevenueCat","nav_names":{"discuss":"","reference":"REST API","docs":"Documentation","changelog":"","tutorials":""},"oauth_url":"","plan":"enterprise","planOverride":"enterprise","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":false,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":false,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":false,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":false,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"percentScore":62.5,"totalScore":160},"reCaptchaSiteKey":"6LdtW_UZAAAAADi9uAa6WbJsMZD1zc0r0LKHTxJP","stable":{"_id":"61e6d1c8dc6456005396886c","version":"4.0","version_clean":"4.0.0","codename":"iOS 4.x, Android 5.x, Amazon Support","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["61e6d1c8dc645600539687c7","61e6d1c8dc645600539687c8","61e6d1c8dc645600539687c9","61e6d1c8dc645600539687ca","61e6d1c8dc645600539687cb","61e6d1c8dc645600539687cc","61e6d1c8dc645600539687cd","61e6d1c8dc645600539687ce","61e6d1c8dc645600539687cf","61e6d1c8dc645600539687d0","61e6d1c8dc645600539687d1","6296a0f4e21cc500a7f5df1f","62b2014ffd726300996f8aca","62b23dcd24a8c1001479d1ac","62b35551d55362051e1c5316","62d9671bff2a2d0061dce3e5","62d967408cd9e7006a49f56a","62d96758c44ed105698767e8","62d967a30e65dd095900c7d2","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","62e3ec7168457e069b3e8676","632c1aaadc170100336dc48b","634873f308753d004c821577","6376b426081e400003bac6ad"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"619e8e1a86178b0080bf0e98","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"},"subdomain":"revenuecat","subpath":"","topnav":{"edited":true,"right":[{"type":"url","text":"Sign up","url":"https://app.revenuecat.com/signup"},{"type":"url","url":"https://app.revenuecat.com/login","text":"Log in"}],"left":[{"type":"docs"},{"type":"reference"},{"type":"url","text":"Samples","url":"https://www.revenuecat.com/docs/sample-apps"},{"type":"url","text":"SDK Reference","url":"https://www.revenuecat.com/docs/reference"},{"type":"url","text":"Blog","url":"https://www.revenuecat.com/blog"},{"type":"url","text":"Get Help","url":"https://revenuecat.com/support"}],"bottom":[]},"translate":{"languages":[],"provider":"transifex","key_public":"","key_secret":"","org_name":"","project_name":"","show_widget":false},"url":"https://www.revenuecat.com/","versions":[{"_id":"5bfb015b11c8eb003466632e","project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5b1d9adbd3da190003327667","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5bfb015b11c8eb0034666315","5af1c9a461419c00037b8760","5bfb015b11c8eb0034666316","5af1da772aba1d000381cc03","5bfb015b11c8eb0034666317","5bfb015b11c8eb0034666318","5bfb015b11c8eb0034666319","5bfc797c481ff200234541fb","6376b426081e400003bac6ab"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"1.1.0","version":"1.1"},{"_id":"5c1044f3179efe00504b607c","project":"5ae768fde9566300035d794e","__v":8,"forked_from":"5bfb015b11c8eb003466632e","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5c1044f3179efe00504b6062","5af1c9a461419c00037b8760","5c1044f3179efe00504b6063","5af1da772aba1d000381cc03","5c1044f3179efe00504b6064","5c1044f3179efe00504b6065","5c1044f3179efe00504b6066","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5c10590b128a900038072bd0","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5c1168af1a911e0061902ccd","5c1299b36a3e7a019f96f380","5c4243b123ab1b000e460c83","5c4b47b283d620004988ef8f","6376b426081e400003bac6a9"],"is_deprecated":true,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"1.2.0","version":"1.2"},{"_id":"5c50bb7b21cd6400512fd55f","project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5c2eac22bad1380144ad0297","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5c50bb7b21cd6400512fd52d","5af1c9a461419c00037b8760","5c50bb7b21cd6400512fd52e","5af1da772aba1d000381cc03","5c50bb7b21cd6400512fd52f","5c1044f3179efe00504b6065","5c50bb7b21cd6400512fd530","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5c50bb7b21cd6400512fd531","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5c50bb7b21cd6400512fd532","5c50bb7b21cd6400512fd533","5c50bb7b21cd6400512fd534","5c50bb7b21cd6400512fd535","5c50bb7b21cd6400512fd536","5c53a6e8d090a9000e8bc945","6376b426081e400003bac6b0"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"2.0.0","version":"2.0"},{"_id":"5c91244a4e7eb9014355265f","project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5c50bb7b21cd6400512fd55f","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5c91244a4e7eb90143552625","5af1c9a461419c00037b8760","5c91244a4e7eb90143552626","5af1da772aba1d000381cc03","5c91244a4e7eb90143552627","5c1044f3179efe00504b6065","5c91244a4e7eb90143552628","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5c91244a4e7eb90143552629","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5c91244a4e7eb9014355262a","5c91244a4e7eb9014355262b","5c91244a4e7eb9014355262c","5c91244a4e7eb9014355262d","5c91244a4e7eb9014355262e","5c91244a4e7eb9014355262f","5cba312ea1039400198f3f5b","6376b426081e400003bac6a7"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"2.1.0","version":"2.1"},{"_id":"5cd9e7cd912ece0039e98f45","project":"5ae768fde9566300035d794e","__v":2,"forked_from":"5c91244a4e7eb9014355265f","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5cd9e7cd912ece0039e98f03","5af1c9a461419c00037b8760","5cd9e7cd912ece0039e98f04","5af1da772aba1d000381cc03","5cd9e7cd912ece0039e98f05","5c1044f3179efe00504b6065","5cd9e7cd912ece0039e98f06","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5cd9e7cd912ece0039e98f07","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5cd9e7cd912ece0039e98f08","5cd9e7cd912ece0039e98f09","5cd9e7cd912ece0039e98f0a","5cd9e7cd912ece0039e98f0b","5cd9e7cd912ece0039e98f0c","5cd9e7cd912ece0039e98f0d","5cd9e7cd912ece0039e98f0e","5ce6e1f286e9e300246c69c2","5d4cedf6403d100064742bf7","6376b426081e400003bac6ae"],"is_deprecated":true,"is_hidden":false,"is_beta":false,"is_stable":false,"codename":"","version_clean":"2.3.0","version":"2.3"},{"_id":"5d8a7036c05fe6004c0bda01","project":"5ae768fde9566300035d794e","__v":4,"forked_from":"5cd9e7cd912ece0039e98f45","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","categories":["5d8a7036c05fe6004c0bd9b4","5af1c9a461419c00037b8760","5d8a7036c05fe6004c0bd9b5","5af1da772aba1d000381cc03","5d8a7036c05fe6004c0bd9b6","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5d8a7036c05fe6004c0bd9b8","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5d8a7036c05fe6004c0bd9b9","5d8a7036c05fe6004c0bd9ba","5d8a7036c05fe6004c0bd9bb","5d8a7036c05fe6004c0bd9bc","5d8a7036c05fe6004c0bd9bd","5d8a7036c05fe6004c0bd9be","5d8a7036c05fe6004c0bd9bf","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6ac"],"is_deprecated":false,"is_hidden":true,"is_beta":false,"is_stable":false,"codename":"","version_clean":"3.0.0","version":"3.0"},{"_id":"5f601d207f086b0012c9087e","version":"3.1","version_clean":"3.1.0","codename":"iOS <3.12.0, Android <4.3.0, Legacy Aliasing","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":true,"categories":["5f601d207f086b0012c90806","5af1c9a461419c00037b8760","5f601d207f086b0012c90807","5af1da772aba1d000381cc03","5f601d207f086b0012c90808","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","5f601d207f086b0012c90809","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","5f601d207f086b0012c9080a","5f601d207f086b0012c9080b","5f601d207f086b0012c9080c","5f601d207f086b0012c9080d","5f601d207f086b0012c9080e","5f601d207f086b0012c9080f","5f601d207f086b0012c90810","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6aa"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5d8a7036c05fe6004c0bda01","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"60898dcfe14b91000f19a45c","version":"3.2","version_clean":"3.2.0","codename":"Identity Changes","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["60898dcee14b91000f19a3cb","5af1c9a461419c00037b8760","60898dcee14b91000f19a3cc","5af1da772aba1d000381cc03","60898dcee14b91000f19a3cd","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","60898dcee14b91000f19a3ce","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","60898dcee14b91000f19a3cf","60898dcee14b91000f19a3d0","60898dcee14b91000f19a3d1","60898dcee14b91000f19a3d2","60898dcee14b91000f19a3d3","60898dcee14b91000f19a3d4","60898dcee14b91000f19a3d5","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6b1"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"5f601d207f086b0012c9087e","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"619da119e65711004f6516d0","version":"3.2.1","version_clean":"3.2.1","codename":"API Reference Link fixes","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["619da119e65711004f651633","5af1c9a461419c00037b8760","619da119e65711004f651634","5af1da772aba1d000381cc03","619da119e65711004f651635","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","619da119e65711004f651636","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","619da119e65711004f651637","619da119e65711004f651638","619da119e65711004f651639","619da119e65711004f65163a","619da119e65711004f65163b","619da119e65711004f65163c","619da119e65711004f65163d","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6a8"],"project":"5ae768fde9566300035d794e","__v":0,"forked_from":"60898dcfe14b91000f19a45c","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"619e8e1a86178b0080bf0e98","version":"3.3","version_clean":"3.3.0","codename":"iOS >=3.12.0, Android >=4.3.0, Log In Changes","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["619e8e1a86178b0080bf0dfc","5af1c9a461419c00037b8760","619e8e1a86178b0080bf0dfd","5af1da772aba1d000381cc03","619e8e1a86178b0080bf0dfe","5c1044f3179efe00504b6065","5d8a7036c05fe6004c0bd9b7","5bfc797c481ff200234541fb","5c104ba9128a90003807247a","619e8e1a86178b0080bf0dff","5c10699cf1679c002e8dd450","5c1097da01113d00188050bf","619e8e1a86178b0080bf0e00","619e8e1a86178b0080bf0e01","619e8e1a86178b0080bf0e02","619e8e1a86178b0080bf0e03","619e8e1a86178b0080bf0e04","619e8e1a86178b0080bf0e05","619e8e1a86178b0080bf0e06","5d8a7036c05fe6004c0bd9c0","5d4cedf6403d100064742bf7","6376b426081e400003bac6af"],"project":"5ae768fde9566300035d794e","__v":3,"forked_from":"619da119e65711004f6516d0","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"61e6d1c8dc6456005396886c","version":"4.0","version_clean":"4.0.0","codename":"iOS 4.x, Android 5.x, Amazon Support","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["61e6d1c8dc645600539687c7","61e6d1c8dc645600539687c8","61e6d1c8dc645600539687c9","61e6d1c8dc645600539687ca","61e6d1c8dc645600539687cb","61e6d1c8dc645600539687cc","61e6d1c8dc645600539687cd","61e6d1c8dc645600539687ce","61e6d1c8dc645600539687cf","61e6d1c8dc645600539687d0","61e6d1c8dc645600539687d1","6296a0f4e21cc500a7f5df1f","62b2014ffd726300996f8aca","62b23dcd24a8c1001479d1ac","62b35551d55362051e1c5316","62d9671bff2a2d0061dce3e5","62d967408cd9e7006a49f56a","62d96758c44ed105698767e8","62d967a30e65dd095900c7d2","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","62e3ec7168457e069b3e8676","632c1aaadc170100336dc48b","634873f308753d004c821577","6376b426081e400003bac6ad"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"619e8e1a86178b0080bf0e98","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"},{"_id":"63b71b01ab066b0061bf9545","version":"4.0.1","version_clean":"4.0.1","codename":"refactor-get-started","is_stable":false,"is_beta":true,"is_hidden":true,"is_deprecated":false,"categories":["63b71b01ab066b0061bf945e","63b71b01ab066b0061bf945f","63b71b01ab066b0061bf9460","63b71b01ab066b0061bf9461","63b71b01ab066b0061bf9462","61e6d1c8dc645600539687cc","63b71b01ab066b0061bf9463","63b71b01ab066b0061bf9464","63b71b01ab066b0061bf9465","63b71b01ab066b0061bf9466","61e6d1c8dc645600539687d1","63b71b01ab066b0061bf9469","63b71b01ab066b0061bf946a","63b71b01ab066b0061bf946b","63b71b01ab066b0061bf946c","63b71b01ab066b0061bf946d","63b71b01ab066b0061bf946e","63b71b01ab066b0061bf946f","63b71b01ab066b0061bf9470","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","63b71b01ab066b0061bf9471","632c1aaadc170100336dc48b","63b71b01ab066b0061bf9472","6376b426081e400003bac6ad","63b71b01ab066b0061bf9636"],"project":"5ae768fde9566300035d794e","__v":0,"forked_from":"61e6d1c8dc6456005396886c","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z"},{"_id":"6421b235414b45007a0bd295","version":"5.0","version_clean":"5.0.0","codename":"Android 6.x, new Google Subscription Model","is_stable":false,"is_beta":false,"is_hidden":true,"is_deprecated":false,"categories":["6421b235414b45007a0bd1a4","6421b235414b45007a0bd1a5","6421b235414b45007a0bd1a6","6421b235414b45007a0bd1a7","6421b235414b45007a0bd1a8","61e6d1c8dc645600539687cc","6421b235414b45007a0bd1a9","6421b235414b45007a0bd1aa","6421b235414b45007a0bd1ab","6421b235414b45007a0bd1ac","61e6d1c8dc645600539687d1","6421b235414b45007a0bd1af","6421b235414b45007a0bd1b0","6421b235414b45007a0bd1b1","6421b235414b45007a0bd1b2","6421b235414b45007a0bd1b3","6421b235414b45007a0bd1b4","6421b235414b45007a0bd1b5","6421b235414b45007a0bd1b6","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","6421b235414b45007a0bd1b7","632c1aaadc170100336dc48b","6421b235414b45007a0bd1b8","6376b426081e400003bac6ad","6421b235414b45007a0bd297"],"project":"5ae768fde9566300035d794e","__v":0,"forked_from":"61e6d1c8dc6456005396886c","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"}],"variableDefaults":[{"source":"security","_id":"63c7b2b10cdff400910d22ad","name":"Authorization","type":"apiKey","default":"REVENUECAT_API_KEY","apiSetting":"61e6d1c8dc645600539687c6"}],"webhookEnabled":false},"custom_domain":"docs-origin.revenuecat.com","childrenProjects":[{"_id":"5ae768fde9566300035d794e","childrenProjects":[],"description":"In-app subscriptions made easy","is_active":true,"internal":"","modules":{"landing":false,"docs":true,"examples":true,"reference":true,"changelog":false,"discuss":false,"suggested_edits":true,"logs":false,"custompages":false,"tutorials":false,"graphql":false},"name":"RevenueCat","nav_names":{"discuss":"","reference":"REST API","docs":"Documentation","changelog":"","tutorials":""},"readmeScore":0,"stable":"61e6d1c8dc6456005396886c","subdomain":"revenuecat","subpath":"","webhookEnabled":false}],"description":"","error404":"","first_page":"landing","flags":{"allowApiExplorerJsonEditor":false,"allowDarkMode":true,"alwaysShowDocPublishStatus":false,"allowXFrame":false,"correctnewlines":false,"dashReact":true,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"enterprise":true,"graphql":false,"migrationRun":false,"migrationSwaggerRun":false,"myDevelopers":false,"newEditor":true,"newEditorDash":true,"newMarkdownBetaProgram":true,"newSearch":true,"oauth":false,"oldMarkdown":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":true,"speedyRender":false,"staging":false,"star":false,"superHub":false,"swagger":false,"translation":true,"useReactApp":true,"useReactGLP":true},"fullBaseUrl":"https://docs-origin.revenuecat.com/","glossaryTerms":[],"graphqlSchema":"","healthCheck":{"provider":"","settings":{}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"internal":"","landing_bottom":[],"metrics":{"monthlyLimit":0,"planLimit":20000000,"thumbsEnabled":true},"modules":{"landing":true,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":true,"suggested_edits":true,"logs":false,"custompages":false,"tutorials":false},"name":"revenuecat-group","nav_names":{"docs":"","reference":"","changelog":"","discuss":"","tutorials":""},"oauth_url":"","plan":"enterprise","planOverride":"enterprise","planTrial":"enterprise","readmeScore":{},"reCaptchaSiteKey":"","stable":{"_id":"640b8371593b400034c6109b","version":"1.0.0","version_clean":"1.0.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":[],"releaseDate":"2023-03-10T19:22:25.325Z","createdAt":"2023-03-10T19:22:25.325Z","project":"640b8371593b400034c6109c","__v":0},"subdomain":"revenuecat-group","subpath":"","topnav":{"left":[],"right":[{"type":"user"}],"bottom":[],"edited":false},"translate":{"provider":"transifex","show_widget":false,"key_public":"","key_secret":"","org_name":"","project_name":"","languages":[]},"url":"","versions":[{"_id":"640b8371593b400034c6109b","version":"1.0.0","version_clean":"1.0.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":[],"releaseDate":"2023-03-10T19:22:25.325Z","createdAt":"2023-03-10T19:22:25.325Z","project":"640b8371593b400034c6109c","__v":0}],"variableDefaults":[],"webhookEnabled":false},"isHubEditable":true},"version":{"_id":"61e6d1c8dc6456005396886c","version":"4.0","version_clean":"4.0.0","codename":"iOS 4.x, Android 5.x, Amazon Support","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["61e6d1c8dc645600539687c7","61e6d1c8dc645600539687c8","61e6d1c8dc645600539687c9","61e6d1c8dc645600539687ca","61e6d1c8dc645600539687cb","61e6d1c8dc645600539687cc","61e6d1c8dc645600539687cd","61e6d1c8dc645600539687ce","61e6d1c8dc645600539687cf","61e6d1c8dc645600539687d0","61e6d1c8dc645600539687d1","6296a0f4e21cc500a7f5df1f","62b2014ffd726300996f8aca","62b23dcd24a8c1001479d1ac","62b35551d55362051e1c5316","62d9671bff2a2d0061dce3e5","62d967408cd9e7006a49f56a","62d96758c44ed105698767e8","62d967a30e65dd095900c7d2","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","62e3ec7168457e069b3e8676","632c1aaadc170100336dc48b","634873f308753d004c821577","6376b426081e400003bac6ad"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"619e8e1a86178b0080bf0e98","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"}},"reqUrl":"/docs/apple-search-ads","version":{"_id":"61e6d1c8dc6456005396886c","version":"4.0","version_clean":"4.0.0","codename":"iOS 4.x, Android 5.x, Amazon Support","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["61e6d1c8dc645600539687c7","61e6d1c8dc645600539687c8","61e6d1c8dc645600539687c9","61e6d1c8dc645600539687ca","61e6d1c8dc645600539687cb","61e6d1c8dc645600539687cc","61e6d1c8dc645600539687cd","61e6d1c8dc645600539687ce","61e6d1c8dc645600539687cf","61e6d1c8dc645600539687d0","61e6d1c8dc645600539687d1","6296a0f4e21cc500a7f5df1f","62b2014ffd726300996f8aca","62b23dcd24a8c1001479d1ac","62b35551d55362051e1c5316","62d9671bff2a2d0061dce3e5","62d967408cd9e7006a49f56a","62d96758c44ed105698767e8","62d967a30e65dd095900c7d2","62d9695407a31e009a363784","62e2ebc845f9b400aa27a041","62e3ec7168457e069b3e8676","632c1aaadc170100336dc48b","634873f308753d004c821577","6376b426081e400003bac6ad"],"project":"5ae768fde9566300035d794e","__v":1,"forked_from":"619e8e1a86178b0080bf0e98","createdAt":"2018-04-30T19:05:33.208Z","releaseDate":"2018-04-30T19:05:33.208Z","pdfStatus":"complete"},"lang":"en","langFull":"English","isDetachedProductionSite":false,"rdmdOpts":{"normalize":true,"correctnewlines":false,"compatibilityMode":false}}">