RevenueCat

Manage in-app subscriptions and entitlements

RevenueCat is a subscription management platform that enables you to easily set up, manage, and analyze in-app subscriptions for your apps. With RevenueCat, you can handle the complexities of in-app purchases across platforms like iOS, Android, and web—all through a single unified API.

With RevenueCat, you can:

  • Manage subscribers: Track user subscriptions, entitlements, and purchases across all platforms in real time
  • Simplify implementation: Integrate RevenueCat’s SDKs to abstract away App Store and Play Store purchase logic
  • Automate entitlement logic: Define and manage what features users should receive when they purchase or renew
  • Analyze revenue: Access dashboards and analytics to view churn, LTV, revenue, active subscriptions, and more
  • Grant or revoke entitlements: Manually adjust user access (for example, for customer support or promotions)
  • Operate globally: Support purchases, refunds, and promotions worldwide with ease

In Sim, the RevenueCat integration allows your agents to fetch and manage subscriber data, review and update entitlements, and automate subscription-related workflows. Use RevenueCat to centralize subscription operations for your apps directly within your Sim workspace.

Usage Instructions

Integrate RevenueCat into the workflow. Manage subscribers, entitlements, offerings, and Google Play subscriptions. Retrieve customer subscription status, grant or revoke promotional entitlements, record purchases, update subscriber attributes, and manage Google Play subscription billing.

Tools

revenuecat_get_customer

Retrieve subscriber information by app user ID

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber

Output

ParameterTypeDescription
subscriberobjectThe subscriber object with subscriptions and entitlements
first_seenstringISO 8601 date when subscriber was first seen
last_seenstringISO 8601 date when subscriber was last seen
original_app_user_idstringOriginal app user ID
original_application_versionstringiOS only. First App Store version of your app the customer installed
original_purchase_datestringiOS only. Date the app was first purchased/downloaded
management_urlstringURL for managing the subscriber subscriptions
subscriptionsobjectMap of product identifiers to subscription objects
store_transaction_idstringStore transaction identifier
original_transaction_idstringOriginal transaction identifier
purchase_datestringISO 8601 purchase date
original_purchase_datestringISO 8601 date of the original purchase
expires_datestringISO 8601 expiration date
is_sandboxbooleanWhether this is a sandbox purchase
unsubscribe_detected_atstringISO 8601 date when unsubscribe was detected
billing_issues_detected_atstringISO 8601 date when billing issues were detected
grace_period_expires_datestringISO 8601 grace period expiration date
ownership_typestringOwnership type (purchased, family_shared)
period_typestringPeriod type (normal, trial, intro, promotional, prepaid)
storestringStore the subscription was purchased from (app_store, play_store, stripe, etc.)
refunded_atstringISO 8601 date when subscription was refunded
auto_resume_datestringISO 8601 date when a paused subscription will auto-resume
product_plan_identifierstringGoogle Play base plan identifier (for products set up after Feb 2023)
entitlementsobjectMap of entitlement identifiers to entitlement objects
expires_datestringISO 8601 expiration date (null for non-expiring entitlements)
grace_period_expires_datestringISO 8601 grace period expiration date
product_identifierstringProduct identifier
purchase_datestringISO 8601 date of the latest purchase or renewal
non_subscriptionsobjectMap of non-subscription product identifiers to arrays of purchase objects
other_purchasesobjectOther purchases attached to the subscriber
subscriber_attributesobjectCustom attributes set on the subscriber. Only returned when using a secret API key
metadataobjectSubscriber summary metadata
app_user_idstringThe app user ID
first_seenstringISO 8601 date when the subscriber was first seen
active_entitlementsnumberNumber of active entitlements
active_subscriptionsnumberNumber of active subscriptions

revenuecat_delete_customer

Permanently delete a subscriber and all associated data

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber to delete

Output

ParameterTypeDescription
deletedbooleanWhether the subscriber was deleted
app_user_idstringThe deleted app user ID

revenuecat_create_purchase

