Browse docs
Sprid docs

Connect RevenueCat

See subscription revenue and how it changes over time.

Before you start

Admin access to the RevenueCat project, to create a dedicated V2 secret API key. The app’s public key and V1 keys do not work.

Set it up

  1. Select your project → API keys → Secret API keys → New secret API key.
  2. Name it Sprid analytics and select V2.
  3. Charts metrics permissions: set Overview Configuration Access Level and Charts Configuration Access Level to Read only.
  4. Project configuration permissions: set Apps Configuration Access Level to Read only. Leave everything else at No access.
  5. Click Generate. Use a separate key per app.
  6. Copy the key and leave it on your clipboard.

Project id

Project settings → General → Project ID, such as proj1ab2c3d4. Not the shorter id in the dashboard address.

Connect to Sprid

Run in your terminal
sprid connect revenuecat --app myapp --key-from-clipboard --project proj1ab2c3d4

Use your own app slug and project id. Add --workspace <slug> if needed. Keep the key out of chat.

Sprid reads the key from your clipboard, saves it and clears the clipboard, so it never shows on screen or lands in a file. Working with an agent? Tell it the key is copied and it runs this for you. Typing it yourself, copy the key last: paste the command into your terminal first, then copy the key, then press Enter. If the clipboard still holds the command, Sprid refuses it; copy the key and run it again. Without clipboard access (a remote shell), save the key to a file and pass --key <file> instead.

Check the connection

Ask your agent: “Check that Sprid can read this app’s RevenueCat overview and daily revenue history. Report any missing dates.” A saved key alone does not confirm access. The overview can work while history does not; missing dates are not zero sales.

If you also sell on the web

Connect the services that record the other sales. Sprid withholds a combined total when RevenueCat may already include the same Stripe or Paddle sales, or when currencies or definitions differ. RevenueCat Web Billing and your own Stripe are separate merchant accounts, so they never overlap.

See who buys

This key tells Sprid how much you sold, split by country, store, product and, when the app sends attribution to RevenueCat, by campaign. It cannot tell which visitor or user became a buyer. More permissions on this key would not change that: RevenueCat’s API reads customers one at a time.

To see who buys, send RevenueCat’s purchase events to the tool that already knows your users, under the same user id:

  1. In the app, give RevenueCat the id your analytics tool uses. Either log the user in with it (Purchases.logIn), or set the attribute the integration’s own RevenueCat page names.
  2. In RevenueCat, open Integrations and turn on the one you use: Amplitude, Mixpanel, PostHog, Segment, mParticle, Firebase (which reaches Google Analytics), or an attribution provider such as AppsFlyer or Adjust. For anything else, use a webhook or a scheduled export to your warehouse.
  3. Ask the question in that tool: which sources, pages or onboarding steps come before a purchase.

The PostHog integration moves every payer to the US. RevenueCat sends its events from its own servers, so PostHog’s GeoIP gives each rc_ event the server’s location (Ashburn, Virginia on every event we measured) and sets it on the person. After the first purchase, person-level country reads US for everyone who paid. Read buyer country from RevenueCat’s country breakdown, which is the store country, or from a purchase event your app sends itself; never from person properties. To stop the overwrite, exclude rc_ events from GeoIP enrichment in PostHog’s data pipeline settings, if your plan allows filtering it. Sprid’s own country breakdowns already come from RevenueCat, and its review flags this pattern when it finds it.

Cookieless analytics such as Plausible count visits without knowing who made them, so there is no user to match. Their UTM sources still line up with RevenueCat’s campaign breakdown as totals.

If something goes wrong
  • Key rejected: check it is an active V2 secret key for this project.
  • Access denied or history missing: open the key’s More → Edit, check all three Read only settings, then Submit. No new key needed.
  • Project not found: copy the full Project ID from Project settings → General. Key and id must belong to the same project.
  • Too many requests: retry later. Another key will not help.
Investigate with this connection

Reads chart_options, chart and subscriptions for the pinned project. Read chart_options before picking dimensions, filters or resolution, and keep the returned units. subscriptions also needs customer_information:subscriptions:read and defaults to production; ask for sandbox to see test purchases.

Run in your terminal
sprid marketing-review capabilities --app <slug> --source revenuecat --json

See connected queries.

Sources and verification

Setup and live reads checked 2026-09-09.

Prefer your terminal? sprid docs revenuecat reads this same guide.

Need a hand?
Colour theme
Back to Sprid ↗