---
title: DiscountCode - GraphQL Admin
description: >-
The type of discount associated with the discount code. For example, the
discount code might offer a basic discount of a fixed percentage, or a fixed
amount, on specific products or the order. Alternatively, the discount might
offer the customer free shipping on their order. A third option is a Buy X,
Get Y (BXGY) discount, which offers a customer discounts on select products if
they add a specific product to their order.
api_version: 2026-01
api_name: admin
type: union
api_type: graphql
source_url:
html: 'https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountCode'
md: 'https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountCode.md'
---
# DiscountCode
union
Requires Apps must have `read_discounts` access scope.
The type of discount associated with the discount code. For example, the discount code might offer a basic discount of a fixed percentage, or a fixed amount, on specific products or the order. Alternatively, the discount might offer the customer free shipping on their order. A third option is a Buy X, Get Y (BXGY) discount, which offers a customer discounts on select products if they add a specific product to their order.
## Possible types
* [DiscountCodeApp](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeApp)
OBJECT
The `DiscountCodeApp` object stores information about code discounts that are managed by an app using [Shopify Functions](https://shopify.dev/docs/apps/build/functions). Use `DiscountCodeApp` when you need advanced, custom, or dynamic discount capabilities that aren't supported by [Shopify's native discount types](https://help.shopify.com/manual/discounts/discount-types).
Learn more about creating [custom discount functionality](https://shopify.dev/docs/apps/build/discounts/build-discount-function).
***
**Note:** The \\\Discount\Automatic\App\\\ object has similar functionality to the \\Discount\Code\App\\ object, with the exception that \\Discount\Automatic\App\\ stores information about automatic discounts that are managed by an app using Shopify Functions.
***
* appDiscountType
[AppDiscountType!](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppDiscountType)
non-null
The details about the app extension that's providing the [discount type](https://help.shopify.com/manual/discounts/discount-types). This information includes the app extension's name and [client ID](https://shopify.dev/docs/apps/build/authentication-authorization/client-secrets), [App Bridge configuration](https://shopify.dev/docs/api/app-bridge), [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations), [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries), and other metadata about the discount type, including the discount type's name and description.
* appliesOncePerCustomer
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether a customer can only use the discount once.
* appliesOnOneTimePurchase
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether the discount applies on regular one-time-purchase items.
* appliesOnSubscription
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether the discount applies to subscriptions items.
* asyncUsageCount
[Int!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
non-null
The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed.
* codes
[DiscountRedeemCodeConnection!](https://shopify.dev/docs/api/admin-graphql/latest/connections/DiscountRedeemCodeConnection)
non-null
A list codes that customers can use to redeem the discount.
* first
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
### Arguments
The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql).
* after
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql).
* last
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql).
* before
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql).
* reverse
[Boolean](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
Default:false
Reverse the order of the underlying list.
* sortKey
[DiscountCodeSortKeys](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountCodeSortKeys)
Default:ID
Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations).
* query
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
A filter made up of terms, connectives, modifiers, and comparators. You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax).
* * default
string
* id
id
* times\_used
integer
- Filter by a case-insensitive search of multiple fields in a document.
- Example:
* `query=Bob Norman`
* `query=title:green hoodie`
Filter by `id` range.
- Example:
* `id:1234`
* `id:>=1234`
* `id:<=1234`
* savedSearchId
[ID](https://shopify.dev/docs/api/admin-graphql/latest/scalars/ID)
The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument.
***
* codesCount
[Count](https://shopify.dev/docs/api/admin-graphql/latest/objects/Count)
The number of codes that a customer can use to redeem the discount.
* combinesWith
[DiscountCombinesWith!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCombinesWith)
non-null
The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).
* context
[DiscountContext!](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountContext)
non-null
The context defining which buyers can use the discount.
* createdAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount was created.
* discountClasses
[\[DiscountClass!\]!](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountClass)
non-null
The classes of the discount.
* discountId
[ID!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/ID)
non-null
The [globally-unique ID](https://shopify.dev/docs/api/usage/gids) for the discount.
* endsAt
[DateTime](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`.
* errorHistory
[FunctionsErrorHistory](https://shopify.dev/docs/api/admin-graphql/latest/objects/FunctionsErrorHistory)
The [error history](https://shopify.dev/docs/apps/build/functions/monitoring-and-errors) for the latest version of the discount type that the app provides.
* hasTimelineComment
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether there are [timeline comments](https://help.shopify.com/manual/discounts/managing-discount-codes#use-the-discount-timeline) associated with the discount.
* recurringCycleLimit
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to `3`, then the discount only applies to the first three billing cycles of a subscription. If you specify `0`, then the discount applies indefinitely.
* shareableUrls
[\[DiscountShareableUrl!\]!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountShareableUrl)
non-null
A list of URLs that the app can use to share the discount.
* startsAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount becomes active and is available to customers.
* status
[DiscountStatus!](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountStatus)
non-null
The status of the discount that describes its availability, expiration, or pending activation.
* title
[String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
non-null
The discount's name that displays to merchants in the Shopify admin and to customers.
* totalSales
[MoneyV2](https://shopify.dev/docs/api/admin-graphql/latest/objects/MoneyV2)
The total sales from orders where the discount was used.
* updatedAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount was updated.
* usageLimit
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The maximum number of times the discount can be redeemed. For unlimited usage, specify `null`.
* customerSelection
[DiscountCustomerSelection!](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountCustomerSelection)
non-nullDeprecated
* discountClass
[DiscountClass!](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountClass)
non-nullDeprecated
* [DiscountCodeBasic](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeBasic)
OBJECT
The `DiscountCodeBasic` object lets you manage [amount off discounts](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) that are applied on a cart and at checkout when a customer enters a code. Amount off discounts give customers a fixed value or a percentage off the products in an order, but don't apply to shipping costs.
The `DiscountCodeBasic` object stores information about amount off code discounts that apply to specific [products and variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCollections), or [all items in a cart](https://shopify.dev/docs/api/admin-graphql/latest/objects/AllDiscountItems).
Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including limitations and considerations.
***
**Note:** The \\\Discount\Automatic\Basic\\\ object has similar functionality to the \\Discount\Code\Basic\\ object, but discounts are automatically applied, without the need for customers to enter a code.
***
* appliesOncePerCustomer
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether a customer can only use the discount once.
* asyncUsageCount
[Int!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
non-null
The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed.
* codes
[DiscountRedeemCodeConnection!](https://shopify.dev/docs/api/admin-graphql/latest/connections/DiscountRedeemCodeConnection)
non-null
A list codes that customers can use to redeem the discount.
* first
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
### Arguments
The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql).
* after
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql).
* last
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql).
* before
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql).
* reverse
[Boolean](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
Default:false
Reverse the order of the underlying list.
* sortKey
[DiscountCodeSortKeys](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountCodeSortKeys)
Default:ID
Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations).
* query
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
A filter made up of terms, connectives, modifiers, and comparators. You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax).
* * default
string
* id
id
* times\_used
integer
- Filter by a case-insensitive search of multiple fields in a document.
- Example:
* `query=Bob Norman`
* `query=title:green hoodie`
Filter by `id` range.
- Example:
* `id:1234`
* `id:>=1234`
* `id:<=1234`
* savedSearchId
[ID](https://shopify.dev/docs/api/admin-graphql/latest/scalars/ID)
The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument.
***
* codesCount
[Count](https://shopify.dev/docs/api/admin-graphql/latest/objects/Count)
The number of codes that a customer can use to redeem the discount.
* combinesWith
[DiscountCombinesWith!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCombinesWith)
non-null
The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).
* context
[DiscountContext!](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountContext)
non-null
The context defining which buyers can use the discount.
* createdAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount was created.
* customerGets
[DiscountCustomerGets!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCustomerGets)
non-null
The items in the order that qualify for the discount, their quantities, and the total value of the discount.
* discountClasses
[\[DiscountClass!\]!](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountClass)
non-null
The classes of the discount.
* endsAt
[DateTime](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`.
* hasTimelineComment
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether there are [timeline comments](https://help.shopify.com/manual/discounts/managing-discount-codes#use-the-discount-timeline) associated with the discount.
* minimumRequirement
[DiscountMinimumRequirement](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountMinimumRequirement)
The minimum subtotal or quantity of items that are required for the discount to be applied.
* recurringCycleLimit
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to `3`, then the discount only applies to the first three billing cycles of a subscription. If you specify `0`, then the discount applies indefinitely.
* shareableUrls
[\[DiscountShareableUrl!\]!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountShareableUrl)
non-null
A list of URLs that the app can use to share the discount.
* shortSummary
[String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
non-null
An abbreviated version of the discount [`summary`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeBasic#field-summary) field.
* startsAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount becomes active and is available to customers.
* status
[DiscountStatus!](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountStatus)
non-null
The status of the discount that describes its availability, expiration, or pending activation.
* summary
[String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
non-null
A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.
* title
[String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
non-null
The discount's name that displays to merchants in the Shopify admin and to customers.
* totalSales
[MoneyV2](https://shopify.dev/docs/api/admin-graphql/latest/objects/MoneyV2)
The total sales from orders where the discount was used.
* updatedAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount was updated.
* usageLimit
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The maximum number of times the discount can be redeemed. For unlimited usage, specify `null`.
* customerSelection
[DiscountCustomerSelection!](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountCustomerSelection)
non-nullDeprecated
* discountClass
[MerchandiseDiscountClass!](https://shopify.dev/docs/api/admin-graphql/latest/enums/MerchandiseDiscountClass)
non-nullDeprecated
* [DiscountCodeBxgy](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeBxgy)
OBJECT
The `DiscountCodeBxgy` object lets you manage [buy X get Y discounts (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) that are applied on a cart and at checkout when a customer enters a code. BXGY discounts incentivize customers by offering them additional items at a discounted price or for free when they purchase a specified quantity of items.
The `DiscountCodeBxgy` object stores information about BXGY code discounts that apply to specific [products and variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCollections), or [all items in a cart](https://shopify.dev/docs/api/admin-graphql/latest/objects/AllDiscountItems).
Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including limitations and considerations.
***
**Note:** The \\\Discount\Automatic\Bxgy\\\ object has similar functionality to the \\Discount\Code\Bxgy\\ object, but discounts are automatically applied, without the need for customers to enter a code.
***
* appliesOncePerCustomer
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether a customer can only use the discount once.
* asyncUsageCount
[Int!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
non-null
The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed.
* codes
[DiscountRedeemCodeConnection!](https://shopify.dev/docs/api/admin-graphql/latest/connections/DiscountRedeemCodeConnection)
non-null
A list codes that customers can use to redeem the discount.
* first
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
### Arguments
The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql).
* after
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql).
* last
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql).
* before
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql).
* reverse
[Boolean](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
Default:false
Reverse the order of the underlying list.
* sortKey
[DiscountCodeSortKeys](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountCodeSortKeys)
Default:ID
Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations).
* query
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
A filter made up of terms, connectives, modifiers, and comparators. You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax).
* * default
string
* id
id
* times\_used
integer
- Filter by a case-insensitive search of multiple fields in a document.
- Example:
* `query=Bob Norman`
* `query=title:green hoodie`
Filter by `id` range.
- Example:
* `id:1234`
* `id:>=1234`
* `id:<=1234`
* savedSearchId
[ID](https://shopify.dev/docs/api/admin-graphql/latest/scalars/ID)
The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument.
***
* codesCount
[Count](https://shopify.dev/docs/api/admin-graphql/latest/objects/Count)
The number of codes that a customer can use to redeem the discount.
* combinesWith
[DiscountCombinesWith!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCombinesWith)
non-null
The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).
* context
[DiscountContext!](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountContext)
non-null
The context defining which buyers can use the discount.
* createdAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount was created.
* customerBuys
[DiscountCustomerBuys!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCustomerBuys)
non-null
The items eligible for the discount and the required quantity of each to receive the discount.
* customerGets
[DiscountCustomerGets!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCustomerGets)
non-null
The items in the order that qualify for the discount, their quantities, and the total value of the discount.
* discountClasses
[\[DiscountClass!\]!](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountClass)
non-null
The classes of the discount.
* endsAt
[DateTime](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`.
* hasTimelineComment
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether there are [timeline comments](https://help.shopify.com/manual/discounts/managing-discount-codes#use-the-discount-timeline) associated with the discount.
* shareableUrls
[\[DiscountShareableUrl!\]!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountShareableUrl)
non-null
A list of URLs that the app can use to share the discount.
* startsAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount becomes active and is available to customers.
* status
[DiscountStatus!](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountStatus)
non-null
The status of the discount that describes its availability, expiration, or pending activation.
* summary
[String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
non-null
A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.
* title
[String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
non-null
The discount's name that displays to merchants in the Shopify admin and to customers.
* totalSales
[MoneyV2](https://shopify.dev/docs/api/admin-graphql/latest/objects/MoneyV2)
The total sales from orders where the discount was used.
* updatedAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount was updated.
* usageLimit
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The maximum number of times the discount can be redeemed. For unlimited usage, specify `null`.
* usesPerOrderLimit
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The maximum number of times that the discount can be applied to an order.
* customerSelection
[DiscountCustomerSelection!](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountCustomerSelection)
non-nullDeprecated
* discountClass
[MerchandiseDiscountClass!](https://shopify.dev/docs/api/admin-graphql/latest/enums/MerchandiseDiscountClass)
non-nullDeprecated
* [DiscountCodeFreeShipping](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeFreeShipping)
OBJECT
The `DiscountCodeFreeShipping` object lets you manage [free shipping discounts](https://help.shopify.com/manual/discounts/discount-types/free-shipping) that are applied on a cart and at checkout when a customer enters a code. Free shipping discounts are promotional deals that merchants offer to customers to waive shipping costs and encourage online purchases.
The `DiscountCodeFreeShipping` object stores information about free shipping code discounts that apply to specific [products and variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCollections), or [all items in a cart](https://shopify.dev/docs/api/admin-graphql/latest/objects/AllDiscountItems).
Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including limitations and considerations.
***
**Note:** The \\\Discount\Automatic\Free\Shipping\\\ object has similar functionality to the \\Discount\Code\Free\Shipping\\ object, but discounts are automatically applied, without the need for customers to enter a code.
***
* appliesOncePerCustomer
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether a customer can only use the discount once.
* appliesOnOneTimePurchase
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether the discount applies on one-time purchases. A one-time purchase is a transaction where you pay a single time for a product, without any ongoing commitments or recurring charges.
* appliesOnSubscription
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether the discount applies on subscription items. [Subscriptions](https://shopify.dev/docs/apps/launch/billing/subscription-billing/offer-subscription-discounts) enable customers to purchase products on a recurring basis.
* asyncUsageCount
[Int!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
non-null
The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed.
* codes
[DiscountRedeemCodeConnection!](https://shopify.dev/docs/api/admin-graphql/latest/connections/DiscountRedeemCodeConnection)
non-null
A list codes that customers can use to redeem the discount.
* first
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
### Arguments
The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql).
* after
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql).
* last
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql).
* before
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql).
* reverse
[Boolean](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
Default:false
Reverse the order of the underlying list.
* sortKey
[DiscountCodeSortKeys](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountCodeSortKeys)
Default:ID
Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations).
* query
[String](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
A filter made up of terms, connectives, modifiers, and comparators. You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax).
* * default
string
* id
id
* times\_used
integer
- Filter by a case-insensitive search of multiple fields in a document.
- Example:
* `query=Bob Norman`
* `query=title:green hoodie`
Filter by `id` range.
- Example:
* `id:1234`
* `id:>=1234`
* `id:<=1234`
* savedSearchId
[ID](https://shopify.dev/docs/api/admin-graphql/latest/scalars/ID)
The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument.
***
* codesCount
[Count](https://shopify.dev/docs/api/admin-graphql/latest/objects/Count)
The number of codes that a customer can use to redeem the discount.
* combinesWith
[DiscountCombinesWith!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCombinesWith)
non-null
The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).
* context
[DiscountContext!](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountContext)
non-null
The context defining which buyers can use the discount.
* createdAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount was created.
* destinationSelection
[DiscountShippingDestinationSelection!](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountShippingDestinationSelection)
non-null
The countries that qualify for the discount. You can define [a list of countries](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCountries) or specify [all countries](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCountryAll) to be eligible for the discount.
* discountClasses
[\[DiscountClass!\]!](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountClass)
non-null
The classes of the discount.
* endsAt
[DateTime](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`.
* hasTimelineComment
[Boolean!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Boolean)
non-null
Whether there are [timeline comments](https://help.shopify.com/manual/discounts/managing-discount-codes#use-the-discount-timeline) associated with the discount.
* maximumShippingPrice
[MoneyV2](https://shopify.dev/docs/api/admin-graphql/latest/objects/MoneyV2)
The maximum shipping price amount accepted to qualify for the discount.
* minimumRequirement
[DiscountMinimumRequirement](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountMinimumRequirement)
The minimum subtotal or quantity of items that are required for the discount to be applied.
* recurringCycleLimit
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to `3`, then the discount only applies to the first three billing cycles of a subscription. If you specify `0`, then the discount applies indefinitely.
* shareableUrls
[\[DiscountShareableUrl!\]!](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountShareableUrl)
non-null
A list of URLs that the app can use to share the discount.
* shortSummary
[String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
non-null
An abbreviated version of the discount [`summary`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeFreeShipping#field-summary) field.
* startsAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount becomes active and is available to customers.
* status
[DiscountStatus!](https://shopify.dev/docs/api/admin-graphql/latest/enums/DiscountStatus)
non-null
The status of the discount that describes its availability, expiration, or pending activation.
* summary
[String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
non-null
A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.
* title
[String!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/String)
non-null
The discount's name that displays to merchants in the Shopify admin and to customers.
* totalSales
[MoneyV2](https://shopify.dev/docs/api/admin-graphql/latest/objects/MoneyV2)
The total sales from orders where the discount was used.
* updatedAt
[DateTime!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/DateTime)
non-null
The date and time when the discount was updated.
* usageLimit
[Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)
The maximum number of times the discount can be redeemed. For unlimited usage, specify `null`.
* customerSelection
[DiscountCustomerSelection!](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountCustomerSelection)
non-nullDeprecated
* discountClass
[ShippingDiscountClass!](https://shopify.dev/docs/api/admin-graphql/latest/enums/ShippingDiscountClass)
non-nullDeprecated
***
## Fields with this union
* [DiscountCodeNode.codeDiscount](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeNode#field-DiscountCodeNode.fields.codeDiscount)
OBJECT
The `DiscountCodeNode` object enables you to manage [code discounts](https://help.shopify.com/manual/discounts/discount-types#discount-codes) that are applied when customers enter a code at checkout. For example, you can offer discounts where customers have to enter a code to redeem an amount off discount on products, variants, or collections in a store. Or, you can offer discounts where customers have to enter a code to get free shipping. Merchants can create and share discount codes individually with customers.
Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including related queries, mutations, limitations, and considerations.
***
```graphql
union DiscountCode = DiscountCodeApp | DiscountCodeBasic | DiscountCodeBxgy | DiscountCodeFreeShipping
```