Record a purchase (receipt) for a subscriber via the REST API

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat API key (public or secret)
appUserIdstringYesThe app user ID of the subscriber
fetchTokenstringYesFor iOS, the base64-encoded receipt (or JWSTransaction for StoreKit2); for Android the purchase token; for Amazon the receipt; for Stripe the subscription ID or Checkout Session ID; for Roku the transaction ID; for Paddle the subscription ID or transaction ID
productIdstringNoApple, Google, Amazon, Roku, or Paddle product identifier or SKU. Required for Google.
pricenumberNoPrice of the product. Required if you provide a currency.
currencystringNoISO 4217 currency code (e.g., USD, EUR). Required if you provide a price.
isRestorebooleanNoDeprecated. Triggers configured restore behavior for shared fetch tokens.
presentedOfferingIdentifierstringNoIdentifier of the offering presented to the customer at the time of purchase. Attached to new transactions in this fetch token and exposed in ETL exports and webhooks.
paymentModestringNoPayment mode for the introductory period. One of: pay_as_you_go, pay_up_front, free_trial. Defaults to free_trial when an introductory period is detected and no value is provided.
introductoryPricenumberNoIntroductory price paid (if any).
attributesjsonNoJSON object of subscriber attributes to set alongside the purchase. Each key maps to {"value": string, "updated_at_ms": number}.
updatedAtMsnumberNoUNIX epoch in milliseconds used to resolve attribute conflicts at the request level.
platformstringYesPlatform of the purchase. One of: ios, android, amazon, macos, uikitformac, stripe, roku, paddle. Sent as the X-Platform header (required by RevenueCat).

Output

ParameterTypeDescription
customerobjectCustomer object returned at the top level of POST /v1/receipts (first_seen, last_seen, original_app_user_id, original_application_version, original_sdk_version, management_url, entitlements, original_purchase_date, request_date). Null when the response uses the value-wrapped envelope.
subscriberobjectThe updated subscriber object after recording the purchase
first_seenstringISO 8601 date when subscriber was first seen
last_seenstringISO 8601 date when subscriber was last seen
original_app_user_idstringOriginal app user ID
original_application_versionstringiOS only. First App Store version of your app the customer installed
original_purchase_datestringiOS only. Date the app was first purchased/downloaded
management_urlstringURL for managing the subscriber subscriptions
subscriptionsobjectMap of product identifiers to subscription objects
store_transaction_idstringStore transaction identifier
original_transaction_idstringOriginal transaction identifier
purchase_datestringISO 8601 purchase date
original_purchase_datestringISO 8601 date of the original purchase
expires_datestringISO 8601 expiration date
is_sandboxbooleanWhether this is a sandbox purchase
unsubscribe_detected_atstringISO 8601 date when unsubscribe was detected
billing_issues_detected_atstringISO 8601 date when billing issues were detected
grace_period_expires_datestringISO 8601 grace period expiration date
ownership_typestringOwnership type (purchased, family_shared)
period_typestringPeriod type (normal, trial, intro, promotional, prepaid)
storestringStore the subscription was purchased from (app_store, play_store, stripe, etc.)
refunded_atstringISO 8601 date when subscription was refunded
auto_resume_datestringISO 8601 date when a paused subscription will auto-resume
product_plan_identifierstringGoogle Play base plan identifier (for products set up after Feb 2023)
entitlementsobjectMap of entitlement identifiers to entitlement objects
expires_datestringISO 8601 expiration date (null for non-expiring entitlements)
grace_period_expires_datestringISO 8601 grace period expiration date
product_identifierstringProduct identifier
purchase_datestringISO 8601 date of the latest purchase or renewal
non_subscriptionsobjectMap of non-subscription product identifiers to arrays of purchase objects
other_purchasesobjectOther purchases attached to the subscriber
subscriber_attributesobjectCustom attributes set on the subscriber. Only returned when using a secret API key

revenuecat_grant_entitlement

Grant a promotional entitlement to a subscriber

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
entitlementIdentifierstringYesThe entitlement identifier to grant
durationstringNoDeprecated. Duration of the entitlement. Provide either duration or endTimeMs (endTimeMs preferred). One of: daily, three_day, weekly, two_week, monthly, two_month, three_month, six_month, yearly, lifetime
endTimeMsnumberNoAbsolute end time in milliseconds since Unix epoch. Use instead of duration to grant the entitlement until a specific timestamp.
startTimeMsnumberNoDeprecated. Optional start time in milliseconds since Unix epoch, used with duration to determine expiration. Regardless of value, the entitlement is always granted immediately.

