{
  "service": "revenuecat",
  "displayName": "RevenueCat",
  "description": "Manage RevenueCat projects, customers, subscriptions, entitlements, offerings, products, and metrics.",
  "categories": [
    "Finance",
    "Developer Tools",
    "Subscriptions"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "V2 Secret API Key",
      "placeholder": "sk_...",
      "description": "RevenueCat REST API v2 secret API key sent as a Bearer token. Create a V2 secret key in the RevenueCat project settings API keys page: https://www.revenuecat.com/docs/welcome/authentication.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.revenuecat.com",
  "actions": [
    {
      "id": "revenuecat.get_customer",
      "service": "revenuecat",
      "name": "get_customer",
      "description": "Retrieve a RevenueCat customer and optionally expand the customer's attributes.",
      "requiredScopes": [
        "customer_information:customers:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat customer or app user ID."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "attributes"
              ],
              "description": "A customer field to expand."
            },
            "description": "Optional customer fields to expand in the response.",
            "maxItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "customerId"
        ],
        "description": "Input for retrieving a RevenueCat customer."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "customer": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A RevenueCat customer."
          }
        },
        "additionalProperties": false,
        "description": "A RevenueCat customer response."
      }
    },
    {
      "id": "revenuecat.get_overview_metrics",
      "service": "revenuecat",
      "name": "get_overview_metrics",
      "description": "Retrieve overview metrics for a RevenueCat project.",
      "requiredScopes": [
        "charts_metrics:overview:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "currency": {
            "type": "string",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "AUD",
              "CAD",
              "JPY",
              "BRL",
              "KRW",
              "CNY",
              "MXN",
              "SEK",
              "PLN",
              "NZD",
              "CHF"
            ],
            "description": "Currency used for the returned RevenueCat metrics."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Input for retrieving RevenueCat overview metrics."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "metrics": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "RevenueCat project overview metrics."
          }
        },
        "additionalProperties": false,
        "description": "RevenueCat overview metrics response."
      }
    },
    {
      "id": "revenuecat.get_revenue_metric",
      "service": "revenuecat",
      "name": "get_revenue_metric",
      "description": "Retrieve total RevenueCat project revenue for an inclusive date range.",
      "requiredScopes": [
        "charts_metrics:overview:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "startDate": {
            "type": "string",
            "description": "Inclusive start date in ISO 8601 format.",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "description": "Inclusive end date in ISO 8601 format.",
            "format": "date"
          },
          "currency": {
            "type": "string",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "AUD",
              "CAD",
              "JPY",
              "BRL",
              "KRW",
              "CNY",
              "MXN",
              "SEK",
              "PLN",
              "NZD",
              "CHF"
            ],
            "description": "Currency used for the returned RevenueCat metrics."
          },
          "revenueType": {
            "type": "string",
            "enum": [
              "revenue",
              "revenue_net_of_taxes",
              "proceeds"
            ],
            "description": "Revenue definition returned as the metric value."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "startDate",
          "endDate"
        ],
        "description": "Input for retrieving RevenueCat revenue metrics."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "metric": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "RevenueCat revenue metric data."
          }
        },
        "additionalProperties": false,
        "description": "RevenueCat revenue metric response."
      }
    },
    {
      "id": "revenuecat.get_subscription",
      "service": "revenuecat",
      "name": "get_subscription",
      "description": "Retrieve a RevenueCat subscription by its subscription ID.",
      "requiredScopes": [
        "customer_information:subscriptions:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "subscriptionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat subscription ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "subscriptionId"
        ],
        "description": "Input for retrieving a RevenueCat subscription."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "subscription": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A RevenueCat subscription."
          }
        },
        "additionalProperties": false,
        "description": "A RevenueCat subscription response."
      }
    },
    {
      "id": "revenuecat.list_customer_active_entitlements",
      "service": "revenuecat",
      "name": "list_customer_active_entitlements",
      "description": "List the entitlements currently active for a RevenueCat customer.",
      "requiredScopes": [
        "customer_information:customers:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat customer or app user ID."
          },
          "startingAfter": {
            "type": "string",
            "description": "Return records after this RevenueCat cursor."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "customerId"
        ],
        "description": "Pagination for a customer's active RevenueCat entitlements."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "object": {
            "const": "list",
            "type": "string",
            "description": "RevenueCat list response marker."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "An active RevenueCat customer entitlement."
            },
            "description": "Records returned by RevenueCat."
          },
          "nextPage": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page, or null when there are no more records."
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string",
            "description": "URL of the current RevenueCat list response."
          }
        },
        "additionalProperties": false,
        "description": "A paginated list of active customer entitlements."
      }
    },
    {
      "id": "revenuecat.list_customer_subscriptions",
      "service": "revenuecat",
      "name": "list_customer_subscriptions",
      "description": "List subscriptions belonging to a RevenueCat customer.",
      "requiredScopes": [
        "customer_information:subscriptions:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat customer or app user ID."
          },
          "startingAfter": {
            "type": "string",
            "description": "Return records after this RevenueCat cursor."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "customerId"
        ],
        "description": "Pagination for a customer's RevenueCat subscriptions."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "object": {
            "const": "list",
            "type": "string",
            "description": "RevenueCat list response marker."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A RevenueCat subscription."
            },
            "description": "Records returned by RevenueCat."
          },
          "nextPage": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page, or null when there are no more records."
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string",
            "description": "URL of the current RevenueCat list response."
          }
        },
        "additionalProperties": false,
        "description": "A paginated list of customer subscriptions."
      }
    },
    {
      "id": "revenuecat.list_customers",
      "service": "revenuecat",
      "name": "list_customers",
      "description": "List customers in a RevenueCat project, optionally searching by email or customer identifier.",
      "requiredScopes": [
        "customer_information:customers:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "startingAfter": {
            "type": "string",
            "description": "Return records after this RevenueCat cursor."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Search by customer email, app user ID, store transaction identifier, or Apple order ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Filters for RevenueCat customers."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "object": {
            "const": "list",
            "type": "string",
            "description": "RevenueCat list response marker."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A RevenueCat customer."
            },
            "description": "Records returned by RevenueCat."
          },
          "nextPage": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page, or null when there are no more records."
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string",
            "description": "URL of the current RevenueCat list response."
          }
        },
        "additionalProperties": false,
        "description": "A paginated list of RevenueCat customers."
      }
    },
    {
      "id": "revenuecat.list_entitlements",
      "service": "revenuecat",
      "name": "list_entitlements",
      "description": "List entitlement definitions configured in a RevenueCat project.",
      "requiredScopes": [
        "project_configuration:entitlements:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "startingAfter": {
            "type": "string",
            "description": "Return records after this RevenueCat cursor."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Pagination for RevenueCat entitlements."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "object": {
            "const": "list",
            "type": "string",
            "description": "RevenueCat list response marker."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A RevenueCat entitlement definition."
            },
            "description": "Records returned by RevenueCat."
          },
          "nextPage": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page, or null when there are no more records."
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string",
            "description": "URL of the current RevenueCat list response."
          }
        },
        "additionalProperties": false,
        "description": "A paginated list of RevenueCat entitlements."
      }
    },
    {
      "id": "revenuecat.list_offerings",
      "service": "revenuecat",
      "name": "list_offerings",
      "description": "List offerings configured in a RevenueCat project, optionally expanding packages and products.",
      "requiredScopes": [
        "project_configuration:offerings:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "startingAfter": {
            "type": "string",
            "description": "Return records after this RevenueCat cursor."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "items.package",
                "items.package.product"
              ],
              "description": "An Offering field to expand."
            },
            "description": "Optional Offering fields to expand in the response.",
            "maxItems": 2
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Pagination and expansion options for RevenueCat offerings."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "object": {
            "const": "list",
            "type": "string",
            "description": "RevenueCat list response marker."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A RevenueCat offering."
            },
            "description": "Records returned by RevenueCat."
          },
          "nextPage": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page, or null when there are no more records."
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string",
            "description": "URL of the current RevenueCat list response."
          }
        },
        "additionalProperties": false,
        "description": "A paginated list of RevenueCat offerings."
      }
    },
    {
      "id": "revenuecat.list_products",
      "service": "revenuecat",
      "name": "list_products",
      "description": "List products configured in a RevenueCat project.",
      "requiredScopes": [
        "project_configuration:products:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "startingAfter": {
            "type": "string",
            "description": "Return records after this RevenueCat cursor."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Pagination for RevenueCat products."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "object": {
            "const": "list",
            "type": "string",
            "description": "RevenueCat list response marker."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A RevenueCat product."
            },
            "description": "Records returned by RevenueCat."
          },
          "nextPage": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page, or null when there are no more records."
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string",
            "description": "URL of the current RevenueCat list response."
          }
        },
        "additionalProperties": false,
        "description": "A paginated list of RevenueCat products."
      }
    },
    {
      "id": "revenuecat.list_projects",
      "service": "revenuecat",
      "name": "list_projects",
      "description": "List RevenueCat projects accessible to the configured secret API key.",
      "requiredScopes": [
        "project_configuration:projects:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "startingAfter": {
            "type": "string",
            "description": "Return records after this RevenueCat cursor."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return."
          }
        },
        "additionalProperties": false,
        "description": "Pagination for RevenueCat projects."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "object": {
            "const": "list",
            "type": "string",
            "description": "RevenueCat list response marker."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A RevenueCat project."
            },
            "description": "Records returned by RevenueCat."
          },
          "nextPage": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page, or null when there are no more records."
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string",
            "description": "URL of the current RevenueCat list response."
          }
        },
        "additionalProperties": false,
        "description": "A paginated list of RevenueCat projects."
      }
    },
    {
      "id": "revenuecat.search_subscriptions",
      "service": "revenuecat",
      "name": "search_subscriptions",
      "description": "Find subscriptions by a store subscription identifier such as an Apple transaction ID or Google order ID.",
      "requiredScopes": [
        "customer_information:subscriptions:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "RevenueCat project ID."
          },
          "storeSubscriptionIdentifier": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1500,
            "description": "Store subscription identifier to search for."
          },
          "includeScheduled": {
            "type": "boolean",
            "description": "Whether to include subscriptions scheduled to start in the future."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "storeSubscriptionIdentifier"
        ],
        "description": "Input for searching RevenueCat subscriptions."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "object": {
            "const": "list",
            "type": "string",
            "description": "RevenueCat list response marker."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A RevenueCat subscription."
            },
            "description": "Records returned by RevenueCat."
          },
          "nextPage": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next page, or null when there are no more records."
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string",
            "description": "URL of the current RevenueCat list response."
          }
        },
        "additionalProperties": false,
        "description": "A list of subscriptions matching the store identifier."
      }
    }
  ]
}
