> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appeeky.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RevenueCat Overview

> Real-time subscription metrics — MRR, revenue, active subscriptions, trials, and customer counts

```
GET /v1/revenuecat/overview
```

Returns a snapshot of your app's key subscription metrics from RevenueCat, including MRR, revenue (last 28 days), active subscriptions, active trials, new customers, and active users. This is the fastest way to get a high-level view of your subscription business.

<Note>
  This endpoint proxies to the [RevenueCat Charts & Metrics API](https://www.revenuecat.com/docs/api-v2#tag/Charts-and-Metrics). You need a **RevenueCat secret API key** (`sk_xxx`) to use it. Charts require the **Pro plan** (free up to \$2,500 MTR).
</Note>

## Headers

| Name         | Type   | Required | Description                                                                         |
| ------------ | ------ | -------- | ----------------------------------------------------------------------------------- |
| X-RC-Key     | string | Yes      | Your RevenueCat **secret** API key (starts with `sk_`)                              |
| X-RC-Project | string | No       | RevenueCat project ID (e.g. `proj28fad9ba`). Auto-detected if you have one project. |

## Query Parameters

| Name     | Type   | Default | Description                                       |
| -------- | ------ | ------- | ------------------------------------------------- |
| currency | string | `USD`   | ISO 4217 currency code (e.g. `USD`, `EUR`, `GBP`) |

## Code Examples

<CodeGroup>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl -X GET "https://api.appeeky.com/v1/revenuecat/overview" \
    -H "X-API-Key: YOUR_API_KEY" \
    -H "X-RC-Key: sk_YOUR_REVENUECAT_SECRET_KEY"
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const response = await fetch(
    "https://api.appeeky.com/v1/revenuecat/overview",
    {
      headers: {
        "X-API-Key": "YOUR_API_KEY",
        "X-RC-Key": "sk_YOUR_REVENUECAT_SECRET_KEY",
      },
    }
  );

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import requests

  response = requests.get(
      "https://api.appeeky.com/v1/revenuecat/overview",
      headers={
          "X-API-Key": "YOUR_API_KEY",
          "X-RC-Key": "sk_YOUR_REVENUECAT_SECRET_KEY",
      },
  )

  data = response.json()
  print(data)
  ```
</CodeGroup>

## Response

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "data": {
    "metrics": [
      {
        "id": "active_trials",
        "name": "Active Trials",
        "description": "In total",
        "unit": "#",
        "period": "P0D",
        "value": 0,
        "last_updated_at": null,
        "last_updated_at_iso8601": null
      },
      {
        "id": "active_subscriptions",
        "name": "Active Subscriptions",
        "description": "In total",
        "unit": "#",
        "period": "P0D",
        "value": 1,
        "last_updated_at": null,
        "last_updated_at_iso8601": null
      },
      {
        "id": "mrr",
        "name": "MRR",
        "description": "Monthly Recurring Revenue",
        "unit": "$",
        "period": "P28D",
        "value": 11,
        "last_updated_at": null,
        "last_updated_at_iso8601": null
      },
      {
        "id": "revenue",
        "name": "Revenue",
        "description": "Last 28 days",
        "unit": "$",
        "period": "P28D",
        "value": 11,
        "last_updated_at": null,
        "last_updated_at_iso8601": null
      },
      {
        "id": "new_customers",
        "name": "New Customers",
        "description": "Last 28 days",
        "unit": "#",
        "period": "P28D",
        "value": 67,
        "last_updated_at": null,
        "last_updated_at_iso8601": null
      },
      {
        "id": "active_users",
        "name": "Active Users",
        "description": "Last 28 days",
        "unit": "#",
        "period": "P28D",
        "value": 67,
        "last_updated_at": null,
        "last_updated_at_iso8601": null
      }
    ]
  }
}
```

<Tip>
  The response includes metrics for multiple currencies (e.g. `mrr_eur`, `revenue_gbp`). Only the primary currency metrics are shown above — the full response includes all currency variants.
</Tip>

***

## Metric Object

| Field                      | Type           | Description                                                         |
| -------------------------- | -------------- | ------------------------------------------------------------------- |
| id                         | string         | Metric identifier (e.g. `mrr`, `active_subscriptions`)              |
| name                       | string         | Human-readable name                                                 |
| description                | string         | Short description of the metric                                     |
| unit                       | string         | `$` for currency, `#` for count                                     |
| period                     | string         | ISO 8601 duration — `P0D` = current snapshot, `P28D` = last 28 days |
| value                      | number         | Metric value                                                        |
| last\_updated\_at          | number \| null | Unix timestamp of last update                                       |
| last\_updated\_at\_iso8601 | string \| null | ISO 8601 timestamp of last update                                   |

### Key Metrics

| Metric ID              | Description                         |
| ---------------------- | ----------------------------------- |
| `active_trials`        | Currently active free trials        |
| `active_subscriptions` | Currently active paid subscriptions |
| `mrr`                  | Monthly Recurring Revenue (USD)     |
| `revenue`              | Total revenue in last 28 days (USD) |
| `new_customers`        | New customers in last 28 days       |
| `active_users`         | Active users in last 28 days        |

***

## X-RC-Project Header

If your RevenueCat account has **one project**, the project is auto-detected from your API key — no `X-RC-Project` header needed.

If you have **multiple projects**, omitting the header returns an error listing your available projects:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "error": {
    "code": "MULTIPLE_PROJECTS",
    "message": "Multiple projects found: My App (projABC123), Other App (projDEF456). Please specify X-RC-Project header."
  }
}
```

***

## Errors

| Status | Code               | When                                                  |
| ------ | ------------------ | ----------------------------------------------------- |
| 400    | MISSING\_RC\_KEY   | `X-RC-Key` header not provided                        |
| 400    | MULTIPLE\_PROJECTS | Multiple projects found, `X-RC-Project` not specified |
| 401    | UNAUTHORIZED       | Invalid RevenueCat API key                            |
| 404    | NO\_PROJECTS       | No projects found for this API key                    |

***

## Attribution

Customer-level Apple Search Ads dimensions (media source, campaign, keyword) and aggregated revenue by country are available through [RevenueCat Attribution](/docs/revenuecat-attribution).

| Endpoint                                                      | Description                               |
| ------------------------------------------------------------- | ----------------------------------------- |
| `GET /v1/connect/revenuecat/attribution-summary`              | Sample and aggregate attributed customers |
| `GET /v1/connect/revenuecat/customers/:customerId/attributes` | Full attribute list for one customer      |

Pair with [Apple Search Ads ROAS Workflow](/docs/apple-search-ads-roas-workflow) for end-to-end paid acquisition optimization.
