---
title: "Offerings"
permalink: "/docs/api-v1/offerings"
description: "RevenueCat API v1 endpoint reference for Offerings."
original_source: "openapi-spec/api-v1.yaml"
---

> **AI agents:** This is the Markdown version of a RevenueCat documentation page. For the complete documentation index, see [llms.txt](https://www.revenuecat.com/docs/llms.txt).


# Offerings | REST API v1 Reference (1.0)

Download OpenAPI specification:[Download](https://www.revenuecat.com/docs/redocusaurus/openapi-v1-offerings.yaml)

RevenueCat API v1 endpoint reference for Offerings.

## <a id="tag/offerings"></a>Offerings

Part of the [REST API v1 Reference](/docs/api-v1).

Operations about offerings.

#### Endpoints

-   [Override a Customer's Current Offering](#tag/offerings/operation/override-offering) — `POST /subscribers/{app_user_id}/offerings/{offering_uuid}/override`
-   [Remove a Customer's Current Offering Override](#tag/offerings/operation/delete-offering-override) — `DELETE /subscribers/{app_user_id}/offerings/override`
-   [Get Offerings](#tag/offerings/operation/get-offerings) — `GET /subscribers/{app_user_id}/offerings`

## <a id="tag/offerings/operation/override-offering"></a>Override a Customer's Current Offering

post/subscribers/{app_user_id}/offerings/{offering_uuid}/override

https://api.revenuecat.com/v1/subscribers/{app_user_id}/offerings/{offering_uuid}/override

Overrides the current Offering for a specific Customer

##### Authorizations:

_BearerAuth_

##### path Parameters

- `app_user_id` (required): string — The App User ID of the Customer.
- `offering_uuid` (required): string — The UUID for the offering you want to set as the override for the Customer. The UUID can be found in the URL of the offering. For example, the offering UUID in [https://app.revenuecat.com/apps/abcd1234/offerings/ofrng1234567abc](https://app.revenuecat.com/apps/abcd1234/offerings/ofrng1234567abc) is `ofrng1234567abc`.

### Responses

**201**

Offering was successfully overridden.

Returns the updated [Customer Info](/docs/api-v1/customer-info-model#tag/customer_info_model) for the Customer.

### Response samples

Content type

application/json

 

```json
{
  "value": {
    "request_date": "2019-07-26T17:40:10Z",
    "request_date_ms": 1564162810884,
    "subscriber": {
      "entitlements": {
        "pro_cat": {
          "expires_date": null,
          "grace_period_expires_date": null,
          "product_identifier": "onetime",
          "purchase_date": "2019-04-05T21:52:45Z"
        }
      },
      "first_seen": "2019-02-21T00:08:41Z",
      "management_url": "https://apps.apple.com/account/subscriptions",
      "non_subscriptions": {
        "onetime": [
          {
            "id": "cadba0c81b",
            "is_sandbox": true,
            "purchase_date": "2019-04-05T21:52:45Z",
            "store": "app_store"
          }
        ]
      },
      "original_app_user_id": "XXX-XXXXX-XXXXX-XX",
      "original_application_version": "1.0",
      "original_purchase_date": "2019-01-30T23:54:10Z",
      "other_purchases": { },
      "subscriptions": {
        "annual": {
          "auto_resume_date": null,
          "billing_issues_detected_at": null,
          "expires_date": "2019-08-14T21:07:40Z",
          "grace_period_expires_date": null,
          "is_sandbox": true,
          "original_purchase_date": "2019-02-21T00:42:05Z",
          "ownership_type": "PURCHASED",
          "period_type": "normal",
          "purchase_date": "2019-07-14T20:07:40Z",
          "refunded_at": null,
          "store": "play_store",
          "store_transaction_id": "GPA.6801-7988-0152-76034..5",
          "unsubscribe_detected_at": "2019-07-17T22:48:38Z"
        },
        "onemonth": {
          "auto_resume_date": null,
          "billing_issues_detected_at": null,
          "expires_date": "2019-06-17T22:47:55Z",
          "grace_period_expires_date": null,
          "is_sandbox": true,
          "original_purchase_date": "2019-02-21T00:42:05Z",
          "ownership_type": "PURCHASED",
          "period_type": "normal",
          "purchase_date": "2019-06-17T22:42:55Z",
          "refunded_at": null,
          "store": "app_store",
          "store_transaction_id": 1000000652379790,
          "unsubscribe_detected_at": "2019-06-17T22:48:38Z"
        },
        "rc_promo_pro_cat_monthly": {
          "auto_resume_date": null,
          "billing_issues_detected_at": null,
          "expires_date": "2019-08-26T01:02:16Z",
          "grace_period_expires_date": null,
          "is_sandbox": false,
          "original_purchase_date": "2019-07-26T01:02:16Z",
          "ownership_type": "FAMILY_SHARED",
          "period_type": "normal",
          "purchase_date": "2019-07-26T01:02:16Z",
          "refunded_at": null,
          "store": "promotional",
          "store_transaction_id": "a42db3af39530cb82b17eaf9c6576393",
          "unsubscribe_detected_at": null
        }
      }
    }
  }
}
```

## <a id="tag/offerings/operation/delete-offering-override"></a>Remove a Customer's Current Offering Override

delete/subscribers/{app_user_id}/offerings/override

https://api.revenuecat.com/v1/subscribers/{app_user_id}/offerings/override

Reset the offering overrides back to the current offering for a specific Customer

##### Authorizations:

_BearerAuth_

##### path Parameters

- `app_user_id` (required): string — The App User ID of the Customer.

### Responses

**201**

Offering override was successfully removed.

Returns the updated [Customer Info](/docs/api-v1/customer-info-model#tag/customer_info_model) for the Customer.

### Response samples

Content type

application/json

 

```json
{
  "value": {
    "request_date": "2019-07-26T17:40:10Z",
    "request_date_ms": 1564162810884,
    "subscriber": {
      "entitlements": {
        "pro_cat": {
          "expires_date": null,
          "grace_period_expires_date": null,
          "product_identifier": "onetime",
          "purchase_date": "2019-04-05T21:52:45Z"
        }
      },
      "first_seen": "2019-02-21T00:08:41Z",
      "management_url": "https://apps.apple.com/account/subscriptions",
      "non_subscriptions": {
        "onetime": [
          {
            "id": "cadba0c81b",
            "is_sandbox": true,
            "purchase_date": "2019-04-05T21:52:45Z",
            "store": "app_store"
          }
        ]
      },
      "original_app_user_id": "XXX-XXXXX-XXXXX-XX",
      "original_application_version": "1.0",
      "original_purchase_date": "2019-01-30T23:54:10Z",
      "other_purchases": { },
      "subscriptions": {
        "annual": {
          "auto_resume_date": null,
          "billing_issues_detected_at": null,
          "expires_date": "2019-08-14T21:07:40Z",
          "grace_period_expires_date": null,
          "is_sandbox": true,
          "original_purchase_date": "2019-02-21T00:42:05Z",
          "ownership_type": "PURCHASED",
          "period_type": "normal",
          "purchase_date": "2019-07-14T20:07:40Z",
          "refunded_at": null,
          "store": "play_store",
          "store_transaction_id": "GPA.6801-7988-0152-76034..5",
          "unsubscribe_detected_at": "2019-07-17T22:48:38Z"
        },
        "onemonth": {
          "auto_resume_date": null,
          "billing_issues_detected_at": null,
          "expires_date": "2019-06-17T22:47:55Z",
          "grace_period_expires_date": null,
          "is_sandbox": true,
          "original_purchase_date": "2019-02-21T00:42:05Z",
          "ownership_type": "PURCHASED",
          "period_type": "normal",
          "purchase_date": "2019-06-17T22:42:55Z",
          "refunded_at": null,
          "store": "app_store",
          "store_transaction_id": 1000000652379790,
          "unsubscribe_detected_at": "2019-06-17T22:48:38Z"
        },
        "rc_promo_pro_cat_monthly": {
          "auto_resume_date": null,
          "billing_issues_detected_at": null,
          "expires_date": "2019-08-26T01:02:16Z",
          "grace_period_expires_date": null,
          "is_sandbox": false,
          "original_purchase_date": "2019-07-26T01:02:16Z",
          "ownership_type": "FAMILY_SHARED",
          "period_type": "normal",
          "purchase_date": "2019-07-26T01:02:16Z",
          "refunded_at": null,
          "store": "promotional",
          "store_transaction_id": "a42db3af39530cb82b17eaf9c6576393",
          "unsubscribe_detected_at": null
        }
      }
    }
  }
}
```

## <a id="tag/offerings/operation/get-offerings"></a>Get Offerings

get/subscribers/{app_user_id}/offerings

https://api.revenuecat.com/v1/subscribers/{app_user_id}/offerings

Gets the offerings for your app.

##### Authorizations:

_BearerAuth_

##### path Parameters

- `app_user_id` (required): string — The App User ID used with the mobile SDK. The App User ID doesn't have to exist for the endpoint to work but it can affect the current offering depending on whether you have any [Experiments](https://www.revenuecat.com/docs/tools/experiments-v1) running or have [overridden the current offering](ref:override-offering) for this specific App User ID.

##### header Parameters

- `X-Platform`: string Example: ios — Set the X-Platform header to fetch that platform's packages. Can be `ios`, `android`, `amazon`, `stripe`, `roku`, or `paddle`. This header is required if you use a legacy public API key to determine which store the products should be returned for. It is not required if you use a new, app-specific API key, in which case the products for the app associated with the API key will be returned.

### Responses

**200**

[Offerings](#tag:offerings_model) for the Customer.

**400**

400

**403**

403

### Response samples

Content type

application/json

 

```json
{
  "value": {
    "current_offering_id": "default",
    "offerings": [
      {
        "description": "The default offering",
        "identifier": "default",
        "packages": [
          {
            "identifier": "$rc_monthly",
            "platform_product_identifier": "monthly_free_trial"
          },
          {
            "identifier": "consumable",
            "platform_product_identifier": "consumable1"
          },
          {
            "identifier": "$rc_annual",
            "platform_product_identifier": "yearly_free_trial"
          }
        ]
      },
      {
        "description": "The sale offeringg",
        "identifier": "sale_offering",
        "packages": [
          {
            "identifier": "$rc_monthly",
            "platform_product_identifier": "monthly_free_trial_sale"
          },
          {
            "identifier": "consumable",
            "platform_product_identifier": "consumable1_sale"
          },
          {
            "identifier": "$rc_annual",
            "platform_product_identifier": "yearly_free_trial_sale"
          }
        ]
      }
    ]
  }
}
```

## <a id="tag/Endpoint-Reference"></a>Endpoint Reference

All API v1 resources, one page each. General concepts (authentication, request format, URL parameters) live on the [API v1 overview](/docs/api-v1).

-   [Customer Info Model](/docs/api-v1/customer-info-model) — full schema reference
-   [Customers](/docs/api-v1/customers) — 4 endpoints
-   [Entitlements](/docs/api-v1/entitlements) — 2 endpoints
-   [Offerings](/docs/api-v1/offerings) — 3 endpoints
-   [Offerings Model](/docs/api-v1/offerings-model) — full schema reference
-   [Transactions](/docs/api-v1/transactions) — 6 endpoints

## Response schema reference

Response examples above mirror the rendered API reference. These field definitions come from the same OpenAPI specification.

### Subscriber

- Used by `POST /subscribers/{app_user_id}/offerings/{offering_uuid}/override (201) — Override a Customer's Current Offering`
- Used by `DELETE /subscribers/{app_user_id}/offerings/override (201) — Remove a Customer's Current Offering Override`

- `request_date`: string — Date of the request in ISO 8601 format.
- `request_date_ms`: integer (format: `int64`) — Date of the request in milliseconds since Epoch.
- `subscriber`: object — Information about the Customer.
  - `entitlements`: object — Dictionary of the entitlements of this Customer (including any expired entitlements).
  - `first_seen`: string — The ISO 8601 datetime string corresponding to when the Customer was first seen by RevenueCat.
  - `last_seen`: string — The ISO 8601 datetime string corresponding to when the Customer was last seen by RevenueCat.
  - `management_url`: string — URL to manage the active subscription of the Customer. If the Customer has an active App Store subscription, this will point to the App Store. If the Customer has an active Play Store subscription, it will point there. Amazon subscriptions point to the Amazon subscription management page, Paddle subscriptions point to the Paddle Customer Portal, and RevenueCat Web Billing subscriptions point to the RevenueCat Web Billing Customer Portal. For Stripe Billing subscriptions, this returns the configured Stripe Customer Portal URL or a custom URL. If no Stripe Customer Portal URL is configured, this will be null. If there are no active subscriptions it will be null. If the Customer has multiple active subscriptions for different platforms, this will take the value of the OS in the `X-Platform` header into consideration: - If the request was made on an OS for which there are active subscriptions, this will return the URL for the store that matches the header. - If the request was made on a different OS or the OS was not included in the X-Platform header, this will return the URL for the store of the subscription with the farthest future expiration date.
  - `non_subscriptions`: object — Non-subscription purchases of the Customer, keyed by the product identifier.
  - `original_app_user_id`: string — The App User ID under which this Customer was first known to RevenueCat.
  - `original_application_version`: string — *Only available on iOS*. This will be `null` until an iOS receipt is sent for the Customer. After a receipt has been sent, it will indicate the first App Store version of your app that the Customer installed.
  - `original_purchase_date`: string — **Only available on iOS**. The date that the app was first purchased/downloaded by the Customer. Will be `null` if no receipt is recorded for the Customer. Useful for [Migrating Subscriptions](/docs/migrating-to-revenuecat/migrating-existing-subscriptions).
  - `other_purchases`: object
  - `subscriber_attributes`: object — A dictionary of any Attributes set on this Customer. **Only included in responses to requests made with a secret API key**.
  - `subscriptions`: object — Subscription purchases of the Customer, keyed by the product identifier.

### Offerings

- Used by `GET /subscribers/{app_user_id}/offerings (200) — Get Offerings`

- `current_offering_id`: string — The identifier of the current Offering for this Customer. [Targeting](/docs/tools/targeting), [Offering overrides](#tag/offerings/operation/override-offering), and [Experiments](/docs/tools/experiments-v1) affect this identifier depending on the App User ID.
- `offerings`: array of object — A list of available Offerings.
  - `description`: string — The Offering's description.
  - `identifier`: string — The Offering's identifier.
  - `packages`: array of object — The Packages of this Offering.
    - `identifier`: string — The package's identifier. If you used one of RevenueCat's default identifiers, it will be prefixed by `$rc_`.
    - `platform_product_identifier`: string — The identifier of the product in the store. This should be used to fetch the product from Apple, Google, Amazon, or Stripe depending on the platform. This field will be populated only for the current app based on the API key used and the `X-Platform` header.
