# codeDiscountNodes - admin-graphql - QUERY
Version: 2024-10
## Description
Returns a list of [code-based discounts](https://help.shopify.com/manual/discounts/discount-types#discount-codes).
### Access Scopes
Apps must have `read_discounts` access scope.
## Arguments
* [after](/docs/api/admin-graphql/2024-10/scalars/String): String - The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql).
* [before](/docs/api/admin-graphql/2024-10/scalars/String): String - The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql).
* [first](/docs/api/admin-graphql/2024-10/scalars/Int): Int - The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql).
* [last](/docs/api/admin-graphql/2024-10/scalars/Int): Int - The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql).
* [query](/docs/api/admin-graphql/2024-10/scalars/String): String - A filter made up of terms, connectives, modifiers, and comparators.
| name | type | description | acceptable_values | default_value | example_use |
| ---- | ---- | ---- | ---- | ---- | ---- |
| default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` |
| combines_with | string | Filter by 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). | - `order_discounts`
- `product_discounts`
- `shipping_discounts` | | - `combines_with:product_discounts` |
| created_at | time | Filter by the date and time when the discount was created. | | | - `created_at:>'2020-10-21T23:39:20Z'`
- `created_at: - `created_at:<='2024'` |
| discount_type | string | Filter by the [discount type](https://help.shopify.com/manual/discounts/discount-types). | - `bogo`
- `fixed_amount`
- `free_shipping`
- `percentage` | | - `discount_type:fixed_amount` |
| ends_at | time | Filter by the date and time when the discount expires and is no longer available for customer use. | | | - `ends_at:>'2020-10-21T23:39:20Z'`
- `ends_at: - `ends_at:<='2024'` |
| id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` |
| starts_at | time | Filter by the date and time, in the shop's timezone, when the discount becomes active and is available for customer use. | | | - `starts_at:>'2020-10-21T23:39:20Z'`
- `starts_at: - `starts_at:<='2024'` |
| status | string | Filter by the status of the discount. | - `active`
- `expired`
- `scheduled` | | - `status:scheduled` |
| times_used | integer | Filter by the number of times 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 different than the actual usage count. | | | - `times_used:0`
- `times_used:>150`
- `times_used:>=200` |
| title | string | Filter by the discount name that displays to customers. | | | - `title:Black Friday Sale` |
| type | string | Filter by the [discount type](https://help.shopify.com/manual/discounts/discount-types). | - `all`
- `all_with_app`
- `app`
- `bxgy`
- `fixed_amount`
- `free_shipping`
- `percentage` | | - `type:percentage` |
| updated_at | time | Filter by the date and time when the discount was last updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- `updated_at: - `updated_at:<='2024'` |
You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax).
* [reverse](/docs/api/admin-graphql/2024-10/scalars/Boolean): Boolean - Reverse the order of the underlying list.
* [savedSearchId](/docs/api/admin-graphql/2024-10/scalars/ID): 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.
* [sortKey](/docs/api/admin-graphql/2024-10/enums/CodeDiscountSortKeys): CodeDiscountSortKeys - 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).
## Returns
* [edges](/docs/api/admin-graphql/2024-10/objects/DiscountCodeNodeEdge): DiscountCodeNodeEdge! The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node.
* [nodes](/docs/api/admin-graphql/2024-10/objects/DiscountCodeNode): DiscountCodeNode! A list of nodes that are contained in DiscountCodeNodeEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve.
* [pageInfo](/docs/api/admin-graphql/2024-10/objects/PageInfo): PageInfo! An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page.
## Examples
### Retrieve a list of code discounts
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-10/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query { codeDiscountNodes(first: 3) { nodes { id codeDiscount { ... on DiscountCodeBasic { title summary } ... on DiscountCodeBxgy { title codesCount { count } } } } } }\"\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query {\n codeDiscountNodes(first: 3) {\n nodes {\n id\n codeDiscount {\n ... on DiscountCodeBasic {\n title\n summary\n }\n ... on DiscountCodeBxgy {\n title\n codesCount {\n count\n }\n }\n }\n }\n }\n }`,\n});\n"
Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query {\n codeDiscountNodes(first: 3) {\n nodes {\n id\n codeDiscount {\n ... on DiscountCodeBasic {\n title\n summary\n }\n ... on DiscountCodeBxgy {\n title\n codesCount {\n count\n }\n }\n }\n }\n }\n }\nQUERY\n\nresponse = client.query(query: query)\n"
Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query {\n codeDiscountNodes(first: 3) {\n nodes {\n id\n codeDiscount {\n ... on DiscountCodeBasic {\n title\n summary\n }\n ... on DiscountCodeBxgy {\n title\n codesCount {\n count\n }\n }\n }\n }\n }\n }`,\n);\n\nconst data = await response.json();\n"
Graphql query: "query {\n codeDiscountNodes(first: 3) {\n nodes {\n id\n codeDiscount {\n ... on DiscountCodeBasic {\n title\n summary\n }\n ... on DiscountCodeBxgy {\n title\n codesCount {\n count\n }\n }\n }\n }\n }\n}"
#### Graphql Input
null
#### Graphql Response
{
"data": {
"codeDiscountNodes": {
"nodes": [
{
"id": "gid://shopify/DiscountCodeNode/1057371281",
"codeDiscount": {
"title": "10% off one-time",
"summary": "10% off one-time purchase products"
}
},
{
"id": "gid://shopify/DiscountCodeNode/1057371282",
"codeDiscount": {
"title": "60% off one-time",
"summary": "60% off one-time purchase products"
}
},
{
"id": "gid://shopify/DiscountCodeNode/1057371283",
"codeDiscount": {
"title": "BXGY Raincoats",
"codesCount": {
"count": 1
}
}
}
]
}
}
}
### Retrieve code discounts by discount type
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-10/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query { codeDiscountNodes(first: 1, query: \\\"value_type:fixed_amount\\\") { nodes { id codeDiscount { ... on DiscountCodeBasic { title codes(first: 1) { nodes { code } } } } } } }\"\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query {\n codeDiscountNodes(first: 1, query: \"value_type:fixed_amount\") {\n nodes {\n id\n codeDiscount {\n ... on DiscountCodeBasic {\n title\n codes(first: 1) {\n nodes {\n code\n }\n }\n }\n }\n }\n }\n }`,\n});\n"
Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query {\n codeDiscountNodes(first: 1, query: \"value_type:fixed_amount\") {\n nodes {\n id\n codeDiscount {\n ... on DiscountCodeBasic {\n title\n codes(first: 1) {\n nodes {\n code\n }\n }\n }\n }\n }\n }\n }\nQUERY\n\nresponse = client.query(query: query)\n"
Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query {\n codeDiscountNodes(first: 1, query: \"value_type:fixed_amount\") {\n nodes {\n id\n codeDiscount {\n ... on DiscountCodeBasic {\n title\n codes(first: 1) {\n nodes {\n code\n }\n }\n }\n }\n }\n }\n }`,\n);\n\nconst data = await response.json();\n"
Graphql query: "query {\n codeDiscountNodes(first: 1, query: \"value_type:fixed_amount\") {\n nodes {\n id\n codeDiscount {\n ... on DiscountCodeBasic {\n title\n codes(first: 1) {\n nodes {\n code\n }\n }\n }\n }\n }\n }\n}"
#### Graphql Input
null
#### Graphql Response
{
"data": {
"codeDiscountNodes": {
"nodes": [
{
"id": "gid://shopify/DiscountCodeNode/1057371284",
"codeDiscount": {
"title": "Fixed amount off",
"codes": {
"nodes": [
{
"code": "FIXEDOFF"
}
]
}
}
}
]
}
},
"extensions": {
"search": [
{
"path": [
"codeDiscountNodes"
],
"query": "value_type:fixed_amount",
"parsed": {
"field": "value_type",
"match_all": "fixed_amount"
},
"warnings": [
{
"field": "value_type",
"message": "Invalid search field for this query."
}
]
}
]
}
}