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
| Method | Endpoint | Description |
|---|---|---|
GET | /v0/offers/list | List and filter offers |
POST | /v0/offers/create | Create a new offer |
GET | /v0/offers/{offerId} | Retrieve an offer |
PATCH | /v0/offers/{offerId}/update | Update an offer |
PATCH | /v0/offers/{offerId}/archive | Archive an offer |
POST | /v0/offers/{offerId}/keys/add | Add product keys |
POST | /v0/offers/{offerId}/keys/remove | Remove unsold keys |
DELETE | /v0/offers/{offerId}/keys/{keyId} | Remove a specific key |
The Offer object
objectstringObject type identifier. Always "offer" for Offer objects.
idstringrequiredUnique identifier (UUID) for this offer.
internalIdstring | nullYour custom identifier for this offer. Use to link to your own SKU system.
namestring | nullDisplay name of the offer (e.g., "Standard Edition", "Premium Bundle").
descriptionstring | nullDescription of what's included in this offer.
pricenumberrequiredPrice in the specified currency. For Subscriptions, this is the recurring price.
originalPricenumber | nullOriginal price before any discount. Used to show strikethrough pricing.
currencystringrequiredThree-letter ISO 4217 currency code (e.g., "USD", "EUR", "GBP").
regionstring | nullGeographic 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 | nullPlatform for digital product activation. Common values: Steam, Xbox Live, PSN, Nintendo, Epic Games, GOG.com, Origin, Battle.net, Ubisoft Connect
gtinstring | nullGlobal Trade Item Number (barcode) for the product.
warningMessagestring | nullWarning or disclaimer message to display to customers.
recurringIntervalstring | nullBilling interval for Subscriptions. Possible values: day, week, month, year
recurringIntervalCountinteger | nullNumber of intervals between billings. For example, 3 with month interval means billing every 3 months.
trialIntervalstring | nullTrial period interval type. Possible values: day, week, month, year
trialIntervalCountinteger | nullNumber 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
}
}
}Related resources
Last updated