openapi: 3.0.1 info: title: RevenueCat REST Apps API description: Representative OpenAPI description of RevenueCat's public REST surface. It covers the v1 REST API (https://api.revenuecat.com/v1) for subscribers, receipts/purchases, entitlements, offerings, and subscriber attributes, and the v2 REST API (https://api.revenuecat.com/v2) for projects, apps, customers, products, entitlements, offerings, and packages. Both APIs use HTTP Bearer authentication with a RevenueCat API key (v1 public or secret keys; v2 API keys). RevenueCat also delivers subscription lifecycle events via outbound webhooks (documented separately). termsOfService: https://www.revenuecat.com/terms/ contact: name: RevenueCat Support url: https://www.revenuecat.com/docs version: '1.0' servers: - url: https://api.revenuecat.com/v1 description: RevenueCat REST API v1 - url: https://api.revenuecat.com/v2 description: RevenueCat REST API v2 tags: - name: Apps description: v2 app (platform integration) management. paths: /projects/{project_id}/apps: get: operationId: listApps tags: - Apps summary: List apps description: Lists the apps (platform integrations) within a project. servers: - url: https://api.revenuecat.com/v2 parameters: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/StartingAfter' - $ref: '#/components/parameters/Limit' responses: '200': description: A paginated list of apps. content: application/json: schema: $ref: '#/components/schemas/AppList' security: - bearerAuth: [] post: operationId: createApp tags: - Apps summary: Create an app servers: - url: https://api.revenuecat.com/v2 parameters: - $ref: '#/components/parameters/ProjectId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/App' responses: '201': description: The created app. content: application/json: schema: $ref: '#/components/schemas/App' security: - bearerAuth: [] /projects/{project_id}/apps/{app_id}: get: operationId: getApp tags: - Apps summary: Get an app servers: - url: https://api.revenuecat.com/v2 parameters: - $ref: '#/components/parameters/ProjectId' - name: app_id in: path required: true schema: type: string responses: '200': description: The app. content: application/json: schema: $ref: '#/components/schemas/App' security: - bearerAuth: [] delete: operationId: deleteApp tags: - Apps summary: Delete an app servers: - url: https://api.revenuecat.com/v2 parameters: - $ref: '#/components/parameters/ProjectId' - name: app_id in: path required: true schema: type: string responses: '200': description: The app was deleted. security: - bearerAuth: [] components: parameters: StartingAfter: name: starting_after in: query required: false description: Cursor for pagination; the id of the last object on the previous page. schema: type: string Limit: name: limit in: query required: false description: Maximum number of items to return per page. schema: type: integer default: 20 maximum: 1000 ProjectId: name: project_id in: path required: true description: The RevenueCat project identifier. schema: type: string schemas: AppList: allOf: - $ref: '#/components/schemas/ListEnvelope' - type: object properties: items: type: array items: $ref: '#/components/schemas/App' App: type: object properties: id: type: string object: type: string example: app name: type: string type: type: string description: Store type (app_store, play_store, amazon, stripe, etc.). created_at: type: integer format: int64 ListEnvelope: type: object properties: object: type: string example: list url: type: string next_page: type: string nullable: true securitySchemes: bearerAuth: type: http scheme: bearer description: RevenueCat API key passed as an HTTP Bearer token. v1 accepts public (client) or secret (server) keys; v2 uses dedicated v2 API keys.