Offer

The Offer object represents a purchasable pricing option for a product.

An Offer object represents a specific pricing configuration for a Product that customers can purchase. Offers define the price, currency, region availability, and subscription terms (if applicable).

A single Product can have multiple offers to support different regions, currencies, or pricing tiers. Offers can include product keys for digital goods that are automatically delivered upon purchase. Discounts can be applied to offers to reduce the price.

Endpoints

MethodEndpointDescription
GET/v0/offers/listList and filter offers
POST/v0/offers/createCreate a new offer
GET/v0/offers/{offerId}Retrieve an offer
PATCH/v0/offers/{offerId}/updateUpdate an offer
PATCH/v0/offers/{offerId}/archiveArchive an offer
POST/v0/offers/{offerId}/keys/addAdd product keys
POST/v0/offers/{offerId}/keys/removeRemove unsold keys
DELETE/v0/offers/{offerId}/keys/{keyId}Remove a specific key

The Offer object

objectstring

Object type identifier. Always "offer" for Offer objects.

idstringrequired

Unique identifier (UUID) for this offer.

internalIdstring | null

Your custom identifier for this offer. Use to link to your own SKU system.

namestring | null

Display name of the offer (e.g., "Standard Edition", "Premium Bundle").

descriptionstring | null

Description of what's included in this offer.

pricenumberrequired

Price in the specified currency. For Subscriptions, this is the recurring price.

originalPricenumber | null

Original price before any discount. Used to show strikethrough pricing.

currencystringrequired

Three-letter ISO 4217 currency code (e.g., "USD", "EUR", "GBP").

regionstring | null

Geographic region where this offer is available. Common values: Global, Europe, United States, United Kingdom, North America, Latin America, Asia, EMEA, Rest of the World

platformstring | null

Platform for digital product activation. Common values: Steam, Xbox Live, PSN, Nintendo, Epic Games, GOG.com, Origin, Battle.net, Ubisoft Connect

gtinstring | null

Global Trade Item Number (barcode) for the product.

warningMessagestring | null

Warning or disclaimer message to display to customers.

recurringIntervalstring | null

Billing interval for Subscriptions. Possible values: day, week, month, year

recurringIntervalCountinteger | null

Number of intervals between billings. For example, 3 with month interval means billing every 3 months.

trialIntervalstring | null

Trial period interval type. Possible values: day, week, month, year

trialIntervalCountinteger | null

Number of intervals for the trial period. For example, 14 with day interval means a 14-day trial.


Example response

{
  "status": "success",
  "data": {
    "offer": {
      "object": "offer",
      "id": "990e8400-e29b-41d4-a716-446655440004",
      "internalId": "sku_standard_us",
      "name": "Standard Edition",
      "description": "Base game with all launch content",
      "price": 59.99,
      "originalPrice": 69.99,
      "currency": "USD",
      "region": "United States",
      "platform": "Steam",
      "gtin": "1234567890123",
      "warningMessage": null,
      "recurringInterval": null,
      "recurringIntervalCount": null,
      "trialInterval": null,
      "trialIntervalCount": null
    }
  }
}

Subscription offer example

{
  "status": "success",
  "data": {
    "offer": {
      "object": "offer",
      "id": "aa0e8400-e29b-41d4-a716-446655440005",
      "internalId": "plan_pro_monthly",
      "name": "Pro Plan - Monthly",
      "description": "Full access to all features",
      "price": 29.99,
      "originalPrice": null,
      "currency": "USD",
      "region": "Global",
      "platform": null,
      "gtin": null,
      "warningMessage": null,
      "recurringInterval": "month",
      "recurringIntervalCount": 1,
      "trialInterval": "day",
      "trialIntervalCount": 14
    }
  }
}

Last updated