Output

ParameterTypeDescription
subscriberobjectThe updated subscriber object after granting the entitlement
first_seenstringISO 8601 date when subscriber was first seen
last_seenstringISO 8601 date when subscriber was last seen
original_app_user_idstringOriginal app user ID
original_application_versionstringiOS only. First App Store version of your app the customer installed
original_purchase_datestringiOS only. Date the app was first purchased/downloaded
management_urlstringURL for managing the subscriber subscriptions
subscriptionsobjectMap of product identifiers to subscription objects
store_transaction_idstringStore transaction identifier
original_transaction_idstringOriginal transaction identifier
purchase_datestringISO 8601 purchase date
original_purchase_datestringISO 8601 date of the original purchase
expires_datestringISO 8601 expiration date
is_sandboxbooleanWhether this is a sandbox purchase
unsubscribe_detected_atstringISO 8601 date when unsubscribe was detected
billing_issues_detected_atstringISO 8601 date when billing issues were detected
grace_period_expires_datestringISO 8601 grace period expiration date
ownership_typestringOwnership type (purchased, family_shared)
period_typestringPeriod type (normal, trial, intro, promotional, prepaid)
storestringStore the subscription was purchased from (app_store, play_store, stripe, etc.)
refunded_atstringISO 8601 date when subscription was refunded
auto_resume_datestringISO 8601 date when a paused subscription will auto-resume
product_plan_identifierstringGoogle Play base plan identifier (for products set up after Feb 2023)
entitlementsobjectMap of entitlement identifiers to entitlement objects
expires_datestringISO 8601 expiration date (null for non-expiring entitlements)
grace_period_expires_datestringISO 8601 grace period expiration date
product_identifierstringProduct identifier
purchase_datestringISO 8601 date of the latest purchase or renewal
non_subscriptionsobjectMap of non-subscription product identifiers to arrays of purchase objects
other_purchasesobjectOther purchases attached to the subscriber
subscriber_attributesobjectCustom attributes set on the subscriber. Only returned when using a secret API key

revenuecat_revoke_entitlement

Revoke all promotional entitlements for a specific entitlement identifier

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
entitlementIdentifierstringYesThe entitlement identifier to revoke

Output

ParameterTypeDescription
subscriberobjectThe updated subscriber object after revoking the entitlement
first_seenstringISO 8601 date when subscriber was first seen
last_seenstringISO 8601 date when subscriber was last seen
original_app_user_idstringOriginal app user ID
original_application_versionstringiOS only. First App Store version of your app the customer installed
original_purchase_datestringiOS only. Date the app was first purchased/downloaded
management_urlstringURL for managing the subscriber subscriptions
subscriptionsobjectMap of product identifiers to subscription objects
store_transaction_idstringStore transaction identifier
original_transaction_idstringOriginal transaction identifier
purchase_datestringISO 8601 purchase date
original_purchase_datestringISO 8601 date of the original purchase
expires_datestringISO 8601 expiration date
is_sandboxbooleanWhether this is a sandbox purchase
unsubscribe_detected_atstringISO 8601 date when unsubscribe was detected
billing_issues_detected_atstringISO 8601 date when billing issues were detected
grace_period_expires_datestringISO 8601 grace period expiration date
ownership_typestringOwnership type (purchased, family_shared)
period_typestringPeriod type (normal, trial, intro, promotional, prepaid)
storestringStore the subscription was purchased from (app_store, play_store, stripe, etc.)
refunded_atstringISO 8601 date when subscription was refunded
auto_resume_datestringISO 8601 date when a paused subscription will auto-resume
product_plan_identifierstringGoogle Play base plan identifier (for products set up after Feb 2023)
entitlementsobjectMap of entitlement identifiers to entitlement objects
expires_datestringISO 8601 expiration date (null for non-expiring entitlements)
grace_period_expires_datestringISO 8601 grace period expiration date
product_identifierstringProduct identifier
purchase_datestringISO 8601 date of the latest purchase or renewal
non_subscriptionsobjectMap of non-subscription product identifiers to arrays of purchase objects
other_purchasesobjectOther purchases attached to the subscriber
subscriber_attributesobjectCustom attributes set on the subscriber. Only returned when using a secret API key

