name: rc-internal-cli
description: >-
Work with the rc-internal CLI for RevenueCat's internal dashboard API at
app.revenuecat.com/internal/v1. Use session cookie authentication via
rc-internal login. Covers projects, offerings, entitlements, products,
apps, charts, experiments, subscriber lists, collaborators, API keys, audit
logs, stores status, and utilities. Use when user mentions rc-internal,
internal dashboard, session auth, or RevenueCat dashboard commands.
rc-internal CLI
A CLI for RevenueCat's Internal Dashboard API at https://app.revenuecat.com/internal/v1.
Authentication
rc-internal login
# Enter your RevenueCat email and password
Session token auto-refreshes when expired. Store credentials in ~/.rc-internal/ (config package).
Projects
rc-internal internal projects list # List all accessible projects
rc-internal internal projects use -i <project_id> # Set default project
rc-internal internal projects create -n "My App" # Create a new project
rc-internal internal projects create -n "My App" --platforms apple_native google_play
rc-internal internal projects create -n "My App" --category "finance"
rc-internal internal projects get -i <project_id> # Get project details
Entitlements
rc-internal internal entitlements list # List all entitlements
rc-internal internal entitlements create -i pro -n "Pro Tier" # Create entitlement
rc-internal internal entitlements attach-products -e <entitlement_id> --product-ids <id1>,<id2>
rc-internal internal entitlements detach-products -e <entitlement_id> --product-ids <id1>
rc-internal internal entitlements archive -e <entitlement_id> # Archive entitlement
rc-internal internal entitlements delete -e <entitlement_id> # Delete entitlement
Offerings
rc-internal internal offerings list # List all offerings
rc-internal internal offerings list --platform IOS # Filter by platform
rc-internal internal offerings get -o <offering_id> # Get offering details
rc-internal internal offerings create -i weekly -n "Weekly" # Create offering
rc-internal internal offerings update -o <offering_id> -n "New Name"
rc-internal internal offerings update -o <offering_id> --metadata '{"tier":"pro"}'
rc-internal internal offerings update -o <offering_id> --packages '[{"identifier":"my.weekly","display_name":"Weekly","products":[{"product_id":"prodXXXX"}]}]'
rc-internal internal offerings duplicate -o <offering_id> -i new-id -n "New Name"
rc-internal internal offerings duplicate -o <offering_id> -i new-id -n "New Name" --packages-only
rc-internal internal offerings set-current -o <offering_id> # Set as current/default
rc-internal internal offerings archive -o <offering_id> # Archive offering
rc-internal internal offerings delete -o <offering_id> # Delete offering
Offering Metadata Schema
The --metadata flag supports rich JSON for paywall configuration:
{
"title": "Unlock Pro",
"subtitle": "Get access to all premium features",
"features": ["Feature 1", "Feature 2", "Feature 3"],
"colorScheme": {
"dark": { "primary": "#...", "background": "#..." },
"light": { "primary": "#...", "background": "#..." }
},
"packages": [
{ "rcIdentifier": "weekly", "type": "weekly", "title": "Weekly", "subtitle": "Try Pro this week", "shouldBeGivenProminance": false },
{ "rcIdentifier": "annual", "type": "annual", "title": "Yearly", "subtitle": "Best value", "shouldBeGivenProminance": true },
{ "rcIdentifier": "lifetime", "type": "lifetime", "title": "Lifetime", "subtitle": "One-time unlock" }
],
"primarySelectedPackageIndex": 1,
"headerImageURL": "https://...",
"privacyPolicyURL": "https://...",
"termsAndConditionsURL": "https://...",
"reviews": [{ "review": "Great app!", "reviewer": "User", "stars": 5 }]
}
Products
rc-internal internal products list # List all products (default 100)
rc-internal internal products list --limit 2500 # List with higher limit
rc-internal internal products create --app-id <id> --product-type subscription --identifier my.weekly --name "Weekly Subscription"
rc-internal internal products create --app-id <id> --product-type non_consumable_product --identifier my.tip --name "Tip Jar"
rc-internal internal products update --product-id <id> -n "New Name"
Product Types
subscription— Recurring subscriptionnon_consumable_product— One-time purchase (permanent)consumable_product— One-time purchase (consumable)non_renewing_subscription— Non-renewing subscription
Apps
rc-internal internal apps list # List all apps
rc-internal internal apps subscription-groups -i <app_id> # List subscription groups
rc-internal internal apps app-store-products create -i <app_id> --subscription-group-id <group_id> --identifier my.weekly --name "Weekly" --duration ONE_WEEK
Charts
rc-internal internal charts overview # Project overview analytics
rc-internal internal charts overview --sandbox # Include sandbox data
rc-internal internal charts overview-all # Overview across all projects
rc-internal internal charts revenue --start-date 2024-01-01 --end-date 2024-12-31
rc-internal internal charts revenue --resolution 0 --sandbox
rc-internal internal charts transactions --start-date 2024-01-01
rc-internal internal charts trials --start-date 2024-01-01
Chart Resolution
0— Daily1— Weekly2— Monthly
Experiments
rc-internal internal experiments list
rc-internal internal experiments types
rc-internal internal experiments create -n "Price Test" -a <offering_a_id> -b <offering_b_id>
rc-internal internal experiments create -n "Price Test" -a <offering_a_id> -b <offering_b_id> --enrollment 50
rc-internal internal experiments create -n "Price Test" -a <offering_a_id> -b <offering_b_id> --primary-metric "Realized LTV per customer"
rc-internal internal experiments get -e <experiment_id>
rc-internal internal experiments pause -e <experiment_id>
rc-internal internal experiments resume -e <experiment_id>
rc-internal internal experiments stop -e <experiment_id>
Experiment Types
Run rc-internal internal experiments types to see available types. Common types:
paywall_design— Paywall design testsubscription_duration— Subscription duration testsubscription_offering— Subscription offering test
Subscriber Lists
rc-internal internal lists list # List subscriber lists
rc-internal internal lists list --limit 50
rc-internal internal lists get -l <list_id> # Get list details
rc-internal internal lists manifest # Get manifest of all lists
Other Commands
rc-internal internal collaborators list # List project collaborators
rc-internal internal apikeys list # List API keys
rc-internal internal audit list # List audit logs
rc-internal internal stores-status # Get store connection status
rc-internal internal stores-status stores # Alias
rc-internal internal stores-status product-stores # Alias
rc-internal internal utilities countries # List supported countries
Global Flags
-p, --project-id string RevenueCat project ID (required for most commands)
Quick Setup
rc-internal login
rc-internal internal projects list
rc-internal internal projects use -i <project_id>