Skip to main content
SKUs (stock-keeping units) in Discord represent premium offerings that can be made available to your application’s users or guilds.

SKU object

SKU structure

id
snowflake
required
ID of the SKU.
type
integer
required
application_id
snowflake
required
ID of the parent application.
name
string
required
Customer-facing name of your premium offering.
slug
string
required
System-generated URL slug based on the SKU’s name.
flags
integer
required
SKU flags combined as a bitfield.

SKU example

{
  "id": "1088510058284990888",
  "type": 5,
  "dependent_sku_id": null,
  "application_id": "788708323867885999",
  "manifest_labels": null,
  "access_type": 1,
  "name": "Test Premium",
  "features": [],
  "release_date": null,
  "premium": false,
  "slug": "test-premium",
  "flags": 128,
  "show_age_gate": false
}

SKU types

For subscriptions, SKUs have a type of either SUBSCRIPTION (type: 5) or SUBSCRIPTION_GROUP (type: 6). For current implementations, use the SKU defined by type: 5. A SUBSCRIPTION_GROUP is automatically created for each SUBSCRIPTION SKU and is not used at this time.
TypeValueDescription
DURABLE2Durable one-time purchase
CONSUMABLE3Consumable one-time purchase
SUBSCRIPTION5Represents a recurring subscription
SUBSCRIPTION_GROUP6System-generated group for each SUBSCRIPTION SKU created

SKU flags

For subscriptions, there are two types of access levels you can offer:
  • Guild subscriptions: A subscription purchased by a user and applied to a single server. Everyone in that server gets your premium benefits.
  • User subscriptions: A subscription purchased by a user for themselves. They get access to your premium benefits in every server.
Use the flags field with a bitwise & operator to differentiate user and server subscriptions.
FlagValueDescription
AVAILABLE1 << 2SKU is available for purchase.
GUILD_SUBSCRIPTION1 << 7Recurring SKU that can be purchased by a user and applied to a single server. Grants access to every user in that server.
USER_SUBSCRIPTION1 << 8Recurring SKU purchased by a user for themselves. Grants access to the purchasing user in every server.

List SKUs

GET /applications/{application.id}/skus
Returns all SKUs for a given application.
Because of how the SKU and subscription systems work, you will see two SKUs for your subscription offering. For integrating and testing entitlements for subscriptions, use the SKU with type: 5.

Response example

[
  {
    "id": "1088510053843210999",
    "type": 6,
    "dependent_sku_id": null,
    "application_id": "788708323867885999",
    "manifest_labels": null,
    "access_type": 1,
    "name": "Test Premium",
    "features": [],
    "release_date": null,
    "premium": false,
    "slug": "test-premium",
    "flags": 128,
    "show_age_gate": false
  },
  {
    "id": "1088510058284990888",
    "type": 5,
    "dependent_sku_id": null,
    "application_id": "788708323867885999",
    "manifest_labels": null,
    "access_type": 1,
    "name": "Test Premium",
    "features": [],
    "release_date": null,
    "premium": false,
    "slug": "test-premium",
    "flags": 128,
    "show_age_gate": false
  }
]