revenuecat_list_offerings

List all offerings configured for the project

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat API key
appUserIdstringYesAn app user ID to retrieve offerings for
platformstringNoX-Platform header value. One of: ios, android, amazon, stripe, roku, paddle. Required when using a legacy public API key; ignored with app-specific API keys.

Output

ParameterTypeDescription
current_offering_idstringThe identifier of the current offering
offeringsarrayList of offerings
identifierstringOffering identifier
descriptionstringOffering description
packagesarrayList of packages in the offering
identifierstringPackage identifier
platform_product_identifierstringPlatform-specific product identifier
metadataobjectOfferings metadata
countnumberNumber of offerings returned
current_offering_idstringCurrent offering identifier

revenuecat_update_subscriber_attributes

Update custom subscriber attributes (e.g., $email, $displayName, or custom key-value pairs)

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
attributesjsonYesJSON object of attributes to set. Each key maps to an object with "value" (string; null or empty deletes the attribute) and "updated_at_ms" (Unix epoch ms used for conflict resolution — required). Example: {"$email": {"value": "user@example.com", "updated_at_ms": 1709195668093}}

Output

ParameterTypeDescription
updatedbooleanWhether the subscriber attributes were successfully updated
app_user_idstringThe app user ID of the updated subscriber

revenuecat_defer_google_subscription

Defer a Google Play subscription by extending its billing date by a number of days (Google Play only)

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
productIdstringYesThe Google Play product identifier of the subscription to defer (use the part before the colon for products set up after Feb 2023)
extendByDaysnumberNoNumber of days to extend the subscription by (1-365). Provide either extendByDays or expiryTimeMs.
expiryTimeMsnumberNoAbsolute new expiry time in milliseconds since Unix epoch. Use instead of extendByDays to set an exact expiry.

Output

ParameterTypeDescription
subscriberobjectThe updated subscriber object after deferring the Google subscription
first_seenstringISO 8601 date when subscriber was first seen
last_seenstringISO 8601 date when subscriber was last seen
original_app_user_idstringOriginal app user ID
original_application_versionstringiOS only. First App Store version of your app the customer installed
original_purchase_datestringiOS only. Date the app was first purchased/downloaded
management_urlstringURL for managing the subscriber subscriptions
subscriptionsobjectMap of product identifiers to subscription objects
store_transaction_idstringStore transaction identifier
original_transaction_idstringOriginal transaction identifier
purchase_datestringISO 8601 purchase date
original_purchase_datestringISO 8601 date of the original purchase
expires_datestringISO 8601 expiration date
is_sandboxbooleanWhether this is a sandbox purchase
unsubscribe_detected_atstringISO 8601 date when unsubscribe was detected
billing_issues_detected_atstringISO 8601 date when billing issues were detected
grace_period_expires_datestringISO 8601 grace period expiration date
ownership_typestringOwnership type (purchased, family_shared)
period_typestringPeriod type (normal, trial, intro, promotional, prepaid)
storestringStore the subscription was purchased from (app_store, play_store, stripe, etc.)
refunded_atstringISO 8601 date when subscription was refunded
auto_resume_datestringISO 8601 date when a paused subscription will auto-resume
product_plan_identifierstringGoogle Play base plan identifier (for products set up after Feb 2023)
entitlementsobjectMap of entitlement identifiers to entitlement objects
expires_datestringISO 8601 expiration date (null for non-expiring entitlements)
grace_period_expires_datestringISO 8601 grace period expiration date
product_identifierstringProduct identifier
purchase_datestringISO 8601 date of the latest purchase or renewal
non_subscriptionsobjectMap of non-subscription product identifiers to arrays of purchase objects
other_purchasesobjectOther purchases attached to the subscriber
subscriber_attributesobjectCustom attributes set on the subscriber. Only returned when using a secret API key

revenuecat_refund_google_subscription

Refund a specific store transaction by its store transaction identifier and revoke access (subscription or non-subscription, last 365 days)

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
storeTransactionIdstringYesThe store transaction identifier of the purchase to refund (e.g., GPA.3309-9122-6177-45730 for Google Play)

Output

