openapi: 3.0.1 info: title: RevenueCat REST Apps Packages 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: Packages description: v2 package definitions within an offering. paths: /projects/{project_id}/offerings/{offering_id}/packages: get: operationId: listPackages tags: - Packages summary: List packages servers: - url: https://api.revenuecat.com/v2 parameters: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/OfferingId' - $ref: '#/components/parameters/StartingAfter' - $ref: '#/components/parameters/Limit' responses: '200': description: A paginated list of packages. content: application/json: schema: $ref: '#/components/schemas/PackageList' security: - bearerAuth: [] post: operationId: createPackage tags: - Packages summary: Create a package servers: - url: https://api.revenuecat.com/v2 parameters: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/OfferingId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Package' responses: '201': description: The created package. content: application/json: schema: $ref: '#/components/schemas/Package' security: - bearerAuth: [] /projects/{project_id}/offerings/{offering_id}/packages/{package_id}: get: operationId: getPackage tags: - Packages summary: Get a package servers: - url: https://api.revenuecat.com/v2 parameters: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/OfferingId' - name: package_id in: path required: true schema: type: string responses: '200': description: The package. content: application/json: schema: $ref: '#/components/schemas/Package' security: - bearerAuth: [] delete: operationId: deletePackage tags: - Packages summary: Delete a package servers: - url: https://api.revenuecat.com/v2 parameters: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/OfferingId' - name: package_id in: path required: true schema: type: string responses: '200': description: The package 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 OfferingId: name: offering_id in: path required: true description: The offering identifier. schema: type: string ProjectId: name: project_id in: path required: true description: The RevenueCat project identifier. schema: type: string schemas: PackageList: allOf: - $ref: '#/components/schemas/ListEnvelope' - type: object properties: items: type: array items: $ref: '#/components/schemas/Package' Package: type: object properties: id: type: string object: type: string example: package lookup_key: type: string display_name: type: string position: type: integer 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.