ParameterTypeDescription
subscriberobjectThe updated subscriber object after refunding the Google subscription
first_seenstringISO 8601 date when subscriber was first seen
last_seenstringISO 8601 date when subscriber was last seen
original_app_user_idstringOriginal app user ID
original_application_versionstringiOS only. First App Store version of your app the customer installed
original_purchase_datestringiOS only. Date the app was first purchased/downloaded
management_urlstringURL for managing the subscriber subscriptions
subscriptionsobjectMap of product identifiers to subscription objects
store_transaction_idstringStore transaction identifier
original_transaction_idstringOriginal transaction identifier
purchase_datestringISO 8601 purchase date
original_purchase_datestringISO 8601 date of the original purchase
expires_datestringISO 8601 expiration date
is_sandboxbooleanWhether this is a sandbox purchase
unsubscribe_detected_atstringISO 8601 date when unsubscribe was detected
billing_issues_detected_atstringISO 8601 date when billing issues were detected
grace_period_expires_datestringISO 8601 grace period expiration date
ownership_typestringOwnership type (purchased, family_shared)
period_typestringPeriod type (normal, trial, intro, promotional, prepaid)
storestringStore the subscription was purchased from (app_store, play_store, stripe, etc.)
refunded_atstringISO 8601 date when subscription was refunded
auto_resume_datestringISO 8601 date when a paused subscription will auto-resume
product_plan_identifierstringGoogle Play base plan identifier (for products set up after Feb 2023)
entitlementsobjectMap of entitlement identifiers to entitlement objects
expires_datestringISO 8601 expiration date (null for non-expiring entitlements)
grace_period_expires_datestringISO 8601 grace period expiration date
product_identifierstringProduct identifier
purchase_datestringISO 8601 date of the latest purchase or renewal
non_subscriptionsobjectMap of non-subscription product identifiers to arrays of purchase objects
other_purchasesobjectOther purchases attached to the subscriber
subscriber_attributesobjectCustom attributes set on the subscriber. Only returned when using a secret API key

revenuecat_revoke_google_subscription

Immediately revoke access to a Google Play subscription and issue a refund (Google Play only)

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
productIdstringYesThe Google Play product identifier of the subscription to revoke

Output

ParameterTypeDescription
subscriberobjectThe updated subscriber object after revoking the Google subscription
first_seenstringISO 8601 date when subscriber was first seen
last_seenstringISO 8601 date when subscriber was last seen
original_app_user_idstringOriginal app user ID
original_application_versionstringiOS only. First App Store version of your app the customer installed
original_purchase_datestringiOS only. Date the app was first purchased/downloaded
management_urlstringURL for managing the subscriber subscriptions
subscriptionsobjectMap of product identifiers to subscription objects
store_transaction_idstringStore transaction identifier
original_transaction_idstringOriginal transaction identifier
purchase_datestringISO 8601 purchase date
original_purchase_datestringISO 8601 date of the original purchase
expires_datestringISO 8601 expiration date
is_sandboxbooleanWhether this is a sandbox purchase
unsubscribe_detected_atstringISO 8601 date when unsubscribe was detected
billing_issues_detected_atstringISO 8601 date when billing issues were detected
grace_period_expires_datestringISO 8601 grace period expiration date
ownership_typestringOwnership type (purchased, family_shared)
period_typestringPeriod type (normal, trial, intro, promotional, prepaid)
storestringStore the subscription was purchased from (app_store, play_store, stripe, etc.)
refunded_atstringISO 8601 date when subscription was refunded
auto_resume_datestringISO 8601 date when a paused subscription will auto-resume
product_plan_identifierstringGoogle Play base plan identifier (for products set up after Feb 2023)
entitlementsobjectMap of entitlement identifiers to entitlement objects
expires_datestringISO 8601 expiration date (null for non-expiring entitlements)
grace_period_expires_datestringISO 8601 grace period expiration date
product_identifierstringProduct identifier
purchase_datestringISO 8601 date of the latest purchase or renewal
non_subscriptionsobjectMap of non-subscription product identifiers to arrays of purchase objects
other_purchasesobjectOther purchases attached to the subscriber
subscriber_attributesobjectCustom attributes set on the subscriber. Only returned when using a secret API key

On this page